You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

496 lines
32 KiB
Java

package com.weaver.seconddev.sxjg.util;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@Component
public class PersondataQueryUtil {
private final Logger log = LoggerFactory.getLogger(PersondataQueryUtil.class);
// public String queryNccloudPersondata(String body){
//
// NccApiUtil nccApiUtil = new NccApiUtil();
// JSONObject resJsonObject = new JSONObject();
// try{
// JSONObject r3 = JSONUtil.parseObj(body);
// nccApiUtil.init();
// String token = nccApiUtil.getToken();
// log.error("nccApiUtil-token:"+token);
//
// String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/persondata/query";
// String rs11 = nccApiUtil.doJsonPost(url,token,r3.toString());
// log.error("nccApiUtil-rs11:"+rs11);
//
// resJsonObject = JSONUtil.parseObj(rs11);
// if("1000000000".equals(resJsonObject.getStr("code"))) {
// JSONArray dataArrayOne = resJsonObject.getJSONArray("data");
// if(dataArrayOne!=null && dataArrayOne.size() > 0) {
// for(int i = 0; i<dataArrayOne.size();i++) {
// JSONObject jsonObjectone = dataArrayOne.getJSONObject(i);
// JSONArray dataArrayTwo = jsonObjectone.getJSONArray("data");
// if(dataArrayTwo!=null && dataArrayTwo.size() >0) {
// for(int j = 0; j<dataArrayTwo.size();j++) {
// JSONObject re3 = dataArrayTwo.getJSONObject(j);
// for(Map.Entry<String, Object> re4 : re3.entrySet()){
// String key = re4.getKey();
// JSONObject re5 = re3.getJSONObject(key);
// re5.put("isExamine",false);
// }
// }
// }
// }
// }
// nccApiUtil = new NccApiUtil();
// nccApiUtil.init();
// token = nccApiUtil.getToken();
// log.error("approveDetailVO-token:"+token);
// url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/psninfoedit/approveDetailVO";
// rs11 = nccApiUtil.doJsonPost(url,token,r3.toString());
//
// log.error("approveDetailVO-rs11:"+rs11);
//
// JSONObject resJsonObject2= JSONUtil.parseObj(rs11);
// if("1000000000".equals(resJsonObject2.getStr("code"))) {
// JSONObject dataObj2 = resJsonObject2.getJSONObject("data");
// if(dataObj2.containsKey("data")) {
// JSONObject dataObj21 = dataObj2.getJSONObject("data");
// //如果是基本信息查询
// if("bd_psndoc".equals(r3.getStr("tableCode"))) {
// JSONArray afterdata = null;
// if(dataObj21 != null && dataObj21.containsKey("afterData") && dataObj21.get("afterData") != null) {
// afterdata = dataObj21.getJSONArray("afterData");
// }
// if(afterdata != null && afterdata.size() > 0) {
// dataArrayOne = resJsonObject.getJSONArray("data");
// if(dataArrayOne!=null && dataArrayOne.size() > 0) {
// for(int i = 0; i<dataArrayOne.size();i++) {
// JSONObject jsonObjectone = dataArrayOne.getJSONObject(i);
// JSONArray dataArrayTwo = jsonObjectone.getJSONArray("data");
// if(dataArrayTwo!=null && dataArrayTwo.size() >0) {
// for(int j = 0; j<dataArrayTwo.size();j++) {
// JSONObject re3 = dataArrayTwo.getJSONObject(j);
// for(Map.Entry<String, Object> re4 : re3.entrySet()){
// String key = re4.getKey();
// JSONObject re5 = re3.getJSONObject(key);
// for(int x = 0;x < afterdata.size();x ++) {
// JSONObject afertObj = afterdata.getJSONObject(x);
// String columnValue = afertObj.getStr("columnValue");
// String columnKey = afertObj.getStr("columnKey");
// if(columnKey!=null && columnKey.length()>0 && columnKey.equals(re5.getStr("key"))) {
// re5.put("isExamine",true);
// }
// }
// }
// }
// }
// }
// }
// }
// }else {//子级信息查询
// if(dataObj21.containsKey("changeTypeMap")){
// JSONObject changeData= dataObj21.getJSONObject("changeTypeMap");
// List<String> shhs = new ArrayList<>();
// for(String key : changeData.keySet()) {
// shhs.add(key);
// }
// if(shhs!=null && shhs.size()>0) {
// if(dataArrayOne!=null && dataArrayOne.size() > 0) {
// for(int i = 0; i<dataArrayOne.size();i++) {
// JSONObject jsonObjectone = dataArrayOne.getJSONObject(i);
// String rowDataPk = jsonObjectone.getStr("rowDataPk");
// if(shhs.contains(rowDataPk)) {
// JSONArray dataArrayTwo = jsonObjectone.getJSONArray("data");
// if(dataArrayTwo!=null && dataArrayTwo.size() >0) {
// for(int j = 0; j<dataArrayTwo.size();j++) {
// JSONObject re3 = dataArrayTwo.getJSONObject(j);
// for(Map.Entry<String, Object> re4 : re3.entrySet()){
// String key = re4.getKey();
// JSONObject re5 = re3.getJSONObject(key);
// re5.put("isExamine",true);
// }
// }
// }
// }
// }
// }
// }
// }
// }
//
//
// if(dataObj21.containsKey("changeData")){
// JSONArray changeDataArray = dataObj21.getJSONArray("changeData");
// JSONArray newArrayData = new JSONArray();
// for(int i=0;i<changeDataArray.size();i++){
// JSONObject changeDataObject = changeDataArray.getJSONObject(i);
// if(changeDataObject.containsKey("pk_psndoc_sub")){
// String pk_psndoc_sub = changeDataObject.getStr("pk_psndoc_sub");
// if(StringUtils.isBlank(pk_psndoc_sub)){
//
// JSONArray newdataArray = new JSONArray();
// JSONObject dataJson = new JSONObject();
//
// for(Map.Entry<String, Object> re4 : changeDataObject.entrySet()){
// String changeDataKey = re4.getKey();
// String changeDataValue = changeDataObject.getStr(changeDataKey);
//
// if(changeDataValue.startsWith("{") && changeDataValue.endsWith("}")){
// JSONObject itemDataObject = JSONUtil.parseObj(changeDataValue);
//
// String name = itemDataObject.getStr("name");
// String pk = itemDataObject.getStr("pk");
//
// JSONObject addDataObject = new JSONObject();
// addDataObject.set("isExamine",true);
// addDataObject.set("label",name);
// addDataObject.set("value",pk);
// addDataObject.set("key",changeDataKey);
//
// JSONObject newDataObject = new JSONObject();
// newDataObject.set(changeDataKey,addDataObject);
// newdataArray.add(newDataObject);
//
// }else{
//
// if("lasteducation".equalsIgnoreCase(changeDataKey) && "hi_psndoc_edu".equals(r3.getStr("tableCode"))){
// JSONObject addDataObject = new JSONObject();
// addDataObject.set("isExamine",true);
// if("Y".equalsIgnoreCase(changeDataValue)){
// changeDataValue = "是";
// }else if("N".equalsIgnoreCase(changeDataValue)){
// changeDataValue = "否";
// }
// addDataObject.set("label",changeDataValue);
// addDataObject.set("value",changeDataValue);
// addDataObject.set("key",changeDataKey);
//
// JSONObject newDataObject = new JSONObject();
// newDataObject.set(changeDataKey,addDataObject);
// newdataArray.add(newDataObject);
// }else{
// JSONObject addDataObject = new JSONObject();
// addDataObject.set("isExamine",true);
// addDataObject.set("label",changeDataValue);
// addDataObject.set("value",changeDataValue);
// addDataObject.set("key",changeDataKey);
//
// JSONObject newDataObject = new JSONObject();
// newDataObject.set(changeDataKey,addDataObject);
// newdataArray.add(newDataObject);
// }
//
// }
// }
//
// dataJson.set("data",newdataArray);
//
// String uuid = UUID.randomUUID().toString();
// dataJson.set("rowDataPk",uuid);
// newArrayData.add(dataJson);
// }
// }
// }
// log.error("newArrayData:"+newArrayData.toString());
//
// if(newArrayData !=null && newArrayData.size()>0){
// dataArrayOne.addAll(newArrayData);
// }
//
// log.error("dataArrayOne:"+dataArrayOne.toString());
// }
//
//
// }
// }
// }
// }catch (Exception e){
// e.printStackTrace();
// log.error("queryNccloudPersondata-e:"+e);
// }
//
// return resJsonObject.toString();
// }
public String queryNccloudPersondata(String body){
NccApiUtil nccApiUtil = new NccApiUtil();
JSONObject resJsonObject = new JSONObject();
try{
JSONObject r3 = JSONUtil.parseObj(body);
nccApiUtil.init();
String token = nccApiUtil.getToken();
log.error("nccApiUtil-token:"+token);
String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/persondata/query";
String rs11 = nccApiUtil.doJsonPost(url,token,r3.toString());
log.error("nccApiUtil-rs11:"+rs11);
resJsonObject = JSONUtil.parseObj(rs11);
if(resJsonObject.containsKey("code")){
if("1000000000".equals(resJsonObject.getStr("code"))) {
JSONArray dataArrayOne = new JSONArray();
if(resJsonObject.containsKey("data")){
String data = resJsonObject.getStr("data");
log.error("nccApiUtil-rs11:"+data);
boolean isArray = JSONUtil.isJsonArray(data);
log.error("nccApiUtil-data:"+data);
if (isArray) {
dataArrayOne = resJsonObject.getJSONArray("data");
}
}
if(dataArrayOne!=null && dataArrayOne.size() > 0) {
for(int i = 0; i<dataArrayOne.size();i++) {
JSONObject jsonObjectone = dataArrayOne.getJSONObject(i);
JSONArray dataArrayTwo = new JSONArray();
if(jsonObjectone.containsKey("data")){
String data = jsonObjectone.getStr("data");
boolean isArray = JSONUtil.isJsonArray(data);
if (isArray) {
dataArrayTwo = jsonObjectone.getJSONArray("data");
}
if(dataArrayTwo!=null && dataArrayTwo.size() >0) {
for(int j = 0; j<dataArrayTwo.size();j++) {
JSONObject re3 = dataArrayTwo.getJSONObject(j);
for(Map.Entry<String, Object> re4 : re3.entrySet()){
String key = re4.getKey();
JSONObject re5 = re3.getJSONObject(key);
re5.put("isExamine",false);
}
}
}
}
}
}
nccApiUtil = new NccApiUtil();
nccApiUtil.init();
token = nccApiUtil.getToken();
log.error("approveDetailVO-token:"+token);
url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/psninfoedit/approveDetailVO";
rs11 = nccApiUtil.doJsonPost(url,token,r3.toString());
log.error("approveDetailVO-rs11:"+rs11);
JSONObject resJsonObject2 = JSONUtil.parseObj(rs11);
if(resJsonObject2.containsKey("code")){
if("1000000000".equals(resJsonObject2.getStr("code"))) {
if(resJsonObject2.containsKey("data")){
JSONObject dataObj2 = resJsonObject2.getJSONObject("data");
if(dataObj2.containsKey("data")) {
JSONObject dataObj21 = dataObj2.getJSONObject("data");
//如果是基本信息查询
if("bd_psndoc".equals(r3.getStr("tableCode"))) {
JSONArray afterdata = new JSONArray();
JSONArray changeDataArray = new JSONArray();
if(dataObj21.containsKey("changedata")){
String changedata = dataObj21.getStr("changedata");
boolean isArray = JSONUtil.isJsonArray(changedata);
log.error("nccApiUtil-changedata:"+changedata);
if (isArray) {
changeDataArray = dataObj21.getJSONArray("changedata");
for(int i = 0; i<changeDataArray.size();i++) {
JSONObject changeDataObject = changeDataArray.getJSONObject(i);
if(changeDataObject.containsKey("afterData")){
JSONArray afterDataArray = new JSONArray();
String afterData = dataObj21.getStr("afterData");
boolean isArray2 = JSONUtil.isJsonArray(afterData);
if(isArray2){
afterDataArray = changeDataObject.getJSONArray("afterData");
}
for(int j=0;j<afterDataArray.size();j++){
JSONObject afterDataObject = afterDataArray.getJSONObject(j);
afterdata.add(afterDataObject);
}
}
}
}
}
if(afterdata != null && afterdata.size() > 0) {
if(dataArrayOne!=null && dataArrayOne.size() > 0) {
for(int i = 0; i<dataArrayOne.size();i++) {
JSONObject jsonObjectOne = dataArrayOne.getJSONObject(i);
JSONArray dataArrayTwo = new JSONArray();
String data = jsonObjectOne.getStr("data");
boolean isArray = JSONUtil.isJsonArray(data);
if(isArray){
dataArrayTwo = jsonObjectOne.getJSONArray("data");
}
if(dataArrayTwo!=null && dataArrayTwo.size() >0) {
for(int j = 0; j<dataArrayTwo.size();j++) {
JSONObject re3 = dataArrayTwo.getJSONObject(j);
for(Map.Entry<String, Object> re4 : re3.entrySet()){
String key = re4.getKey();
JSONObject re5 = re3.getJSONObject(key);
for(int x = 0;x < afterdata.size();x ++) {
JSONObject afertObj = afterdata.getJSONObject(x);
String columnValue = afertObj.getStr("columnValue");
String columnKey = afertObj.getStr("columnKey");
if(columnKey!=null && columnKey.length()>0 && columnKey.equals(re5.getStr("key"))) {
re5.put("isExamine",true);
}
}
}
}
}
}
}
}
}else {//子级信息查询
if(dataObj21.containsKey("changeTypeMap")){
JSONObject changeData= dataObj21.getJSONObject("changeTypeMap");
List<String> shhs = new ArrayList<>();
for(String key : changeData.keySet()) {
shhs.add(key);
}
if(shhs!=null && shhs.size()>0) {
if(dataArrayOne!=null && dataArrayOne.size() > 0) {
for(int i = 0; i<dataArrayOne.size();i++) {
JSONObject jsonObjectOne = dataArrayOne.getJSONObject(i);
String rowDataPk = jsonObjectOne.getStr("rowDataPk");
if(shhs.contains(rowDataPk)) {
String data = jsonObjectOne.getStr("data");
JSONArray dataArrayTwo = new JSONArray();
boolean isArray = JSONUtil.isJsonArray(data);
if(isArray){
dataArrayTwo = jsonObjectOne.getJSONArray("data");
}
if(dataArrayTwo!=null && dataArrayTwo.size() >0) {
for(int j = 0; j<dataArrayTwo.size();j++) {
JSONObject re3 = dataArrayTwo.getJSONObject(j);
for(Map.Entry<String, Object> re4 : re3.entrySet()){
String key = re4.getKey();
JSONObject re5 = re3.getJSONObject(key);
re5.put("isExamine",true);
}
}
}
}
}
}
}
}
}
if(!"bd_psndoc".equals(r3.getStr("tableCode"))){
if(dataObj21.containsKey("changeData")){
JSONArray changeDataArray = new JSONArray();
String changeData = dataObj21.getStr("changeData");
boolean isArray = JSONUtil.isJsonArray(changeData);
if(isArray){
changeDataArray = dataObj21.getJSONArray("changeData");
}
JSONArray newArrayData = new JSONArray();
for(int i=0;i<changeDataArray.size();i++){
JSONObject changeDataObject = changeDataArray.getJSONObject(i);
if(changeDataObject.containsKey("pk_psndoc_sub")){
String pk_psndoc_sub = changeDataObject.getStr("pk_psndoc_sub");
if(StringUtils.isBlank(pk_psndoc_sub)){
JSONArray newdataArray = new JSONArray();
JSONObject dataJson = new JSONObject();
for(Map.Entry<String, Object> re4 : changeDataObject.entrySet()){
String changeDataKey = re4.getKey();
String changeDataValue = changeDataObject.getStr(changeDataKey);
if(changeDataValue.startsWith("{") && changeDataValue.endsWith("}")){
JSONObject itemDataObject = JSONUtil.parseObj(changeDataValue);
String name = itemDataObject.getStr("name");
String pk = itemDataObject.getStr("pk");
JSONObject addDataObject = new JSONObject();
addDataObject.set("isExamine",true);
addDataObject.set("label",name);
addDataObject.set("value",pk);
addDataObject.set("key",changeDataKey);
JSONObject newDataObject = new JSONObject();
newDataObject.set(changeDataKey,addDataObject);
newdataArray.add(newDataObject);
}else{
if("lasteducation".equalsIgnoreCase(changeDataKey) && "hi_psndoc_edu".equals(r3.getStr("tableCode"))){
JSONObject addDataObject = new JSONObject();
addDataObject.set("isExamine",true);
if("Y".equalsIgnoreCase(changeDataValue)){
changeDataValue = "是";
}else if("N".equalsIgnoreCase(changeDataValue)){
changeDataValue = "否";
}
addDataObject.set("label",changeDataValue);
addDataObject.set("value",changeDataValue);
addDataObject.set("key",changeDataKey);
JSONObject newDataObject = new JSONObject();
newDataObject.set(changeDataKey,addDataObject);
newdataArray.add(newDataObject);
}else{
JSONObject addDataObject = new JSONObject();
addDataObject.set("isExamine",true);
addDataObject.set("label",changeDataValue);
addDataObject.set("value",changeDataValue);
addDataObject.set("key",changeDataKey);
JSONObject newDataObject = new JSONObject();
newDataObject.set(changeDataKey,addDataObject);
newdataArray.add(newDataObject);
}
}
}
dataJson.set("data",newdataArray);
String uuid = UUID.randomUUID().toString();
dataJson.set("rowDataPk",uuid);
newArrayData.add(dataJson);
}
}
}
log.error("newArrayData:"+newArrayData.toString());
if(newArrayData !=null && newArrayData.size()>0){
dataArrayOne.addAll(newArrayData);
}
log.error("dataArrayOne:"+dataArrayOne.toString());
}
}
}
}
}
}
resJsonObject.set("data",dataArrayOne);
}
}
}catch (Exception e){
e.printStackTrace();
log.error("queryNccloudPersondata-e:"+e);
}
return resJsonObject.toString();
}
}