| | |
| | | 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.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; |
| | |
| | | private String code=""; |
| | | |
| | | private String msg=""; |
| | | |
| | | |
| | | @Value("${docking.apply.partCoe:10}") |
| | | public String partCoe; |
| | | @Value("${docking.apply.userFlag:false}") |
| | | public boolean usedFlag; |
| | | @Value("${docking.apply.unitCode:41000}") |
| | | public String dockingApplyUnitCode; |
| | | |
| | |
| | | @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>(); |
| | | //组织数据 |
| | | 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 (editDockingPreApplyFormMap.containsKey(applyId)) { |
| | | DockingPreApplyForm dockingPreApplyForm = editDockingPreApplyFormMap.get(applyId); |
| | | dockingPreApplyForm.setCode(code2); |
| | | //需要修改的申请单数据 |
| | | if (editDockingPreApplyFormMap.containsKey(applyId)) { |
| | | DockingPreApplyForm dockingPreApplyForm = editDockingPreApplyFormMap.get(applyId); |
| | | dockingPreApplyForm.setCode(code2); |
| | | 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.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); |
| | | String classOid=baseModel.getData().getOrDefault("CODECLSFID",""); |
| | | if(partCoe.equals(classOid)){ |
| | | baseModel.setId(10+customCoding); |
| | | } |
| | | BeanUtilForVCI.copyDeclaredIgnoreCase(baseModel, baseModel); |
| | | DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel); |
| | | DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel); |
| | | |
| | | baseModel.getData().getOrDefault("groupCode", customCoding); |
| | | updateCbos.add(baseModel);//更新数据集团code |
| | | } |
| | | } |
| | | }); |
| | | } else { |
| | | 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 (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 需要修改的数据主键数组 |
| | |
| | | @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(); |
| | | //申请单和申请单对象关系 |
| | |
| | | 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 |
| | | } |
| | | } |
| | |
| | | } |
| | | //保存表单数据 |
| | | 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()); |
| | | } |
| | | } |
| | | |
| | |
| | | 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 = "参数:集团分类主键,为空!"; |
| | |
| | | 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); |
| | | } |
| | | |
| | | /*** |
| | |
| | | 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 + "为空,请查看配置!"; |
| | |
| | | } |
| | | return R.success(message); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace();; |
| | | e.printStackTrace(); |
| | | log.error("获取数据模型失败"+e); |
| | | R.fail(message); |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public R queryApplyState(String dataOids) throws VciBaseException { |
| | | |
| | | if(usedFlag){ |
| | | log.info("查询申请单状态接口开关已关闭"); |
| | | return R.fail("查询申请单状态接口开关已关闭"); |
| | | } |
| | | String message="执行成功!"; |
| | | log.info("查询申请单状态接口statr"); |
| | | try { |
| | |
| | | } |
| | | |
| | | }catch (Throwable e){ |
| | | e.printStackTrace();; |
| | | e.printStackTrace(); |
| | | log.error("获取申请单状态失败"+e); |
| | | throw new VciBaseException(message); |
| | | } |
| | |
| | | */ |
| | | @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")){ |
| | |
| | | */ |
| | | 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) { |
| | |
| | | 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); |
| | |
| | | List<DockingClassifyMetaAttrVO> childMetaList = new ArrayList<>(); |
| | | childMetaList.add(compositeMeta); |
| | | getMetaAttrObject(childMetaList, jclassId,jviewModelObject, pid,allDockingPreMetaAttrList); |
| | | }else{ |
| | | allDockingPreMetaAttrList.add(dockingPreMetaAttr); |
| | | } |
| | | |
| | | } |