xiejun
2024-01-10 b3f2a29b4b6745aaa0e578d2547dfed719c28039
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java
@@ -19,6 +19,7 @@
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.springframework.beans.factory.annotation.Autowired;
@@ -45,7 +46,7 @@
   private String msg="";
   @Value("${docking.apply.partCoe:10}")
   public String partCoe;
   @Value("${docking.apply.userFlag:false}")
   @Value("${docking.apply.usedFlag:false}")
   public boolean usedFlag;
   @Value("${docking.apply.unitCode:41000}")
   public String dockingApplyUnitCode;
@@ -175,8 +176,8 @@
                              baseModel.setId(10+customCoding);
                           }
                           BeanUtilForVCI.copyDeclaredIgnoreCase(baseModel, baseModel);
                           DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel,null);
                           DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel,null);
                           DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                           DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                           baseModel.getData().getOrDefault("groupCode", customCoding);
                           updateCbos.add(baseModel);//更新数据集团code
@@ -189,14 +190,14 @@
                     dockingPreApplyForm.setMsg("申请:" + msg);
                     dockingPreApplyForm.setContent("");
                     dockingPreApplyForm.setGroupCode("");
                     DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm,null);
                     DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
                  });
                  addDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> {
                     dockingPreApplyForm.setCode("2");
                     dockingPreApplyForm.setMsg("申请:" + msg);
                     dockingPreApplyForm.setContent("");
                     dockingPreApplyForm.setGroupCode("");
                     DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM,null);
                     DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
                  });
               }
               if (editDockingPreApplyFormMap.size() > 0) {
@@ -227,7 +228,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 +239,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();
            //申请单和申请单对象关系
@@ -300,7 +306,7 @@
                        if(partCoe.equals(classOid)){
                           baseModel.setId(10+customCoding);
                        }
                        DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel,null);
                        DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
                        //   baseModel.setId(customCoding);
                        baseModel.getData().put("groupCode", customCoding);
                        updateCbos.add(baseModel);//更新数据集团code
@@ -313,14 +319,14 @@
                  dockingPreApplyForm.setMsg("修改:" + msg);
                  dockingPreApplyForm.setContent("");
                  dockingPreApplyForm.setGroupCode("");
                  DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm,null);
                  DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
               });
               addDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> {
                  dockingPreApplyForm.setCode("2");
                  dockingPreApplyForm.setMsg("修改:" + msg);
                  dockingPreApplyForm.setContent("");
                  dockingPreApplyForm.setGroupCode("");
                  DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM,null);
                  DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
               });
            }
            if (editDockingPreApplyFormMap.size() > 0) {
@@ -349,7 +355,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 +407,7 @@
   public R queryMdmModel() throws Throwable {
      String message="执行成功!";
      log.info("从集团获取主模型信息执行保存接口statr");
      if(usedFlag){
      if(!usedFlag){
         log.info("从集团获取主模型信息执行保存接口功能已关闭!->"+usedFlag);
         return R.fail("查询模型视图接口已关闭!");
      }
@@ -439,9 +445,9 @@
                  log.info("classify:-------------->链接名称:"+nodeLinkName);
                  log.info("classify:-------------->链接版本:"+version);
                  if (dockingPreClassify == null || StringUtils.isBlank(dockingPreClassify.getOid())) {
                     DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreClassify,MdmBtmTypeConstant.DOCKING_PRE_JCLASSIFY,null);
                     DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreClassify,MdmBtmTypeConstant.DOCKING_PRE_JCLASSIFY);
                  } else {
                     DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreClassify,null);
                     DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreClassify);
                  }
                  dockingPreClassify.setOid(id);
                  dockingPreClassify.setName(className);
@@ -488,7 +494,7 @@
    */
   @Override
   public R queryApplyState(String dataOids) throws VciBaseException {
      if(usedFlag){
      if(!usedFlag){
         log.info("查询申请单状态接口开关已关闭");
         return R.fail("查询申请单状态接口开关已关闭");
      }
@@ -554,7 +560,7 @@
    */
   @Override
   public R syncClassifyModel(String classifyId, String operationType) throws VciBaseException {
      if(usedFlag){
      if(!usedFlag){
         log.info("同步集团模型信息开关已关闭");
         return R.fail("同步集团模型信息开关已关闭");
      }
@@ -582,9 +588,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,9 +609,9 @@
            log.info("classify:-------------->链接名称:"+nodeLinkName);
            if (dockingPreClassify == null || StringUtils.isBlank(dockingPreClassify.getOid())) {
               DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreClassify,MdmBtmTypeConstant.DOCKING_PRE_JCLASSIFY,null);
               DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreClassify,MdmBtmTypeConstant.DOCKING_PRE_JCLASSIFY);
            } else {
               DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreClassify,null);
               DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreClassify);
            }
            dockingPreClassify.setOid(id);
            dockingPreClassify.setName(className);
@@ -643,14 +649,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);
@@ -660,10 +666,10 @@
               jviewModelObject = jviewmodelMap.get(viewName);
               //影响编码项的数据
               jviewModelObject.setImpactList(impactList);
               DefaultAttrAssimtUtil.updateDefaultAttrAssimt(jviewModelObject,null);
               DefaultAttrAssimtUtil.updateDefaultAttrAssimt(jviewModelObject);
            } else {
               jviewModelObject =new DockingPreViewModel();
               DefaultAttrAssimtUtil.addDefaultAttrAssimt(jviewModelObject,MdmBtmTypeConstant.DOCKING_PRE_JVIEWMODEL,null);
               DefaultAttrAssimtUtil.addDefaultAttrAssimt(jviewModelObject,MdmBtmTypeConstant.DOCKING_PRE_JVIEWMODEL);
               jviewModelObject.setSourceClassifyId(jclassId);// 集团分类id
               jviewModelObject.setViewName(viewName);// 集团视图名称
               //影响编码项的数据
@@ -718,9 +724,9 @@
               dockingPreMetaAttr = jmetaattrMap.get(englishName);
               dockingPreMetaAttr.setChineseName(chineseName);
               dockingPreMetaAttr.setDefaultValue(defaultValue);
               DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreMetaAttr,null);
               DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreMetaAttr);
            } else {
               DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreMetaAttr,MdmBtmTypeConstant.DOCKING_PRE_JMETAATRR,null);
               DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreMetaAttr,MdmBtmTypeConstant.DOCKING_PRE_JMETAATRR);
               dockingPreMetaAttr.setSourceClassifyId(jclassId);// 集团分类id
               dockingPreMetaAttr.setViewModelId(jviewModelObject.getOid());// 集团视图模型id
               dockingPreMetaAttr.setChineseName(chineseName);// 属性名称
@@ -743,6 +749,8 @@
               List<DockingClassifyMetaAttrVO> childMetaList = new ArrayList<>();
               childMetaList.add(compositeMeta);
               getMetaAttrObject(childMetaList, jclassId,jviewModelObject, pid,allDockingPreMetaAttrList);
            }else{
               allDockingPreMetaAttrList.add(dockingPreMetaAttr);
            }
         }
@@ -782,9 +790,9 @@
               rangeObject = rangeMap.get(rangeKey);
               rangeObject.setNumTextValue(keyValue);
               rangeObject.setNumText(rangeKey);
               DefaultAttrAssimtUtil.updateDefaultAttrAssimt(rangeObject,null);
               DefaultAttrAssimtUtil.updateDefaultAttrAssimt(rangeObject);
            } else {
               DefaultAttrAssimtUtil.addDefaultAttrAssimt(rangeObject,MdmBtmTypeConstant.DOCKING_PRE_JRANGE,null);
               DefaultAttrAssimtUtil.addDefaultAttrAssimt(rangeObject,MdmBtmTypeConstant.DOCKING_PRE_JRANGE);
               rangeObject.setNumTextValue(keyValue);
               rangeObject.setNumText(rangeKey);
               rangeObject.setTs(rangeObject.getLastModifyTime());
@@ -815,7 +823,8 @@
         List<DockingMainData> mainDataList=new ArrayList<DockingMainData>();
         for (BaseModel dataBusinessObject : codeWupins) {
            String format = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
            String codeclsfid = dataBusinessObject.getData().getOrDefault("codeclsfid","");
            Map<String,String>  dataValueMap=new CaseInsensitiveMap<>(dataBusinessObject.getData());
            String codeclsfid =dataValueMap.getOrDefault("codeclsfid","");
            String btmName = dataBusinessObject.getBtmname();
            String oid = dataBusinessObject.getOid();
@@ -910,7 +919,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 +946,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, "");
@@ -948,7 +966,6 @@
            viewValueMap.put(jenglishname, newVaue);
         }
      }
      viewValueList.add(viewValueMap);
      return viewValueList;
   }