From 3ea117935f971b75b141fc92591c10ade8aa3c81 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期二, 18 七月 2023 16:39:56 +0800
Subject: [PATCH] 流程业务数据保存
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 160 ++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 138 insertions(+), 22 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 57b99c2..1abb780 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
@@ -2,15 +2,16 @@
import com.alibaba.cloud.commons.lang.StringUtils;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
+import com.vci.ubcs.code.constant.MdmDuckingConstant;
import com.vci.ubcs.code.dto.CodeOrderDTO;
import com.vci.ubcs.code.dto.CodeOrderSecDTO;
import com.vci.ubcs.code.entity.*;
-import com.vci.ubcs.code.enumpack.CodeDefaultLC;
-import com.vci.ubcs.code.enumpack.CodeSecTypeEnum;
+import com.vci.ubcs.code.enumpack.*;
import com.vci.ubcs.code.mapper.CommonsMapper;
import com.vci.ubcs.code.service.*;
import com.vci.ubcs.code.util.ClientBusinessObject;
@@ -35,25 +36,26 @@
import com.vci.ubcs.code.wrapper.CodeClassifyWrapper;
import com.vci.ubcs.omd.feign.IBtmTypeClient;
import com.vci.ubcs.omd.vo.BtmTypeVO;
-import com.vci.ubcs.starter.revision.model.BaseModel;
+import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.revision.model.TreeQueryObject;
import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
-import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
+import com.vci.ubcs.starter.util.UBCSSqlKeyword;
import com.vci.ubcs.starter.web.pagemodel.SessionInfo;
import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.api.R;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST;
-import static com.vci.ubcs.code.constant.MdmEngineConstant.IMPORT_ROW_INDEX;
import static com.vci.ubcs.code.enumpack.CodeSecTypeEnum.CODE_CLASSIFY_SEC;
/***
@@ -63,7 +65,8 @@
@Slf4j
@VciWebservice(path = "/universalInterface")
public class UniversalInterfaceImpl<IDockingLogeServiceing> implements UniversalInterfaceI {
-
+ @Value("${code.universalinterface.checkSystemConfig:true}")
+ public boolean CODE_CHECKCONFIG;
@Autowired(required = false)
private AttributeMapConfig attributeMapConfig;
/**
@@ -101,6 +104,9 @@
@Resource
private MdmIOService mdmIOService;
+
+ @Resource
+ private IDockingSystemConfigService dockingSystemConfigService;
@Autowired
private ICodeClassifyValueService codeClassifyValueService;
@@ -156,6 +162,12 @@
}
ClassfysVO classfysVO = interParameterVO.getData().getClassifys();
systemId = interParameterVO.getData().getSystemId();
+ //鏍¢獙鏄惁閰嶇疆
+ boolean checkPass= checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue());
+ if(!checkPass){
+ errorid="101";
+ throw new Throwable("绯荤粺鏍囪瘑涓恒��"+systemId+"銆�,"+sysIntegrationPushTypeEnum.ACCPET_APPCODE.getText()+"鎺ュ彛閰嶇疆宸插仠鐢ㄦ垨鑰呮湭閰嶇疆锛岃鑱旂郴缂栫爜绠$悊鍛橈紒");
+ }
UserVO userVo = interParameterVO.getData().getUser();
List<ClassfyVO> classVOList = classfysVO.getClassify();
InterParameterVO finalInterParameterVO = interParameterVO;
@@ -323,6 +335,13 @@
}
ClassfysVO classfysVO = interParameterVO.getData().getClassifys();
systemId = interParameterVO.getData().getSystemId();
+
+ //鏍¢獙鏄惁閰嶇疆
+ boolean checkPass = checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getValue());
+ if (!checkPass) {
+ errorid = "101";
+ throw new Throwable("绯荤粺鏍囪瘑涓恒��" + systemId + "銆�," + sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getText() + "鎺ュ彛閰嶇疆宸插仠鐢ㄦ垨鑰呮湭閰嶇疆锛岃鑱旂郴缂栫爜绠$悊鍛橈紒");
+ }
UserVO userVo = interParameterVO.getData().getUser();
List<ClassfyVO> classVOList = classfysVO.getClassify();
InterParameterVO finalInterParameterVO = interParameterVO;
@@ -474,6 +493,13 @@
String libId= libraryVO.getId();
List<String> classifyIdList= libraryVO.getClassifyid();
List<CodeClassifyVO> codeClassifyVOS =new ArrayList<>();
+ //鏍¢獙鏄惁閰嶇疆
+ boolean checkPass = checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_QUERYCLAFILY.getValue());
+ if (!checkPass) {
+ errorid = "101";
+ throw new Throwable("绯荤粺鏍囪瘑涓恒��" + systemId + "銆�," + sysIntegrationPushTypeEnum.ACCPET_QUERYCLAFILY.getText() + "鎺ュ彛閰嶇疆宸插仠鐢ㄦ垨鑰呮湭閰嶇疆锛岃鑱旂郴缂栫爜绠$悊鍛橈紒");
+ }
+
//杩欐槸璐﹀彿淇℃伅
//杩欐槸璐﹀彿淇℃伅
if(userVo!=null) {
@@ -542,7 +568,7 @@
classifyVO.setClassCode(codeClassifyDO.getId());
classifyVO.setDescription(codeClassifyDO.getDescription());
classifyVO.setName(codeClassifyDO.getName());
- classifyVO.setPid(codeClassifyDO.getParentcodeclassifyoid());
+ classifyVO.setPid(codeClassifyDO.getParentCodeClassifyOid());
classifyVO.setFullPathName(codeClassifyDO.getPath());
classifyVOList.add(classifyVO);
});
@@ -634,6 +660,13 @@
errorid = "101";
msg = "鎺ュ彛鍙傛暟锛歭ibrary 涓簄ull";
throw new Throwable(msg);
+ }
+
+ //鏍¢獙鏄惁閰嶇疆
+ boolean checkPass = checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_QUERYDATA.getValue());
+ if (!checkPass) {
+ errorid = "101";
+ throw new Throwable("绯荤粺鏍囪瘑涓恒��" + systemId + "銆�," + sysIntegrationPushTypeEnum.ACCPET_QUERYDATA.getText() + "鎺ュ彛閰嶇疆宸插仠鐢ㄦ垨鑰呮湭閰嶇疆锛岃鑱旂郴缂栫爜绠$悊鍛橈紒");
}
//鍏堢畝绉版槸鍚︽湁鍏宠仈妯℃澘锛屾湁妯℃澘瑕佸厛鍒犻櫎
@@ -820,6 +853,14 @@
String libId= libraryVO.getId();
List<String> classifyIdList= libraryVO.getClassifyid();
List<CodeClassifyVO> codeClassifyVOS =new ArrayList<>();
+
+ //鏍¢獙鏄惁閰嶇疆
+ boolean checkPass = checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_QUERYCLAFILYRULE.getValue());
+ if (!checkPass) {
+ errorid = "101";
+ throw new Throwable("绯荤粺鏍囪瘑涓恒��" + systemId + "銆�," + sysIntegrationPushTypeEnum.ACCPET_QUERYCLAFILYRULE.getText() + "鎺ュ彛閰嶇疆宸插仠鐢ㄦ垨鑰呮湭閰嶇疆锛岃鑱旂郴缂栫爜绠$悊鍛橈紒");
+ }
+
//杩欐槸璐﹀彿淇℃伅
//杩欐槸璐﹀彿淇℃伅
if(userVo!=null) {
@@ -906,10 +947,54 @@
}else if(secType.equals("coderefersec")){//寮曠敤鐮佹
codeBasicSecVO.getReferAttributeId();
codeBasicSecVO.getReferCodeClassifyOid();
- codeBasicSecVO.getReferBtmId();
- codeBasicSecVO.getReferBtmName();
- //codeBasicSecVO.getReferValueInfo();
+ String referBtmId=codeBasicSecVO.getReferBtmId();
+ String btmName=codeBasicSecVO.getReferBtmName();
+ String referConfig= codeBasicSecVO.getReferConfig();
+ CoderefersecSearchVO coderefersecSearchVO=new CoderefersecSearchVO();
+ if(StringUtils.isNotBlank(referConfig)){
+ coderefersecSearchVO = JSONObject.toJavaObject(JSONObject.parseObject(referConfig), CoderefersecSearchVO.class);
+ }
+ String buildSqlwhere="";
+ if(coderefersecSearchVO!=null){
+ Map<String,Object> condtionMap=new HashMap<>();
+ List<CodeSrchCondConfigVO> codeSrchCondConfigVOList=coderefersecSearchVO.getCodeSrchCondConfigVOS();
+ if(!CollectionUtils.isEmpty(codeSrchCondConfigVOList)) {
+ codeSrchCondConfigVOList.stream().forEach(codeSrchCondConfigVO -> {
+ condtionMap.put(codeSrchCondConfigVO.getFilterField()+codeSrchCondConfigVO.getFilterType(),codeSrchCondConfigVO.getFilterValue());
+ });
+ buildSqlwhere= UBCSSqlKeyword.buildSqlwhere(condtionMap);
+ }
+ }
+ //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referBtmId));
+ if (!listR.isSuccess() || listR.getData().size() == 0) {
+ throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+ }
+ String referTable = listR.getData().get(0).getTableName();
+ StringBuffer sb=new StringBuffer();
+ sb.append(" select * from ");
+ sb.append(referTable);
+ sb.append(" where 1=1 ");
+ if(StringUtils.isNotBlank(buildSqlwhere)){
+ sb.append( buildSqlwhere );
+ }
+ List<Map> ListMap= commonsMapper.selectBySql(sb.toString());
+ String valueField=coderefersecSearchVO.getValueField();
+ String textField=coderefersecSearchVO.getTextField();
+ final int[] num = {0};
+ if(!CollectionUtils.isEmpty(ListMap)){
+ ListMap.stream().forEach(map->{
+ num[0]++;
+ String id= map.getOrDefault("OID".toUpperCase(Locale.ROOT),"").toString();
+ String value= map.getOrDefault(valueField.toUpperCase(Locale.ROOT),"").toString();
+ String text=map.getOrDefault(textField.toUpperCase(Locale.ROOT),"").toString();
+ String description=map.getOrDefault("description".toUpperCase(Locale.ROOT),"").toString();
+ CodeSectionValueVO sectionValueVO=new CodeSectionValueVO(id, num[0]+"",value,text,"",description);
+ codeSectionValueVOList.add(sectionValueVO);
+ });
+ }
+ log.info(libId);
}else if(secType.equals("codelevelsec")) {//灞傜骇鐮佹
int level = codeBasicSecVO.getCodeLevelValue();
CodeClassifyVO levelCodeClassifyVO = new CodeClassifyVO();
@@ -972,7 +1057,7 @@
classifyVO.setClassCode(StringUtils.isBlank(codeClassifyDO.getId())?"":codeClassifyDO.getId());
classifyVO.setDescription(StringUtils.isBlank(codeClassifyDO.getDescription())?"":codeClassifyDO.getDescription());
classifyVO.setName(StringUtils.isBlank(codeClassifyDO.getName())?"":codeClassifyDO.getName());
- classifyVO.setPid(StringUtils.isBlank(codeClassifyDO.getParentcodeclassifyoid())?"":codeClassifyDO.getParentcodeclassifyoid());
+ classifyVO.setPid(StringUtils.isBlank(codeClassifyDO.getParentCodeClassifyOid())?"":codeClassifyDO.getParentCodeClassifyOid());
classifyVO.setFullPathName(StringUtils.isBlank(codeClassifyDO.getPath())?"":codeClassifyDO.getPath());
classifyVO.setCodeRule(resultCodeRuleVO);
classifyVOList.add(classifyVO);
@@ -1115,7 +1200,7 @@
* 鏍规嵁灞炴�ф槧灏勮浆鎹㈢紪鐮佹墍闇�瀛楁
*/
public void getConfigDatas(String systemId,String libray, ApplyDatasVO applyDatasVO,List<CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrVOList,DataObjectVO dataObjectVO) throws Throwable {
- List<ApplyDataVO> applyDataVOList=applyDatasVO.getObject();
+
LinkedHashMap<String,LinkedHashMap<String,String>> dataKeyValueMap=new LinkedHashMap<>();
//濡傛灉灏嗘暟鎹浆鎹㈡垚鎵�闇�瑕佺殑鏁版嵁瀵硅薄
Map<String, String> attrMapConfigMap=new HashMap<>();
@@ -1125,15 +1210,23 @@
Map<String, String> stringStringMap=attributeMapConfig.getSystem_attrmap();
log.info("闆嗘垚绯荤粺灞炴�ф槧灏勯厤缃枃浠舵潯鐩暟-銆�"+stringStringMap.size());
//stringStringMap.put("RLM","D:\\RLM.xml");
- LibraryDO libraryDO=gennerAttrMapUtil.getNewInstance().gennerAttrMapBySystem(systemId,stringStringMap);
- List<LibraryClsfDO> libraryClsfDOList=libraryDO.getClsf();
- Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2));
- log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�"+libray+"浠庨厤缃枃浠朵腑鎵惧搴斿睘鎬ф槧灏勯厤缃�");
- if(libPropMaps.containsKey(libray)){
- log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�"+libray+"鍖归厤鍒扮浉搴旂殑灞炴�ф槧灏勪俊鎭�");
- List<ClsfAttrMappingDO> clsfAttrMappingDOList=libPropMaps.get(libray);
- propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2));
- log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�"+libray+"鍖归厤鍒扮浉搴旂殑灞炴�ф槧灏勪俊鎭�,灞炴�ф槧灏勬潯鐩暟+"+clsfAttrMappingDOList.size());
+ if(!CollectionUtils.isEmpty(stringStringMap)) {
+ log.info("info锛氶渶瑕佽鍙栭厤缃枃浠�");
+ LibraryDO libraryDO = gennerAttrMapUtil.getNewInstance().gennerAttrMapBySystem(systemId, stringStringMap);
+ List<LibraryClsfDO> libraryClsfDOList = libraryDO.getClsf();
+ if(!CollectionUtils.isEmpty(libraryClsfDOList)) {
+ Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2));
+ log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�" + libray + "浠庨厤缃枃浠朵腑鎵惧搴斿睘鎬ф槧灏勯厤缃�");
+ String path=stringStringMap.get(systemId);
+ if (libPropMaps.containsKey(libray)) {
+ log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�" + libray + "鍖归厤鍒扮浉搴旂殑灞炴�ф槧灏勪俊鎭�");
+ List<ClsfAttrMappingDO> clsfAttrMappingDOList = libPropMaps.get(libray);
+ propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2));
+ log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�" + libray + "鍖归厤鍒扮浉搴旂殑灞炴�ф槧灏勪俊鎭�,灞炴�ф槧灏勬潯鐩暟+" + clsfAttrMappingDOList.size());
+ }else{
+ throw new Throwable("鏍规嵁绯荤粺鏍囪瘑銆�"+systemId+"銆戞壘鍒板搴旂殑閰嶇疆鏂囦欢:銆�"+path+"銆戯紝浣嗘湭鑾峰彇鍒板搴旂殑搴撱��"+libray+"銆戝睘鎬ф槧灏勪俊鎭厤缃�");
+ }
+ }
}
log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�"+libray+"浠庨厤缃枃浠朵腑鎵惧搴斿睘鎬ф槧灏勯厤缃� end ");
}catch (Throwable e){
@@ -1155,6 +1248,11 @@
dataObjectVO.setColName(rowNameList);//鏀惧叆灞炴��
attrMapConfigMap.putAll(propMaps);
LinkedList<RowDatas> rowDataList = new LinkedList<>();
+ List<ApplyDataVO> applyDataVOList=new ArrayList<>();
+
+ if(!CollectionUtils.isEmpty(applyDatasVO.getObject())){
+ applyDataVOList=applyDatasVO.getObject();
+ }
//Map<String, List<ProppertyVO>> dataPropMap = applyDataVOList.stream().collect(Collectors.toMap(ApplyDataVO::getId, ApplyDataVO::getProp, (key1, key2) -> key2));
final int[] rowIndex = {0};
applyDataVOList.stream().forEach(applyDataVO -> {
@@ -1290,5 +1388,23 @@
return resultStr;
}
-
+ /***
+ * 鏍¢獙鏄惁鍋氫簡閰嶇疆
+ * @param systemId,绯荤粺鏍囪瘑
+ * @param type:鎺ュ彛绫诲瀷
+ * @param operationType:鎺ュ彛鎿嶄綔绫诲瀷
+ * @return
+ */
+ private boolean checkIspass(String systemId,String type,String operationType){
+ if(!CODE_CHECKCONFIG) {
+ return true;
+ }
+ //鏍规嵁绫诲瀷鍘绘煡璇㈤渶瑕侀泦鎴愮殑鍒嗙被鎴栬�呮暟鎹�
+ LambdaQueryWrapper<DockingSystemConfig> queryWrapper = Wrappers.<DockingSystemConfig>lambdaQuery();
+ queryWrapper.eq(DockingSystemConfig::getUsedFlag, MdmDuckingConstant.SEND_FLAG_TRUE);
+ queryWrapper.eq(DockingSystemConfig::getSysBaseId,systemId);
+ queryWrapper.eq(DockingSystemConfig::getDataFlowType,type);
+ queryWrapper.eq(DockingSystemConfig::getPushType,operationType);
+ return dockingSystemConfigService.count(queryWrapper)>0?true:false;
+ }
}
--
Gitblit v1.9.3