xiejun
2024-01-23 8238e7215367e39de004c29244d2597bb1e5519b
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;
@@ -9,6 +10,10 @@
import com.vci.ubcs.code.applyjtcodeservice.entity.*;
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;
import com.vci.ubcs.code.applyjtcodeservice.mapper.DockingPreAttrMappingMapper;
@@ -17,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;
@@ -41,9 +48,11 @@
   private String code="";
   private String msg="";
   @Value("${docking.apply.unitCode:41000}")
   @Value("${docking.apply.partCode:101}")
   public String partCoe;
   @Value("${docking.apply.usedFlag:false}")
   public boolean usedFlag;
   @Value("${docking.apply.unitCode:4100}")
   public String dockingApplyUnitCode;
   @Value("${docking.apply.sysName:410-MDM}")
@@ -101,111 +110,149 @@
   @Transactional(rollbackFor = VciBaseException.class)
   @Override
   public R applyGroupCode(String oids, String btmName) throws VciBaseException {
      try {
         List<BaseModel> updateCbos = new ArrayList<BaseModel>();
         List<DockingPreApplyForm> dockingPreAttrMappings = new ArrayList<>();
         VciBaseUtil.alertNotNull(oids, "选择的数据");
         VciBaseUtil.alertNotNull(btmName, "业务类型");
         R<List<BaseModel>> baseModelR =mdmEngineClient.selectByTypeAndOid(btmName,oids);
         List<BaseModel> dataModelList= baseModelR.getData();
         if (!CollectionUtils.isEmpty(dataModelList)) {
            DockingGroupDataVO dockingGroupDataVO = new DockingGroupDataVO();
            //申请单和申请单对象关系
            Map<String, DockingPreApplyForm> addDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>();
            Map<String, DockingPreApplyForm> editDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>();
            Map<String, BaseModel> baseModelMap = new HashMap<String, BaseModel>();
            //组织数据
            dockingGroupDataVO = queryApplycodeDataObjects(1, dataModelList, addDockingPreApplyFormMap, editDockingPreApplyFormMap, baseModelMap);
            DockingResultVO resultDataObject = mdmApplyGroupCodeProvider.receiveAddApply(dockingGroupDataVO);
            code = resultDataObject.getCode();
            msg = resultDataObject.getMsg();
            if ("1".equals(resultDataObject.getCode())) {//结果正确的情况
               List<DockingDataVO> dataObjectVOList = resultDataObject.getData();
               dataObjectVOList.stream().forEach(dataObject -> {
                  boolean isEditDatas = false;
                  String code2 = dataObject.getCode();
                  DockingMainDataVO data2 = dataObject.getData();
                  String applyId = data2.getApplyId();//申请单id
                  String customCoding = StringUtils.isBlank(data2.getCustomCoding()) ? "" : data2.getCustomCoding();//集团码段
                  msg = dataObject.getMsg();
                  if (code2.equals("1")) {//结果正确的情况
                     if (!"".equals(customCoding)) {
                        isEditDatas = true;
      if(usedFlag) {
         try {
            List<BaseModel> updateCbos = new ArrayList<BaseModel>();
            List<DockingPreApplyForm> dockingPreAttrMappings = new ArrayList<>();
            VciBaseUtil.alertNotNull(oids, "选择的数据");
            VciBaseUtil.alertNotNull(btmName, "业务类型");
            R<List<BaseModel>> baseModelR = mdmEngineClient.selectByTypeAndOid(btmName, oids);
            List<BaseModel> dataModelList = baseModelR.getData();
            if (!CollectionUtils.isEmpty(dataModelList)) {
               DockingGroupDataVO dockingGroupDataVO = new DockingGroupDataVO();
               //申请单和申请单对象关系
               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);
               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")) {//结果正确的情况
                        if (!"".equals(customCoding)) {
                           isEditDatas = true;
                        }
                     }
                  }
                  //需要修改的申请单数据
                  if (editDockingPreApplyFormMap.containsKey(applyId)) {
                     DockingPreApplyForm dockingPreApplyForm = editDockingPreApplyFormMap.get(applyId);
                     dockingPreApplyForm.setCode(code2);
                     //需要修改的申请单数据
                     if (editDockingPreApplyFormMap.containsKey(applyId)) {
                        DockingPreApplyForm dockingPreApplyForm = editDockingPreApplyFormMap.get(applyId);
                        dockingPreApplyForm.setCode(code2);
                        //dockingPreApplyForm.setDescription(baseModel.getId());
                        dockingPreApplyForm.setMsg("申请:" + msg);
                        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 {
                           writeValueAsString = mp.writeValueAsString(dataObject);
                           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();
                        String writeValueAsString = null;
                        try {
                           writeValueAsString = mp.writeValueAsString(dataObject);
                           dockingPreApplyForm.setContent(writeValueAsString);
                        } catch (JsonProcessingException e) {
                        }
                        DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                     }
                     //如果有集团码则更新数据
                     if (isEditDatas) {
                        if (baseModelMap.containsKey(applyId)) {
                           baseModel = baseModelMap.get(applyId);
                           Map<String,String> dataValueMap=new CaseInsensitiveMap<>(baseModel.getData());
                           String classOid=dataValueMap.getOrDefault("CODECLSFID","");
                           if(partCoe.equals(classOid)){
                              baseModel.setId(10+customCoding);
                              customCoding=10+customCoding;
                           }
                           BeanUtilForVCI.copyDeclaredIgnoreCase(baseModel, baseModel);
                           DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                        //   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);
                     dockingPreApplyForm.setGroupCode(customCoding);
                     ObjectMapper mp = new ObjectMapper();
                     String writeValueAsString = null;
                     try {
                        writeValueAsString = mp.writeValueAsString(dataObject);
                        dockingPreApplyForm.setContent(writeValueAsString);
                     } catch (JsonProcessingException e) {
                     }
                  }
                  //新增的申请单数据
                  if (addDockingPreApplyFormMap.containsKey(applyId)) {
                     DockingPreApplyForm dockingPreApplyForm = addDockingPreApplyFormMap.get(applyId);
                     dockingPreApplyForm.setCode(code2);
                     dockingPreApplyForm.setContent("");
                     dockingPreApplyForm.setGroupCode("");
                     DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
                  });
                  addDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> {
                     dockingPreApplyForm.setCode("2");
                     dockingPreApplyForm.setMsg("申请:" + msg);
                     dockingPreApplyForm.setGroupCode(customCoding);
                     ObjectMapper mp = new ObjectMapper();
                     String writeValueAsString = null;
                     try {
                        writeValueAsString = mp.writeValueAsString(dataObject);
                        dockingPreApplyForm.setContent(writeValueAsString);
                     } catch (JsonProcessingException e) {
                     }
                  }
                  //如果有集团码则更新数据
                  if (isEditDatas) {
                     if (baseModelMap.containsKey(applyId)) {
                        BaseModel baseModel = baseModelMap.get(applyId);
                        BeanUtilForVCI.copyDeclaredIgnoreCase(baseModel, baseModel);
                        DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                        DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                        //baseModel.setId(customCoding);
                        baseModel.getData().getOrDefault("groupCode",customCoding);
                        updateCbos.add(baseModel);//更新数据集团code
                     }
                  }
               });
            } else {
               editDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> {
                  dockingPreApplyForm.setCode("2");
                  dockingPreApplyForm.setMsg("申请:" + msg);
                  dockingPreApplyForm.setContent("");
                  dockingPreApplyForm.setGroupCode("");
                  DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
               });
               addDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> {
                  dockingPreApplyForm.setCode("2");
                  dockingPreApplyForm.setMsg("申请:" + msg);
                  dockingPreApplyForm.setContent("");
                  dockingPreApplyForm.setGroupCode("");
                  DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
               });
                     dockingPreApplyForm.setContent("");
                     dockingPreApplyForm.setGroupCode("");
                     DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                  });
               }
               if (editDockingPreApplyFormMap.size() > 0) {
                  dockingPreAttrMappings.addAll(editDockingPreApplyFormMap.values());//添加申请单数据
               }
               if (addDockingPreApplyFormMap.size() > 0) {
                  dockingPreAttrMappings.addAll(addDockingPreApplyFormMap.values());//需要修改的申请单数据
               }
               //保存表单数据
               dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings);
               mdmEngineClient.updateBatchBtypeDatas(btmName, updateCbos);//保存数据
               if(!res){
                  throw new VciBaseException(msg);
               }
            }
            if (editDockingPreApplyFormMap.size() > 0) {
               dockingPreAttrMappings.addAll(editDockingPreApplyFormMap.values());//添加申请单数据
            }
            if (addDockingPreApplyFormMap.size() > 0) {
               dockingPreAttrMappings.addAll(addDockingPreApplyFormMap.values());//需要修改的申请单数据
            }
            //保存表单数据
            dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings);
            mdmEngineClient.updateBatchByType(btmName,updateCbos);//保存数据
            return R.success("申请接口调用成功");
         } catch (VciBaseException e) {
            return R.fail("申请接口调用失败" + e);
         }
         return R.success("申请接口调用成功");
      }catch (VciBaseException e){
         return R.fail("申请接口调用失败"+e);
      }else{
         return R.fail("申请接口开关已关闭,不申请集团码");
      }
   }
   /***
    * 主数据像集团更改编码
    * @param oids 需要修改的数据主键数组
@@ -216,13 +263,22 @@
   @Transactional(rollbackFor = VciBaseException.class)
   @Override
   public R receiveEditApply(String oids, String btmName) throws VciBaseException {
      List<BaseModel> updateCbos=new ArrayList<BaseModel>();
      List<DockingPreApplyForm> dockingPreAttrMappings=new ArrayList<>();
      VciBaseUtil.alertNotNull(oids,"选择的数据");
      VciBaseUtil.alertNotNull(btmName,"业务类型");
      if(!usedFlag) {
         log.info("更新接口功能已关闭!->"+usedFlag);
         R.success("更新接口功能已关闭!");
      }
      List<BaseModel> updateCbos = new ArrayList<BaseModel>();
      List<DockingPreApplyForm> dockingPreAttrMappings = new ArrayList<>();
      VciBaseUtil.alertNotNull(oids, "选择的数据");
      VciBaseUtil.alertNotNull(btmName, "业务类型");
      //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();
            //申请单和申请单对象关系
@@ -253,7 +309,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 {
@@ -261,13 +319,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 {
@@ -275,15 +336,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","");
                        if(partCoe.equals(classOid)){
                           baseModel.setId(10+customCoding);
                        }
                        DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                     //   baseModel.setId(customCoding);
                        baseModel.getData().getOrDefault("groupCode",customCoding);
                        //   baseModel.setId(customCoding);
                        baseModel.getData().put("GROUPCODE", customCoding);
                        updateCbos.add(baseModel);//更新数据集团code
                     }
                  }
@@ -312,11 +378,11 @@
            }
            //保存表单数据
            dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings);
            mdmEngineClient.updateBatchByType(btmName,updateCbos);//保存数据
            mdmEngineClient.updateBatchBtypeDatas(btmName, updateCbos);//保存数据
         }
         return R.success("申请接口调用成功");
      }catch (VciBaseException e){
         return R.fail("申请接口调用失败"+e.getMessage());
         return R.success("更新接口调用成功");
      } catch (VciBaseException e) {
         return R.fail("更新接口调用失败" + e.getMessage());
      }
   }
@@ -330,6 +396,10 @@
   public R queryClassModel(String groupClassifyId) throws Throwable {
      log.info("获取集团模型详细信息执行保存start");
      String message="执行成功!";
      if(!usedFlag){
         log.info("获取集团模型详细信息执行保存功能已关闭!->"+usedFlag);
         return R.fail("获取集团模型详细信息接口已关闭!");
      }
      try {
         if (StringUtils.isBlank(groupClassifyId)) {
            message = "参数:集团分类主键,为空!";
@@ -354,19 +424,19 @@
               log.info(message);
               throw new Throwable(message);
            }
         }else{
            message="未从集团获取到任何模型信息";
         } else {
            message = "未从集团获取到任何模型信息";
            log.info(message);
            throw new Throwable(message);
         }
         return R.success(message);
      }catch (Throwable e){
         e.printStackTrace();;
         log.error("获取数据模型详细信息失败"+e);
         R.fail(message);
      } catch (Throwable e) {
         e.printStackTrace();
         log.error("获取数据模型详细信息失败" + e);
         return R.fail(message);
      }finally {
         log.info("获取集团模型详细信息执行保存end");
      }
      log.info("获取集团模型详细信息执行保存end");
      return R.success(message);
   }
   /***
@@ -378,6 +448,10 @@
   public R queryMdmModel() throws Throwable {
      String message="执行成功!";
      log.info("从集团获取主模型信息执行保存接口statr");
      if(!usedFlag){
         log.info("从集团获取主模型信息执行保存接口功能已关闭!->"+usedFlag);
         return R.fail("查询模型视图接口已关闭!");
      }
      try {
         if (StringUtils.isBlank(dockingApplySysName)) {
            message = "获取系统标识" + dockingApplySysName + "为空,请查看配置!";
@@ -444,7 +518,7 @@
         }
         return R.success(message);
      }catch (Throwable e){
         e.printStackTrace();;
         e.printStackTrace();
         log.error("获取数据模型失败"+e);
         R.fail(message);
      }
@@ -461,7 +535,10 @@
    */
   @Override
   public R queryApplyState(String dataOids) throws VciBaseException {
      if(!usedFlag){
         log.info("查询申请单状态接口开关已关闭");
         return R.fail("查询申请单状态接口开关已关闭");
      }
      String message="执行成功!";
      log.info("查询申请单状态接口statr");
      try {
@@ -483,8 +560,9 @@
         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();
@@ -496,20 +574,23 @@
                  }
               }
               boolean res=this.dockingPreApplyFormService.saveOrUpdateBatch(dockingPreApplyFormList);
               if(res){
                  R.success("申请集团码状态查询成功:"+mesg);
               }
            }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);
@@ -524,6 +605,10 @@
    */
   @Override
   public R syncClassifyModel(String classifyId, String operationType) throws VciBaseException {
      if(!usedFlag){
         log.info("同步集团模型信息开关已关闭");
         return R.fail("同步集团模型信息开关已关闭");
      }
      VciBaseUtil.alertNotNull(operationType,"集成操作类型");
      try {
         if(operationType.equals("all")){
@@ -548,9 +633,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) {
@@ -569,6 +654,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);
@@ -609,14 +695,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).get(0);
            log.info("VilewMode:-------------->视图名称:"+viewName);
            log.info("VilewMode:-------------->影响编码项:"+impactList);
            log.info("VilewMode:--------------> 集团分类主键:"+jclassId);
@@ -664,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();// 属性名称
@@ -709,6 +795,8 @@
               List<DockingClassifyMetaAttrVO> childMetaList = new ArrayList<>();
               childMetaList.add(compositeMeta);
               getMetaAttrObject(childMetaList, jclassId,jviewModelObject, pid,allDockingPreMetaAttrList);
            }else{
               allDockingPreMetaAttrList.add(dockingPreMetaAttr);
            }
         }
@@ -731,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 {
@@ -738,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();
@@ -768,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 ="28201728"; //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>();
@@ -822,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);
@@ -876,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()
@@ -903,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, "");
@@ -911,6 +1015,7 @@
            if(newVaue==null||"".equals(newVaue)){
               newVaue= dockingPreMetaAttr.getDefaultValue();
            }
            //newVaue= Func.isNotEmpty(newVaue)?newVaue:"";
            viewValueMap.put(jenglishname, newVaue);
         }
      }
@@ -976,7 +1081,7 @@
            return null;
         }else {
            try {
               return simpleDateFormat.parse(value);
               return simpleDateFormat.format(simpleDateFormat.parse(value));
            } catch (ParseException e) {
               throw new VciBaseException("date", new String[]{"日期格式转换错误"});
            }
@@ -987,7 +1092,7 @@
            return null;
         }else{
            try {
               return simpleDateFormat.parse(value);
               return simpleDateFormat.format(simpleDateFormat.parse(value));
            } catch (ParseException e) {
               throw new VciBaseException("date", new String[]{"日期格式转换错误"});
            }