From 81edec7c3bdef059a44e7c5e7b81d35ea09a72ed Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期三, 13 九月 2023 08:52:39 +0800
Subject: [PATCH] 人员组织结构申请接口开发

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java |  118 ++++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 76 insertions(+), 42 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 58a119c..8381d07 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
@@ -61,10 +61,10 @@
 import javax.annotation.Resource;
 import java.util.*;
 import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.atomic.AtomicBoolean;
 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;
 
 /***
@@ -359,9 +359,9 @@
 		boolean isPersonApplyGroupCode= personAndDeptConfig.isPersonApplyGroupCode();
 		String systemCode=personData.getSystemCode();
 		List<ResultMdMapping> resultMdMappingList=new ArrayList<>();
-		boolean success=true;
 		String message="";
 		if(isUsedFlag){
+			AtomicBoolean success= new AtomicBoolean(true);
 			List<PersonMasterData> masterDataList=new ArrayList<>();
 			List<String> fields= VciBaseUtil.str2List(personAndDeptConfig.getPersonFields());
 			try {
@@ -371,7 +371,7 @@
 				masterDataList = personData.getMasterData();
 				String personLibrary = personAndDeptConfig.getPersonLibrary();
 				if (StringUtils.isBlank(personLibrary)) {
-					success=false;
+					success.set(false);
 					log.info("闆嗘垚閰嶇疆缂哄皯浜哄憳搴撹妭鐐逛俊鎭�,personLibrary->" + personLibrary);
 					throw  new Throwable("闆嗘垚閰嶇疆缂哄皯浜哄憳搴撹妭鐐逛俊鎭�,personLibrary->" + personLibrary);
 				}
@@ -383,12 +383,12 @@
 				log.info("end锛氬垎绫绘煡璇㈠畬姣�");
 				//鑾峰彇鍒嗙被妯℃澘淇℃伅
 				if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){
-					success=false;
+					success.set(false);
 					throw  new  Throwable ("鏍规嵁閰嶇疆鍒嗙被鐨勫垎绫荤紪鍙凤紝鏈幏鍙栧埌鍒嗙被淇℃伅");
 				}
 				CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid());
 				if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){
-					success=false;
+					success.set(false);
 					throw  new  Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旀ā鏉�");
 				}
 
@@ -440,10 +440,11 @@
 						deleteDataVOList.add(object);
 					}else{
 						String worker_category=personMasterData.getWorker_category();
-						codeList.add(personMasterData.getLm_code());
+
 						object.setOperate("create");
 						applyDataVOList.add(object);
 					}
+					codeList.add(personMasterData.getLm_code());
 				});
 
 				R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
@@ -532,10 +533,31 @@
 							orderDTO.setCodeRuleOid(ruleVO.getOid());
 							orderDTO.setSecDTOList(codeOrderSecDTOList);//瀛樺偍缂栫爜
 							orderDTO.setData(rowData.getFiledValue());
-							engineService.addSaveCode(orderDTO);
+							String code=engineService.addSaveCode(orderDTO);
+							if(StringUtils.isNotBlank(code)) {
+								StringBuffer sqlsb = new StringBuffer();
+								sqlsb.append(" select * from ");
+								sqlsb.append(tableName);
+								sqlsb.append(" where 1=1 ");
+								sqlsb.append(" and lastr=1 and lastv=1");
+								sqlsb.append(" and id in (");
+								sqlsb.append(VciBaseUtil.toInSql(code));
+								sqlsb.append(")");
+								List<Map<String, String>> newDataMapList = commonsMapper.queryByOnlySqlForMap(sqlsb.toString());
+								if (!CollectionUtils.isEmpty(newDataMapList)) {
+									String oid = StringUtils.isBlank(newDataMapList.get(0).get("OID")) ? "" : newDataMapList.get(0).get("OID");
+									List<String> oidList = new ArrayList<>();
+									oidList.add(oid);
+									//濡傛灉鏈夌敵璇峰氨鍘昏皟鐢ㄧ敵璇烽泦鍥㈢爜
+									if (isPersonApplyGroupCode) {
+										mdmIOService.sendApplyGroupcode(oidList, templateVO.getBtmTypeId(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue());
+										success.set(true);
+										mesg = "鏁版嵁淇濆瓨鎴愬姛锛岀瓑寰呯敵璇烽泦鍥㈢爜";
+									}
+								}
+							}
 						} catch (Exception e) {
 							mesg=e.getMessage();
-							e.getMessage();
 							e.printStackTrace();
 						}finally {
 							XMLResultDataObjectDetailDO x=new XMLResultDataObjectDetailDO();
@@ -547,7 +569,7 @@
 						}
 					});
 					resultDataObjectDetailDOs.addAll(xDOs);
-					boolean finalSuccess1 = success;
+					boolean finalSuccess1 = success.get();
 					String finalMessage1 = message;
 					resultDataObjectDetailDOs.stream().forEach(resultDataObjectDetailDO->{
 						ResultMdMapping resultMdMapping=new ResultMdMapping();
@@ -560,17 +582,12 @@
 						resultMdMappingList.add(resultMdMapping);
 					});
 					log.info("end锛氱敵璇疯幏鍙栧畬姣�");
-					//濡傛灉鏈夌敵璇峰氨鍘昏皟鐢ㄧ敵璇烽泦鍥㈢爜
-					if(isPersonApplyGroupCode){
-						List<String> oidList=new ArrayList<>();
-						mdmIOService.sendApplyGroupcode(oidList,templateVO.getBtmTypeId(),sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue());
-					}
 				}
 			}catch (Throwable e){
-				success=false;
+				success.set(false);
 				message="浜哄憳鏁版嵁鎺ュ彈澶辫触:"+e.getMessage();
 				//缁勭粐杩斿洖缁撴灉
-				boolean finalSuccess = success;
+				boolean finalSuccess = success.get();
 				String finalMessage = message;
 				masterDataList.stream().forEach(masterData -> {
 					ResultMdMapping resultMdMapping=new ResultMdMapping();
@@ -583,7 +600,7 @@
 				});
 			}finally {
 				resultOrgData.setMessage(message);
-				resultOrgData.setSuccess(success);
+				resultOrgData.setSuccess(success.get());
 				resultOrgData.setMdMappings(resultMdMappingList);
 				Object object = JSONObject.toJSON(resultOrgData);
 			}
@@ -591,7 +608,7 @@
 			String data = JSONObject.toJSONString(personData);
 			try {
 				//璁板綍鏃ュ織
-				this.saveLogs(systemCode, systemCode, data, resultStr, success, msg, "syncDataForPerson");
+				this.saveLogs(systemCode, systemCode, data, resultStr, success.get(), msg, "syncDataForPerson");
 			}catch (Throwable e){
 				e.printStackTrace();
 			}
@@ -609,10 +626,9 @@
 	public ResultOrgData syncDataForOrg(OrgData orgData) {
 		boolean isUsedFlag= personAndDeptConfig.isUsedFlag();
 		ResultOrgData resultOrgData=new ResultOrgData();
-
 		boolean isPersonApplyGroupCode= personAndDeptConfig.isPersonApplyGroupCode();
 		List<ResultMdMapping> resultMdMappingList=new ArrayList<>();
-		boolean success=true;
+		AtomicBoolean success= new AtomicBoolean(true);
 		String message="";
 		String systemCode="";
 		if(isUsedFlag){
@@ -626,7 +642,7 @@
 				orgMasterDataList = orgData.getMasterData();
 				String personLibrary = personAndDeptConfig.getPersonLibrary();
 				if (StringUtils.isBlank(personLibrary)) {
-					success=false;
+					success.set(false);
 					log.info("闆嗘垚閰嶇疆缂哄皯浜哄憳搴撹妭鐐逛俊鎭�,personLibrary->" + personLibrary);
 					throw  new Throwable("闆嗘垚閰嶇疆缂哄皯浜哄憳搴撹妭鐐逛俊鎭�,personLibrary->" + personLibrary);
 				}
@@ -638,12 +654,12 @@
 				log.info("end锛氬垎绫绘煡璇㈠畬姣�");
 				//鑾峰彇鍒嗙被妯℃澘淇℃伅
 				if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){
-					success=false;
+					success.set(false);
 					throw  new  Throwable ("鏍规嵁閰嶇疆鍒嗙被鐨勫垎绫荤紪鍙凤紝鏈幏鍙栧埌鍒嗙被淇℃伅");
 				}
 				CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid());
 				if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){
-					success=false;
+					success.set(false);
 					throw  new  Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旀ā鏉�");
 				}
 
@@ -653,14 +669,14 @@
 				List<String> codeList=new ArrayList<>();
 				List<ApplyDataVO> applyDataVOList=new ArrayList<>();
 				List<ApplyDataVO> deleteDataVOList=new ArrayList<>();
-				orgMasterDataList.stream().forEach(personMasterData -> {
+				orgMasterDataList.stream().forEach(orgMasterData -> {
 					ApplyDataVO object=new ApplyDataVO();
-					object.setCode(personMasterData.getMdm_code());//缂栫爜
-					object.setCreator(personMasterData.getCreator());//鍒涘缓鑰�
-					object.setEditor(personMasterData.getModifier());//淇敼鑰�
-					object.setId(personMasterData.getPk_mdm());//涓婚敭
+					object.setCode(orgMasterData.getMdm_code());//缂栫爜
+					object.setCreator(orgMasterData.getCreator());//鍒涘缓鑰�
+					object.setEditor(orgMasterData.getModifier());//淇敼鑰�
+					object.setId(orgMasterData.getPk_mdm());//涓婚敭
 					object.setStatus(CodeDefaultLC.RELEASED.getValue());//鐘舵�佸垯闇�瑕佸垽鏂�
-					Map<String,String> dataMap= VciBaseUtil.objectToMapString(personMasterData);
+					Map<String,String> dataMap= VciBaseUtil.objectToMapString(orgMasterData);
 					List<ProppertyVO> proppertyVOList=new ArrayList<>();
 					/***
 					 * 鏍规嵁閰嶇疆鏂囦欢鑾峰彇鏋氫妇鍊�
@@ -686,14 +702,15 @@
 					});
 
 					object.setProp(proppertyVOList);
-					if(personMasterData.getDr()==1){
+					if(orgMasterData.getDr()==1){
 						object.setOperate("delete");//鎿嶄綔绫诲瀷
 						deleteDataVOList.add(object);
 					}else{
-						codeList.add(personMasterData.getMdm_code());
+
 						object.setOperate("create");
 						applyDataVOList.add(object);
 					}
+					codeList.add(orgMasterData.getMdm_code());
 				});
 
 				R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
@@ -782,7 +799,29 @@
 							orderDTO.setCodeRuleOid(ruleVO.getOid());
 							orderDTO.setSecDTOList(codeOrderSecDTOList);//瀛樺偍缂栫爜
 							orderDTO.setData(rowData.getFiledValue());
-							engineService.addSaveCode(orderDTO);
+							String code=engineService.addSaveCode(orderDTO);
+							if(StringUtils.isNotBlank(code)) {
+								StringBuffer sqlsb = new StringBuffer();
+								sqlsb.append(" select * from ");
+								sqlsb.append(tableName);
+								sqlsb.append(" where 1=1 ");
+								sqlsb.append(" and lastr=1 and lastv=1");
+								sqlsb.append(" and id in (");
+								sqlsb.append(VciBaseUtil.toInSql(code));
+								sqlsb.append(")");
+								List<Map<String, String>> newDataMapList = commonsMapper.queryByOnlySqlForMap(sqlsb.toString());
+								if (!CollectionUtils.isEmpty(newDataMapList)) {
+									String oid = StringUtils.isBlank(newDataMapList.get(0).get("OID")) ? "" : newDataMapList.get(0).get("OID");
+									List<String> oidList = new ArrayList<>();
+									oidList.add(oid);
+									//濡傛灉鏈夌敵璇峰氨鍘昏皟鐢ㄧ敵璇烽泦鍥㈢爜
+									if (isPersonApplyGroupCode) {
+										mdmIOService.sendApplyGroupcode(oidList, templateVO.getBtmTypeId(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue());
+										success.set(true);
+										mesg = "鏁版嵁淇濆瓨鎴愬姛锛岀瓑寰呯敵璇烽泦鍥㈢爜";
+									}
+								}
+							}
 						} catch (Exception e) {
 							mesg=e.getMessage();
 							e.getMessage();
@@ -797,7 +836,7 @@
 						}
 					});
 					resultDataObjectDetailDOs.addAll(xDOs);
-					boolean finalSuccess1 = success;
+					boolean finalSuccess1 = success.get();
 					String finalMessage1 = message;
 					resultDataObjectDetailDOs.stream().forEach(resultDataObjectDetailDO->{
 						ResultMdMapping resultMdMapping=new ResultMdMapping();
@@ -810,17 +849,12 @@
 						resultMdMappingList.add(resultMdMapping);
 					});
 					log.info("end锛氱敵璇疯幏鍙栧畬姣�");
-					//濡傛灉鏈夌敵璇峰氨鍘昏皟鐢ㄧ敵璇烽泦鍥㈢爜
-					if(isPersonApplyGroupCode){
-						List<String> oidList=new ArrayList<>();
-						mdmIOService.sendApplyGroupcode(oidList,templateVO.getBtmTypeId(),sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue());
-					}
 				}
 			}catch (Throwable e){
-				success=false;
+				success.set(false);
 				message="浜哄憳鏁版嵁鎺ュ彈澶辫触:"+e.getMessage();
 				//缁勭粐杩斿洖缁撴灉
-				boolean finalSuccess = success;
+				boolean finalSuccess = success.get();
 				String finalMessage = message;
 				orgMasterDataList.stream().forEach(masterData -> {
 					ResultMdMapping resultMdMapping=new ResultMdMapping();
@@ -833,7 +867,7 @@
 				});
 			}finally {
 				resultOrgData.setMessage(message);
-				resultOrgData.setSuccess(success);
+				resultOrgData.setSuccess(success.get());
 				resultOrgData.setMdMappings(resultMdMappingList);
 				Object object = JSONObject.toJSON(resultOrgData);
 			}
@@ -841,7 +875,7 @@
 			String data = JSONObject.toJSONString(orgData);
 			try {
 				//璁板綍鏃ュ織
-				this.saveLogs(systemCode, systemCode, data, resultStr, success, msg, "syncDataForOrg");
+				this.saveLogs(systemCode, systemCode, data, resultStr, success.get(), msg, "syncDataForOrg");
 			}catch (Throwable e){
 				e.printStackTrace();
 			}

--
Gitblit v1.9.3