From 01e690854cfd45322b07f3eafb91ff875dc7af7b Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期五, 08 九月 2023 15:45:02 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 116 insertions(+), 4 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java index f225f70..b54c7ba 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java @@ -17,6 +17,7 @@ import com.vci.ubcs.code.util.ClientBusinessObject; import com.vci.ubcs.code.util.gennerAttrMapUtil; import com.vci.ubcs.code.vo.pagemodel.*; +import com.vci.ubcs.code.vo.webserviceModel.person.*; import com.vci.ubcs.code.vo.webserviceModel.apply.*; import com.vci.ubcs.code.vo.webserviceModel.attrmap.*; import com.vci.ubcs.code.vo.webserviceModel.attrmap.DataObjectVO; @@ -34,6 +35,7 @@ import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultSystemVO; import com.vci.ubcs.code.webService.annotation.VciWebservice; import com.vci.ubcs.code.webService.config.AttributeMapConfig; +import com.vci.ubcs.code.webService.config.PersonAndDeptConfig; import com.vci.ubcs.code.wrapper.CodeClassifyWrapper; import com.vci.ubcs.omd.feign.IBtmTypeClient; import com.vci.ubcs.omd.vo.BtmTypeVO; @@ -59,8 +61,6 @@ import javax.annotation.Resource; import java.util.*; import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST; @@ -77,6 +77,11 @@ public boolean CODE_CHECKCONFIG; @Autowired(required = false) private AttributeMapConfig attributeMapConfig; + /*** + * 浜哄憳鐩稿叧閰嶇疆鏈嶅姟 + */ + @Autowired(required = false) + private PersonAndDeptConfig personAndDeptConfig; /** * 缂撳瓨鏈嶅姟 */ @@ -337,6 +342,113 @@ } + + /**** + * 浜哄憳鏁版嵁鍚屾 + * @param personData + * @return + * @throws Throwable + */ + @Override + public ResultOrgData syncDataForPerson(PersonData personData) { + boolean isUsedFlag= personAndDeptConfig.isUsedFlag(); + ResultOrgData resultOrgData=new ResultOrgData(); + boolean success=true; + String message=""; + if(isUsedFlag){ + List<PersonMasterData> masterDataList = personData.getMasterData(); + try { + String personLibrary = personAndDeptConfig.getPersonLibrary(); + if (StringUtils.isBlank(personLibrary)) { + success=false; + log.info("闆嗘垚閰嶇疆缂哄皯浜哄憳搴撹妭鐐逛俊鎭�,personLibrary->" + personLibrary); + throw new Throwable("闆嗘垚閰嶇疆缂哄皯浜哄憳搴撹妭鐐逛俊鎭�,personLibrary->" + personLibrary); + } + String personClassCode = personAndDeptConfig.getPersonClassCode(); + ClassfyVO classfyVO = new ClassfyVO(); + classfyVO.setLibrary(personLibrary); + classfyVO.setClassCode(personClassCode); + CodeClassifyVO codeClassifyVO=this.getClassfy(classfyVO,personLibrary); + log.info("end锛氬垎绫绘煡璇㈠畬姣�"); + //鑾峰彇鍒嗙被妯℃澘淇℃伅 + if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){ + success=false; + throw new Throwable ("鏍规嵁閰嶇疆鍒嗙被鐨勫垎绫荤紪鍙凤紝鏈幏鍙栧埌鍒嗙被淇℃伅"); + } + CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid()); + if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){ + success=false; + throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旀ā鏉�"); + } + List<PersonMasterData> personMasterDataList= personData.getMasterData(); + List<Map> dataList=new ArrayList<>(); + ApplyDatasVO applyDatasVO=new ApplyDatasVO(); + + + List<ApplyDataVO> applyDataVOList=new ArrayList<>(); + personMasterDataList.stream().forEach(personMasterData -> { + ApplyDataVO object=new ApplyDataVO(); + object.setCode(personMasterData.getLm_code());//缂栫爜 + object.setCreator(personMasterData.getCreator());//鍒涘缓鑰� + object.setEditor(personMasterData.getModifier());//淇敼鑰� + object.setId(personMasterData.getId());//涓婚敭 + object.setStatus(CodeDefaultLC.RELEASED.getValue());//鐘舵�佸垯闇�瑕佸垽鏂� + Map<String,String> dataMap= VciBaseUtil.objectToMapString(personMasterData); + List<ProppertyVO> proppertyVOList=new ArrayList<>(); + dataMap.forEach((key,vaule)->{ + ProppertyVO proppertyVO=new ProppertyVO(); + proppertyVO.setKey(key); + proppertyVO.setValue(vaule); + proppertyVOList.add(proppertyVO); + }); + object.setProp(proppertyVOList); + applyDataVOList.add(object); + }); + applyDatasVO.setObject(applyDataVOList); + DataObjectVO dataObjectVO = new DataObjectVO(); + List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag()) + ).collect(Collectors.toList()); + this.getConfigDatas("ERP", personLibrary, applyDatasVO, attrVOS, dataObjectVO); + log.info("end锛氭暟鎹粍缁囧畬姣�"); + //瑙勫垯鐨勪富閿渶瑕佸幓鑾峰彇 + CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid()); + if(classifyFullInfo==null ||classifyFullInfo.getCurrentClassifyVO()==null || StringUtils.isBlank(classifyFullInfo.getCurrentClassifyVO().getOid())){ + success=false; + log.info("classifyFullInfo:"+"鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栧垎绫荤浉鍏充俊鎭�"); + throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栧垎绫荤浉鍏充俊鎭�"); + } + CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo); + if(ruleVO==null||StringUtils.isBlank(ruleVO.getOid())){ + success=false; + throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旇鍒�"); + } + log.info("end锛氳鍒欒幏鍙栧畬姣�"); + + }catch (Throwable e){ + success=false; + message="浜哄憳鏁版嵁鎺ュ彈澶辫触:"+e.getMessage(); + }finally { + //缁勭粐杩斿洖缁撴灉 + masterDataList.stream().forEach(masterData -> { + ResultMdMapping resultMdMapping=new ResultMdMapping(); + resultMdMapping.setBusiDataId(masterData.getId()); + }); + } + + } + + return resultOrgData; + } + /**** + * 閮ㄩ棬鏁版嵁鍚屾 + * @param orgData + * @return + * @throws Throwable + */ + @Override + public ResultOrgData syncDataForOrg(OrgData orgData) { + return null; + } /*** * 缁熶竴鏇存柊鎺ュ彛锛堟洿鏀圭姸鎬侊紝鏇存敼灞炴�т俊鎭級鎺ュ彛 * @param data @@ -404,7 +516,6 @@ throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栧埌鍒嗙被淇℃伅"); } log.info("end锛氬垎绫绘煡璇㈠畬姣�"); - String operation=""; if(CODE_CHECKCONFIG) { //鏍¢獙鏄惁閰嶇疆 @@ -527,7 +638,7 @@ log.info("鏌ヨ鍒嗙被鐨勬暟鎹被鍨�:->"+dataType); ResultClassifyVO resultClassifyVO =new ResultClassifyVO(); List<ClassifyVO> classifyVOList=new ArrayList<>(); - ResultData resultData=new ResultData(); + com.vci.ubcs.code.vo.webserviceModel.classify.ResultData resultData=new com.vci.ubcs.code.vo.webserviceModel.classify.ResultData(); try { if (StringUtils.isBlank(data)) { errorid = "101"; @@ -1590,6 +1701,7 @@ dockingLoge.setParamString(parmaData);//鍙傛暟淇℃伅 dockingLoge.setReturnString(result);//杩斿洖淇℃伅 dockingLoge.setType(operation);//鏃ュ織鎿嶄綔绫诲瀷 + dockingLoge.setCreateTime(new Date()); if(isSucess) { dockingLoge.setInterfaceStatus("true");//鎺ュ彛闆嗘垚鐘舵�� }else{ -- Gitblit v1.9.3