ludc
2024-03-18 309de8506f5e08dea1c8fdd0d377f0884aa21dd7
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java
@@ -1,5 +1,6 @@
package com.vci.ubcs.code.applyjtcodeservice.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -10,6 +11,8 @@
import com.vci.ubcs.code.applyjtcodeservice.service.IGroupMdmInterService;
import com.vci.ubcs.code.applyjtcodeservice.vo.*;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.ubcs.code.vo.webserviceModel.apply.ApplyDataVO;
import com.vci.ubcs.code.vo.webserviceModel.apply.InterParameterVO;
import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO;
import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
import com.vci.ubcs.code.applyjtcodeservice.feign.MdmApplyGroupCodeProvider;
@@ -19,8 +22,10 @@
import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.map.CaseInsensitiveMap;
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;
@@ -43,11 +48,14 @@
   private String code="";
   private String msg="";
   @Value("${docking.apply.partCoe:10}")
   @Value("${docking.apply.partCode:101}")
   public String partCoe;
   @Value("${docking.apply.userFlag:false}")
   @Value("${docking.apply.usedFlag:false}")
   public boolean usedFlag;
   @Value("${docking.apply.unitCode:41000}")
   @Value("${docking.apply.unitCode:4100}")
   public String dockingApplyUnitCode;
   @Value("${docking.apply.sysName:410-MDM}")
@@ -55,6 +63,7 @@
   @Autowired(required = false)
   private MdmApplyGroupCodeProvider mdmApplyGroupCodeProvider;
   /***
    * 集团分类服务
    */
@@ -67,13 +76,11 @@
   @Autowired(required = false)
   private com.vci.ubcs.code.applyjtcodeservice.service.IDockingPreApplyFormService dockingPreApplyFormService;
   /***
    * 模型视图单服务
    */
   @Autowired(required = false)
   private com.vci.ubcs.code.applyjtcodeservice.service.IDockingPreViewModelService dockingPreViewModelService;
   /***
    * 集团分类属性属性映射配置服务
@@ -86,7 +93,6 @@
   @Autowired(required = false)
   private com.vci.ubcs.code.applyjtcodeservice.service.IDockingPreAttrRangeService dockingPreAttrRangeService;
   /***
    * 集团属性服务
    */
@@ -95,8 +101,9 @@
   @Autowired(required = false)
   private IMdmEngineClient mdmEngineClient;
   /***
    * 主数据像集团申请编码
    * 主数据向集团申请编码
    * @param oids 需要申请的数据主键数组
    * @param btmName 业务类型
    * @return 返回结果信息
@@ -119,18 +126,33 @@
               Map<String, DockingPreApplyForm> addDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>();
               Map<String, DockingPreApplyForm> editDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>();
               Map<String, BaseModel> baseModelMap = new HashMap<String, BaseModel>();
               //数据库不存在的
               /*List<BaseModel> newDdataModelList = dataModelList.stream().filter(cbo -> {
                  String groupcode =cbo.getData().getOrDefault("GROUPCODE","");
                  return StringUtils.isBlank(groupcode);
               }).collect(Collectors.toList());
               if(newDdataModelList.size()==0)
                  return R.fail("申请接口调用成功,所有数据已经存在集团码");*/
               //组织数据
               dockingGroupDataVO = queryApplycodeDataObjects(1, dataModelList, addDockingPreApplyFormMap, editDockingPreApplyFormMap, baseModelMap);
               DockingResultVO resultDataObject = mdmApplyGroupCodeProvider.receiveAddApply(dockingGroupDataVO);
               Object object = JSONObject.toJSON(dockingGroupDataVO);
               String resultStr = object.toString();
               log.info("申请集团码数据格式:->"+resultStr);
               DockingResultVO resultDataObject = new DockingResultVO();
               resultDataObject = mdmApplyGroupCodeProvider.receiveAddApply(dockingGroupDataVO);
               code = resultDataObject.getCode();
               msg = resultDataObject.getMsg();
               boolean res=false;
               if ("1".equals(resultDataObject.getCode())) {//结果正确的情况
                  List<DockingDataVO> dataObjectVOList = resultDataObject.getData();
                  res=true;
                  dataObjectVOList.stream().forEach(dataObject -> {
                     boolean isEditDatas = false;
                     String code2 = dataObject.getCode();
                     DockingMainDataVO data2 = dataObject.getData();
                     String applyId = data2.getApplyId();//申请单id
                     BaseModel baseModel = baseModelMap.get(applyId);
                     String customCoding = StringUtils.isBlank(data2.getCustomCoding()) ? "" : data2.getCustomCoding();//集团码段
                     msg = dataObject.getMsg();
                     if (code2.equals("1")) {//结果正确的情况
@@ -142,8 +164,16 @@
                     if (editDockingPreApplyFormMap.containsKey(applyId)) {
                        DockingPreApplyForm dockingPreApplyForm = editDockingPreApplyFormMap.get(applyId);
                        dockingPreApplyForm.setCode(code2);
                        //dockingPreApplyForm.setDescription(baseModel.getId());
                        dockingPreApplyForm.setMsg("申请:" + msg);
                        dockingPreApplyForm.setGroupCode(customCoding);
                        if(StringUtils.isBlank(dockingPreApplyForm.getGroupCode())) {
                           dockingPreApplyForm.setGroupCode(customCoding);
                        }else{
                           isEditDatas = true;
                           if (StringUtils.isBlank(customCoding)) {
                              customCoding=dockingPreApplyForm.getGroupCode();
                           }
                        }
                        ObjectMapper mp = new ObjectMapper();
                        String writeValueAsString = null;
                        try {
@@ -151,11 +181,13 @@
                           dockingPreApplyForm.setContent(writeValueAsString);
                        } catch (JsonProcessingException e) {
                        }
                        DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
                     }
                     //新增的申请单数据
                     if (addDockingPreApplyFormMap.containsKey(applyId)) {
                        DockingPreApplyForm dockingPreApplyForm = addDockingPreApplyFormMap.get(applyId);
                        dockingPreApplyForm.setCode(code2);
                        dockingPreApplyForm.setDescription(baseModel.getId());
                        dockingPreApplyForm.setMsg("申请:" + msg);
                        dockingPreApplyForm.setGroupCode(customCoding);
                        ObjectMapper mp = new ObjectMapper();
@@ -165,25 +197,28 @@
                           dockingPreApplyForm.setContent(writeValueAsString);
                        } catch (JsonProcessingException e) {
                        }
                        DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                     }
                     //如果有集团码则更新数据
                     if (isEditDatas) {
                        if (baseModelMap.containsKey(applyId)) {
                           BaseModel baseModel = baseModelMap.get(applyId);
                           String classOid=baseModel.getData().getOrDefault("CODECLSFID","");
                           baseModel = baseModelMap.get(applyId);
                           Map<String,String> dataValueMap=new CaseInsensitiveMap<>(baseModel.getData());
                           /*String classOid=baseModel.getId();
                           if(partCoe.equals(classOid)){
                              baseModel.setId(10+customCoding);
                           }
                              customCoding=10+customCoding;
                           }*/
                           BeanUtilForVCI.copyDeclaredIgnoreCase(baseModel, baseModel);
                           DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                           DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                           baseModel.getData().getOrDefault("groupCode", customCoding);
                        //   DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                           baseModel.getData().put("GROUPCODE",customCoding);
                           updateCbos.add(baseModel);//更新数据集团code
                        }
                     }
                  });
               } else {
                  res=false;
                  editDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> {
                     dockingPreApplyForm.setCode("2");
                     dockingPreApplyForm.setMsg("申请:" + msg);
@@ -208,6 +243,9 @@
               //保存表单数据
               dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings);
               mdmEngineClient.updateBatchBtypeDatas(btmName, updateCbos);//保存数据
               if(!res){
                  throw new VciBaseException(msg);
               }
            }
            return R.success("申请接口调用成功");
         } catch (VciBaseException e) {
@@ -217,6 +255,7 @@
         return R.fail("申请接口开关已关闭,不申请集团码");
      }
   }
   /***
    * 主数据像集团更改编码
    * @param oids 需要修改的数据主键数组
@@ -227,7 +266,7 @@
   @Transactional(rollbackFor = VciBaseException.class)
   @Override
   public R receiveEditApply(String oids, String btmName) throws VciBaseException {
      if(usedFlag) {
      if(!usedFlag) {
         log.info("更新接口功能已关闭!->"+usedFlag);
         R.success("更新接口功能已关闭!");
      }
@@ -238,6 +277,11 @@
      //List<BaseModelVO> codeWupins=mdmEngineService.listByIds(VciBaseUtil.str2List(oids));
      List<BaseModel> dataModelList = new ArrayList<>();
      try {
         R<List<BaseModel>> listR = mdmEngineClient.selectByTypeAndOid(btmName, oids);
         if(listR.getData().size() == 0){
            return R.fail("为查询到相关业务数据!");
         }
         dataModelList = listR.getData();
         if (!CollectionUtils.isEmpty(dataModelList)) {
            DockingGroupDataVO dockingGroupDataVO = new DockingGroupDataVO();
            //申请单和申请单对象关系
@@ -268,7 +312,9 @@
                     DockingPreApplyForm dockingPreApplyForm = editDockingPreApplyFormMap.get(applyId);
                     dockingPreApplyForm.setCode(code2);
                     dockingPreApplyForm.setMsg("修改:" + msg);
                     dockingPreApplyForm.setGroupCode(customCoding);
                     if(StringUtils.isBlank(dockingPreApplyForm.getGroupCode())) {
                        dockingPreApplyForm.setGroupCode(customCoding);
                     }
                     ObjectMapper mp = new ObjectMapper();
                     String writeValueAsString = null;
                     try {
@@ -276,13 +322,16 @@
                        dockingPreApplyForm.setContent(writeValueAsString);
                     } catch (JsonProcessingException e) {
                     }
                     DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
                  }
                  //新增的申请单数据
                  if (addDockingPreApplyFormMap.containsKey(applyId)) {
                     DockingPreApplyForm dockingPreApplyForm = addDockingPreApplyFormMap.get(applyId);
                     dockingPreApplyForm.setCode(code2);
                     dockingPreApplyForm.setMsg("修改:" + msg);
                     dockingPreApplyForm.setGroupCode(customCoding);
                     if(StringUtils.isBlank(dockingPreApplyForm.getGroupCode())) {
                        dockingPreApplyForm.setGroupCode(customCoding);
                     }
                     ObjectMapper mp = new ObjectMapper();
                     String writeValueAsString = null;
                     try {
@@ -290,19 +339,20 @@
                        dockingPreApplyForm.setContent(writeValueAsString);
                     } catch (JsonProcessingException e) {
                     }
                     DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                  }
                  //如果有集团码则更新数据
                  if (isEditDatas) {
                     if (baseModelMap.containsKey(applyId)) {
                        BaseModel baseModel = baseModelMap.get(applyId);
                        //BeanUtilForVCI.copyDeclaredIgnoreCase(baseModelVO, baseModel);
                        String classOid=baseModel.getData().getOrDefault("CODECLSFID","");
                        /*String classOid=baseModel.getData().getOrDefault("CODECLSFID","");
                        if(partCoe.equals(classOid)){
                           baseModel.setId(10+customCoding);
                        }
                        }*/
                        DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                        //   baseModel.setId(customCoding);
                        baseModel.getData().put("groupCode", customCoding);
                        baseModel.getData().put("GROUPCODE", customCoding);
                        updateCbos.add(baseModel);//更新数据集团code
                     }
                  }
@@ -349,7 +399,7 @@
   public R queryClassModel(String groupClassifyId) throws Throwable {
      log.info("获取集团模型详细信息执行保存start");
      String message="执行成功!";
      if(usedFlag){
      if(!usedFlag){
         log.info("获取集团模型详细信息执行保存功能已关闭!->"+usedFlag);
         return R.fail("获取集团模型详细信息接口已关闭!");
      }
@@ -401,7 +451,7 @@
   public R queryMdmModel() throws Throwable {
      String message="执行成功!";
      log.info("从集团获取主模型信息执行保存接口statr");
      if(usedFlag){
      if(!usedFlag){
         log.info("从集团获取主模型信息执行保存接口功能已关闭!->"+usedFlag);
         return R.fail("查询模型视图接口已关闭!");
      }
@@ -471,15 +521,13 @@
         }
         return R.success(message);
      }catch (Throwable e){
         e.printStackTrace();;
         e.printStackTrace();
         log.error("获取数据模型失败"+e);
         R.fail(message);
      }
      log.info("从集团获取主模型信息执行保存接口end");
      return R.success(message);
   }
   /***
    * 查询申请单状态
@@ -488,12 +536,12 @@
    */
   @Override
   public R queryApplyState(String dataOids) throws VciBaseException {
      if(usedFlag){
      if(!usedFlag){
         log.info("查询申请单状态接口开关已关闭");
         return R.fail("查询申请单状态接口开关已关闭");
      }
      String message="执行成功!";
      log.info("查询申请单状态接口statr");
      log.info("查询申请单状态接口start");
      try {
         VciBaseUtil.alertNotNull(dataOids,"所查申请单数据主键");
         VciBaseUtil.alertNotNull(dockingApplySysName,"系统标识配置:docking.apply.unitCode");
@@ -508,13 +556,14 @@
         DockingModelQueryVO dockingModelQueryVO=new DockingModelQueryVO();
         dockingModelQueryVO.setApplyNums(VciBaseUtil.array2String(applyIdList.toArray(new String[]{})));
         dockingModelQueryVO.setSysName(dockingApplySysName);
         DockingApplyFormQueryStatusVO dockingApplyFormQueryStatusVO=mdmApplyGroupCodeProvider.queryApplyState(dockingModelQueryVO);
         DockingApplyFormQueryStatusVO dockingApplyFormQueryStatusVO = mdmApplyGroupCodeProvider.queryApplyState(dockingModelQueryVO);
         int code=dockingApplyFormQueryStatusVO.getCode();
         String mesg=dockingApplyFormQueryStatusVO.getMsg();
         if(code==1){
            message=mesg;
            List<DockingApplyFormStatusVO> dockingApplyFormStatusVOList=dockingApplyFormQueryStatusVO.getData();
            if(CollectionUtils.isEmpty(dockingApplyFormStatusVOList)){
            if(!CollectionUtils.isEmpty(dockingApplyFormStatusVOList)){
               for (DockingApplyFormStatusVO applyFormDataState : dockingApplyFormStatusVOList) {
                  String applyId=applyFormDataState.getApplyNum();
                  String state= applyFormDataState.getFormState();
@@ -525,21 +574,24 @@
                     applyFormObject.setMsg(jmsg);
                  }
               }
               boolean res=this.dockingPreApplyFormService.saveOrUpdateBatch(dockingPreApplyFormList);
               if(res){
                  R.success("申请集团码状态查询成功:"+mesg);
               }
               boolean res =  this.dockingPreApplyFormService.saveOrUpdateBatch(dockingPreApplyFormList);
            }else{
               throw new Throwable("没有获取到相关数据信息");
            }
         }else{
            throw new   Throwable(mesg);
            message=mesg;
            dockingPreApplyFormList.stream().forEach(dockingPreApplyForm -> {
               dockingPreApplyForm.setMsg("申请单查看失败:"+mesg);
            });
            this.dockingPreApplyFormService.saveOrUpdateBatch(dockingPreApplyFormList);
            throw new Throwable(message);
         }
      }catch (Throwable e){
         e.printStackTrace();;
         e.printStackTrace();
         //message=""+e;
         log.error("获取申请单状态失败"+e);
         throw  new VciBaseException(message);
         throw  new VciBaseException(e.getMessage());
      }
      log.info("查询申请单状态接口end");
      return R.success(message);
@@ -554,7 +606,7 @@
    */
   @Override
   public R syncClassifyModel(String classifyId, String operationType) throws VciBaseException {
      if(usedFlag){
      if(!usedFlag){
         log.info("同步集团模型信息开关已关闭");
         return R.fail("同步集团模型信息开关已关闭");
      }
@@ -582,9 +634,9 @@
    */
   private boolean saveDatas(DockingQueryClassModelVO dockingQueryClassifyModelVO) throws Throwable {
      try {
         DockingClassifyMainVO mainData = dockingQueryClassifyModelVO.getMainData();
         List<DockingClassifyVO> classList = mainData.getClassList();
         Map<String,List<DockingClassifyViewVO>>classInfoMap = mainData.getClassInfos();
         DockingClassifyMainVO data = dockingQueryClassifyModelVO.getData();
         List<DockingClassifyVO> classList = data.getClassList();
         Map<String,List<DockingClassifyViewVO>>classInfoMap = data.getClassInfos();
         ////initVCIInvocationInfo("1");
         List<DockingPreClassify> dockingPreClassifyArrayList=new ArrayList<>();
         for (DockingClassifyVO jclassObject : classList) {
@@ -603,6 +655,7 @@
            log.info("classify:-------------->链接名称:"+nodeLinkName);
            if (dockingPreClassify == null || StringUtils.isBlank(dockingPreClassify.getOid())) {
               dockingPreClassify=new DockingPreClassify();
               DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreClassify,MdmBtmTypeConstant.DOCKING_PRE_JCLASSIFY);
            } else {
               DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreClassify);
@@ -643,14 +696,14 @@
         Map<String, DockingPreViewModel> jviewmodelMap = new HashMap<String, DockingPreViewModel>();
         //Map<String, String> condtionMa = new HashMap<String, String>();
         //   condtionMa.put("jsourceclsfid", jclassId);
         List<DockingPreViewModel> dockingPreViewModelList= dockingPreViewModelService.list(Wrappers.<DockingPreViewModel>query().lambda().eq(DockingPreViewModel::getSourceClassifyId,false));// 根据分类查询模型视图对象
         List<DockingPreViewModel> dockingPreViewModelList= dockingPreViewModelService.list(Wrappers.<DockingPreViewModel>query().lambda().eq(DockingPreViewModel::getSourceClassifyId,jclassId));// 根据分类查询模型视图对象
         for (DockingPreViewModel dockingPreViewModel : dockingPreViewModelList) {
            jviewmodelMap.put(dockingPreViewModel.getViewName(),dockingPreViewModel);
         }
         for (DockingClassifyViewVO viewInfo : list) {
            String viewName = com.alibaba.cloud.commons.lang.StringUtils.isBlank(viewInfo.getViewName())?"":viewInfo.getViewName();
            String impactList = com.alibaba.cloud.commons.lang.StringUtils.isBlank(viewInfo.getImpactList())?"":viewInfo.getImpactList();
            String impactList = viewInfo.getImpactList() == null ? "" : viewInfo.getImpactList().get(0)==null||viewInfo.getImpactList().get(0).size()==0?"":viewInfo.getImpactList().get(0).get(0);
            log.info("VilewMode:-------------->视图名称:"+viewName);
            log.info("VilewMode:-------------->影响编码项:"+impactList);
            log.info("VilewMode:--------------> 集团分类主键:"+jclassId);
@@ -685,7 +738,6 @@
      }
   }
   /***
    * 获取模型视图属性
    * @throws Throwable
@@ -698,7 +750,7 @@
            .eq(DockingPreMetaAttr::getSourceClassifyId,jclassId).eq(DockingPreMetaAttr::getViewModelId,jviewModelObject.getOid())
            .eq(DockingPreMetaAttr:: getPid,pid));
         Map<String,DockingPreMetaAttr> jmetaattrMap = dockingPreMetaAttrList.stream().filter(
            s -> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(s.getEnglishName())).collect(Collectors.toMap(s -> s.getEnglishName().toLowerCase(Locale.ROOT), t -> t));
            s -> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(s.getEnglishName())).collect(Collectors.toMap(s -> s.getEnglishName(), t -> t));
         for (DockingClassifyMetaAttrVO dockingClassifyMetaAttrVO : metaList) {
            String chineseName = com.alibaba.cloud.commons.lang.StringUtils.isBlank(dockingClassifyMetaAttrVO.getChineseName())?"":dockingClassifyMetaAttrVO.getChineseName();// 属性名称
@@ -743,6 +795,8 @@
               List<DockingClassifyMetaAttrVO> childMetaList = new ArrayList<>();
               childMetaList.add(compositeMeta);
               getMetaAttrObject(childMetaList, jclassId,jviewModelObject, pid,allDockingPreMetaAttrList);
            }else{
               allDockingPreMetaAttrList.add(dockingPreMetaAttr);
            }
         }
@@ -765,6 +819,7 @@
    */
   private void getRange(DockingPreMetaAttr metaAttrObject,Map<String, String> range) throws Throwable {
      String metaAttrOid = com.alibaba.cloud.commons.lang.StringUtils.isBlank(metaAttrObject.getOid())?"":metaAttrObject.getOid();// 属性的oid
      String jchinesename = com.alibaba.cloud.commons.lang.StringUtils.isBlank(metaAttrObject.getChineseName())?"":metaAttrObject.getChineseName();
      Map<String, DockingPreAttrRange> rangeMap = new HashMap<>();
      try {
@@ -772,7 +827,9 @@
         condtionMa.put("jmetalistid", metaAttrOid);
         List<DockingPreAttrRange> jmetaattrList = dockingPreAttrRangeService.selectByWrapper(Wrappers.<DockingPreAttrRange>query().lambda()
            .eq(DockingPreAttrRange::getMetaListId,metaAttrOid));// 根据分类查询模型视图对象
         rangeMap= jmetaattrList.stream().collect(Collectors.toMap(s -> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(s.getNumText().toLowerCase(Locale.ROOT))?"":s.getNumText().toLowerCase(Locale.ROOT), t -> t));
         log.info("获取属性美剧 属性id------->"+metaAttrOid);
         //rangeMap= jmetaattrList.stream().collect(Collectors.toMap(s ->StringUtils.isNotBlank(s.getNumText())?"":s.getNumText(), t -> t));
         rangeMap=jmetaattrList.stream().filter(data -> data != null && StringUtils.isNotBlank(data.getNumText())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getNumText(), t -> t));
         for (String rangeKey : range.keySet()) {
            DockingPreAttrRange rangeObject = new DockingPreAttrRange();
@@ -802,43 +859,42 @@
      }
   }
   /**
    * 组织数据
    * */
   private DockingGroupDataVO queryApplycodeDataObjects(int optationtype,List<BaseModel>  codeWupins,Map<String,DockingPreApplyForm>   addDockingPreApplyFormMap,Map<String,DockingPreApplyForm>  editDockingPreApplyFormMap,Map<String,BaseModel>  codeWupinMap) throws VciBaseException{
      try {
         String curUserName = AuthUtil.getUser().getUserName();
         String curUserName =AuthUtil.getUser().getUserName();
         //申请的数据
         List<DockingMainData> mainDataList=new ArrayList<DockingMainData>();
         for (BaseModel dataBusinessObject : codeWupins) {
            String format = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
            String codeclsfid = dataBusinessObject.getData().getOrDefault("codeclsfid","");
            //String codeclsfid = dataBusinessObject.getData().getOrDefault("codeclsfid".toUpperCase(Locale.ROOT),"");
             Map<String,String> dataMap=new CaseInsensitiveMap<>(dataBusinessObject.getData());
            String codeclsfid=dataMap.getOrDefault("codeclsfid","");
            String btmName = dataBusinessObject.getBtmname();
            String oid = dataBusinessObject.getOid();
            DockingPreApplyForm dockingPreApplyForm = new DockingPreApplyForm();
            String dataOid = dataBusinessObject.getOid();
            Map<String, String> conditionsMap = new HashMap<String, String>();
            List<DockingPreApplyForm> applyFormObjects = dockingPreApplyFormService.list(Wrappers.<DockingPreApplyForm>query().lambda().eq(DockingPreApplyForm::getDataOid, dataOid).eq(DockingPreApplyForm::getOperationType, optationtype));
            //List<DockingPreApplyForm> applyFormObjects = dockingPreApplyFormService.list(Wrappers.<DockingPreApplyForm>query().lambda().eq(DockingPreApplyForm::getDataOid, dataOid).eq(DockingPreApplyForm::getOperationType, optationtype));
         //   DockingPreApplyForm dockingPreApplyForm=new DockingPreApplyForm();
            String apllyCode = "";
            if (!CollectionUtils.isEmpty(applyFormObjects)) {
            /*if (!CollectionUtils.isEmpty(applyFormObjects)) {
               dockingPreApplyForm = applyFormObjects.get(0);
               apllyCode = dockingPreApplyForm.getId();
               editDockingPreApplyFormMap.put(apllyCode, dockingPreApplyForm);//申请单和申请单对象关系
            } else {
            } else {*/
               apllyCode = dockingApplyUnitCode + "-" + format;
               dockingPreApplyForm.setId(apllyCode);
               dockingPreApplyForm.setName("");
               dockingPreApplyForm.setOperationType(optationtype+"");
               dockingPreApplyForm.setDescription(dataBusinessObject.getDescription());//获取数据描述信息
               dockingPreApplyForm.setDescription(dataBusinessObject.getId());//获取数据描述信息
               dockingPreApplyForm.setDataOid(oid);
               dockingPreApplyForm.setDataBtmName(btmName);
               addDockingPreApplyFormMap.put(apllyCode, dockingPreApplyForm);//申请单和申请单对象关系
            }
         //   }
            codeWupinMap.put(apllyCode, dataBusinessObject);//申请单和对应数据关系
            conditionsMap = new HashMap<String, String>();
@@ -856,6 +912,11 @@
            mainData.setApplyId(apllyCode);//申请单号
            mainData.setClassName(dockingPreClassify.getNodeLinkName());//分类名称
            mainData.setCreateBy(curUserName);//
            if(optationtype==2) {
               String groucode=dataBusinessObject.getData().getOrDefault("GROUPCODE","");
               dockingPreApplyForm.setGroupCode(groucode);
               mainData.setCustomCoding(groucode);
            }
            mainData.setSecretLevel("内部");//密级,默认为内部
            mainData.setViewInfos(getviewInfos(optationtype,dockingPreClassify, dataBusinessObject));//获取视图模型
            mainDataList.add(mainData);
@@ -910,7 +971,7 @@
      //构造模型视图数据
      List<Map<String, Object>> viewValueList=new ArrayList<Map<String,Object>>();
      String oid = dockingPreViewModel.getOid();
      Map<String,String> dataValueMap=dataBusinessObject.getData();
      Map<String,String> dataValueMap=new CaseInsensitiveMap<>(dataBusinessObject.getData());
      String codeClassifyId=dataValueMap.get("codeclsfid");
      Map<String,String>conditionsMap=new HashMap<String, String>();
      List<DockingPreAttrMapping> dockingPreAttrMappingList = dockingPreAttrMappingMapper.selectList(Wrappers.<DockingPreAttrMapping>query().lambda()
@@ -937,7 +998,16 @@
            Object newVaue=null;
            if(StringUtils.isNotBlank(jtargetattrkey)){
               getAttrRange(dockingPreMetaAttr);//获取字段取值范围
               String value=dataValueMap.get(jtargetattrkey)==null?"":dataValueMap.getOrDefault(jtargetattrkey,"");
               String value="";
               if(jtargetattrkey.toLowerCase(Locale.ROOT).equals("name")){
                  value=dataBusinessObject.getName();
               }else if(jtargetattrkey.toLowerCase(Locale.ROOT).equals("id")){
                  value=dataBusinessObject.getId();
               }else if(jtargetattrkey.toLowerCase(Locale.ROOT).equals("description")){
                  value=dataBusinessObject.getDescription();
               }else{
                  value=dataValueMap.get(jtargetattrkey)==null?"":dataValueMap.getOrDefault(jtargetattrkey,"");
               }
               newVaue = getVaue(dockingPreMetaAttr, value);
            }else{
               newVaue = getVaue(dockingPreMetaAttr, "");
@@ -945,6 +1015,7 @@
            if(newVaue==null||"".equals(newVaue)){
               newVaue= dockingPreMetaAttr.getDefaultValue();
            }
            //newVaue= Func.isNotEmpty(newVaue)?newVaue:"";
            viewValueMap.put(jenglishname, newVaue);
         }
      }
@@ -957,6 +1028,7 @@
    * 获取属性枚举映射配置
    */
   Map<String,Map<String, DockingPreAttrRange>> attrRangeMap=new HashMap<String, Map<String,DockingPreAttrRange>>();
   private void getAttrRange(DockingPreMetaAttr jmetaatter) throws Throwable{
      String jmetalistoid = jmetaatter.getOid();
@@ -974,6 +1046,7 @@
      attrRangeMap.put(jmetalistoid, rangeMap);
   }
   /****
    * 值类型转换
    * @param jmetaatter
@@ -1010,7 +1083,7 @@
            return null;
         }else {
            try {
               return simpleDateFormat.parse(value);
               return simpleDateFormat.format(simpleDateFormat.parse(value));
            } catch (ParseException e) {
               throw new VciBaseException("date", new String[]{"日期格式转换错误"});
            }
@@ -1021,7 +1094,7 @@
            return null;
         }else{
            try {
               return simpleDateFormat.parse(value);
               return simpleDateFormat.format(simpleDateFormat.parse(value));
            } catch (ParseException e) {
               throw new VciBaseException("date", new String[]{"日期格式转换错误"});
            }
@@ -1059,4 +1132,5 @@
      }
      return msg;
   }
}