From e37dcca9781abfb92b01ebc5166c5e2e07c53c23 Mon Sep 17 00:00:00 2001 From: shilei <798989044@qq.com> Date: Thu, 16 May 2024 14:02:49 +0800 Subject: [PATCH] =?UTF-8?q?#weaver-sxjg-04#=20=E9=99=84=E4=BB=B6=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EmployeeSelfServiceController.java | 191 +++++-- .../sxjg/util/PersondataQueryUtil.java | 505 +++++++++++++++--- 2 files changed, 585 insertions(+), 111 deletions(-) diff --git a/src/main/java/com/weaver/seconddev/sxjg/controller/EmployeeSelfServiceController.java b/src/main/java/com/weaver/seconddev/sxjg/controller/EmployeeSelfServiceController.java index e14227f..8cbde95 100644 --- a/src/main/java/com/weaver/seconddev/sxjg/controller/EmployeeSelfServiceController.java +++ b/src/main/java/com/weaver/seconddev/sxjg/controller/EmployeeSelfServiceController.java @@ -2,16 +2,16 @@ package com.weaver.seconddev.sxjg.controller; /** * 员工自助接口 */ +import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.weaver.common.authority.annotation.WeaPermission; import com.weaver.seconddev.sxjg.util.NccApiUtil; import com.weaver.seconddev.sxjg.util.PersondataQueryUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; @@ -20,14 +20,13 @@ import java.util.*; @RestController @RequestMapping("/papi/secondev/nccloud/api/hrtrn/openAPI") -@Slf4j public class EmployeeSelfServiceController { + private static final Logger log = LoggerFactory.getLogger(EmployeeSelfServiceController.class); @Autowired private PersondataQueryUtil persondataQueryUtil; - /** * use:查询员工个人信息 */ @@ -43,6 +42,7 @@ public class EmployeeSelfServiceController { // JSONObject resJsonObject = JSONObject.parseObject(rs11); // if("1000000000".equals(resJsonObject.getString("code"))) { // JSONArray dataArrayOne = resJsonObject.getJSONArray("data"); +// //先给query接口加字段isExamine,默认false,不审核 // if(dataArrayOne!=null && dataArrayOne.size() > 0) { // for(int i = 0; i0) { +// for(int i = 0;i0) { +// for(int i1 = 0;i1 < afterdata1.size();i1++) { +// JSONObject jsonObjecti1 = afterdata1.getJSONObject(i1); +// afterdata.add(jsonObjecti1); +// } +// } +// } // } // if(afterdata != null && afterdata.size() > 0) { // dataArrayOne = resJsonObject.getJSONArray("data"); @@ -91,8 +101,12 @@ public class EmployeeSelfServiceController { // JSONObject afertObj = afterdata.getJSONObject(x); // String columnValue = afertObj.getString("columnValue"); // String columnKey = afertObj.getString("columnKey"); +// String columnLabel = afertObj.getString("columnLabel"); // if(columnKey!=null && columnKey.length()>0 && columnKey.equals(re5.getString("key"))) { -// re5.put("isExamine",true); +// //将待审核的内容覆盖的原值,前端展示 +// re5.put("isExamine",true);//isExamine,true为待审核状态 +// re5.put("label",columnLabel); +// re5.put("value",columnValue); // } // } // } @@ -134,6 +148,7 @@ public class EmployeeSelfServiceController { // } // } // } +// return resJsonObject; String resJsonStr = persondataQueryUtil.queryNccloudPersondata(body); @@ -141,14 +156,50 @@ public class EmployeeSelfServiceController { } + @WeaPermission(publicPermission = true) + @PostMapping("/persondata/query1") + public JSONObject persondataQuery1( + @RequestBody String body + ) throws Exception { + JSONObject r3 = JSONObject.parseObject(body); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/persondata/query"; + String rs11 = nccApiUtil.doJsonPost(url,token,r3.toJSONString()); + JSONObject resJsonObject = JSONObject.parseObject(rs11); + return resJsonObject; + } + + @WeaPermission(publicPermission = true) @PostMapping("/persondata/query2") - public String persondataQuery2(@RequestBody String body) throws Exception { + public JSONObject persondataQuery2(@RequestBody String body) throws Exception { + JSONObject r3 = JSONObject.parseObject(body); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"/nccloud/api/hrtrn/openAPI/psninfoedit/approvelist"; + String rs11 = nccApiUtil.doJsonPost(url,token,r3.toJSONString()); + JSONObject resJsonObject = JSONObject.parseObject(rs11); + return resJsonObject; + } - String resJsonStr = persondataQueryUtil.queryNccloudPersondata(body); - return resJsonStr; + + @WeaPermission(publicPermission = true) + @PostMapping("/persondata/query3") + public JSONObject persondataQuery3(@RequestBody String body) throws Exception { + JSONObject r3 = JSONObject.parseObject(body); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"/nccloud/api/hrtrn/openAPI/psninfoedit/approvelist"; + String rs11 = nccApiUtil.doJsonPost(url,token,r3.toJSONString()); + JSONObject resJsonObject = JSONObject.parseObject(rs11); + return resJsonObject; } + /** * use:个人信息授权项查询接口 */ @@ -281,9 +332,7 @@ public class EmployeeSelfServiceController { */ @WeaPermission(publicPermission = true) @PostMapping("/attachment/query") - public JSONObject attachmentQuery( - @RequestBody String body - ) throws Exception { + public JSONObject attachmentQuery(@RequestBody String body) throws Exception { JSONObject requestbody = JSONObject.parseObject(body); String pk1 = requestbody.getString("pk"); JSONObject inter2 = new JSONObject(); @@ -293,32 +342,51 @@ public class EmployeeSelfServiceController { String token = nccApiUtil.getToken(); String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/attachment/query"; String rs11 = nccApiUtil.doJsonPost(url,token,requestbody.toJSONString()); + log.error("attachmentQuery-rs11:"+rs11); try { JSONObject resJsonObject = JSONObject.parseObject(rs11); String code = resJsonObject.getString("code"); if("1000000000".equals(code)) { + JSONObject dataObject = new JSONObject(); + if(resJsonObject.containsKey("data")){ + dataObject = resJsonObject.getJSONObject("data"); + if(dataObject.keySet()!=null && dataObject.keySet().size()>0) { + for(String key1 : dataObject.keySet()) { + JSONArray keysz1 = dataObject.getJSONArray(key1); + for(int i = 0; i0) { - for(String key1 : dataObject.keySet()) { - JSONArray keysz1 = dataObject.getJSONArray(key1); - for(int i = 0; i0) { for(int i = 0; i < data2.size(); i++) { JSONObject obj2 = data2.getJSONObject(i); @@ -326,7 +394,10 @@ public class EmployeeSelfServiceController { String pk_annex_approve = obj2.getString("pk_annex_approve"); String file_name = obj2.getString("file_name"); String checkstatus = obj2.getString("checkstatus"); - String type = obj2.getString("type"); + String type = ""; + if(obj2.containsKey("type")) { + type = obj2.getString("type"); + } String file_state = obj2.getString("file_state"); //仅checkstatus==0待审核时,才展示 if("0".equals(checkstatus)) { @@ -336,13 +407,41 @@ public class EmployeeSelfServiceController { y2.put("path",""); y2.put("file_state",file_state); y2.put("isExamine",true); - if(dataObject.containsKey(type)) { - JSONArray b1 = dataObject.getJSONArray(type); - b1.add(y2); - }else { - JSONArray b2 = new JSONArray(); - b2.add(y2); - dataObject.put(type,b2); + if("0".equals(file_state)) {//新增 + if(dataObject.containsKey(type)) { + String data = resJsonObject2.getString(type); + log.error("data2:"+data); + boolean isArray = JSONUtil.isJsonArray(data); + log.error("isArray2:"+isArray); + if (isArray) { + JSONArray b1 = dataObject.getJSONArray(type); + b1.add(y2); + } + }else { + JSONArray b2 = new JSONArray(); + b2.add(y2); + dataObject.put(type,b2); + } + }else {//删除 + JSONArray b1 = new JSONArray(); + if(dataObject.containsKey(type)){ + String data = resJsonObject2.getString(type); + log.error("data3:"+data); + boolean isArray = JSONUtil.isJsonArray(data); + log.error("isArray3:"+isArray); + if (isArray) { + b1 = dataObject.getJSONArray(type); + for(int u = 0;u 0) { +// for(int i = 0; i0) { +// for(int j = 0; j 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; i0) { +// for(int j = 0; j 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 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; i0) { +// for(int j = 0; j 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 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(); @@ -34,101 +240,248 @@ public class PersondataQueryUtil { 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; i0) { - for(int j = 0; j re4 : re3.entrySet()){ - String key = re4.getKey(); - JSONObject re5 = re3.getJSONObject(key); - re5.put("isExamine",false); + 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; i0) { + for(int j = 0; j 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; i0) { - for(int j = 0; j 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); + + 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 0) { + if(dataArrayOne!=null && dataArrayOne.size() > 0) { + for(int i = 0; i0) { + for(int j = 0; j 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 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; i0) { + for(int j = 0; j re4 : re3.entrySet()){ + String key = re4.getKey(); + JSONObject re5 = re3.getJSONObject(key); + re5.put("isExamine",true); + } + } + } } } } } } } - } - } - }else {//子级信息查询 - if(dataObj21.containsKey("changeTypeMap")){ - JSONObject changeData= dataObj21.getJSONObject("changeTypeMap"); - List 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; i0) { - for(int j = 0; j 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 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){