diff --git a/src/main/java/com/weaver/seconddev/sxjg/config/EbDbDataSourceConfig.java b/src/main/java/com/weaver/seconddev/sxjg/config/EbDbDataSourceConfig.java new file mode 100644 index 0000000..22fd272 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/config/EbDbDataSourceConfig.java @@ -0,0 +1,69 @@ +package com.weaver.seconddev.sxjg.config; + +import com.zaxxer.hikari.HikariDataSource; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; + +/** + * 数据库连接池,单例,二开服务(以后所有seconddev都放在这里) + * @author liuhao + */ +@Configuration +@Component +public class EbDbDataSourceConfig { + private static final Logger log = LoggerFactory.getLogger(EbDbDataSourceConfig.class); + + private static String url; + + private static String driverClassName; + + private static String username; + + private static String password; + private volatile static HikariDataSource dataSource; + + public static DataSource dbDataSource() { + if (dataSource ==null){ + synchronized (DataSource.class){ + if (dataSource == null){ + dataSource = new HikariDataSource(); + dataSource.setDriverClassName(driverClassName); + dataSource.setJdbcUrl(url); + dataSource.setUsername(username); + dataSource.setPassword(password); + // 连接池参数 + dataSource.setMaximumPoolSize(20); + dataSource.setPoolName("MyHikariCP2"); + dataSource.setConnectionTimeout(30000); + return dataSource; + } + } + } + return dataSource; + } + + @Value("${spring.datasource.urlebdesign}") + public void setUrl(String url) { + EbDbDataSourceConfig.url = url; + } + + @Value("${spring.datasource.driver-class-name}") + public void setDriverClassName(String driverClassName) { + EbDbDataSourceConfig.driverClassName = driverClassName; + } + + @Value("${spring.datasource.username}") + public void setUsername(String username) { + EbDbDataSourceConfig.username = username; + } + + @Value("${spring.datasource.password}") + public void setPassword(String password) { + EbDbDataSourceConfig.password = password; + } +} diff --git a/src/main/java/com/weaver/seconddev/sxjg/config/EbDbDataSourceConfigResp.java b/src/main/java/com/weaver/seconddev/sxjg/config/EbDbDataSourceConfigResp.java new file mode 100644 index 0000000..6caa9ef --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/config/EbDbDataSourceConfigResp.java @@ -0,0 +1,69 @@ +package com.weaver.seconddev.sxjg.config; + +import com.zaxxer.hikari.HikariDataSource; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; + +/** + * 数据库连接池,单例,二开服务(以后所有seconddev都放在这里) + * @author liuhao + */ +@Configuration +@Component +public class EbDbDataSourceConfigResp { + private static final Logger log = LoggerFactory.getLogger(EbDbDataSourceConfigResp.class); + + private static String url; + + private static String driverClassName; + + private static String username; + + private static String password; + private volatile static HikariDataSource dataSource; + + public static DataSource dbDataSource() { + if (dataSource ==null){ + synchronized (DataSource.class){ + if (dataSource == null){ + dataSource = new HikariDataSource(); + dataSource.setDriverClassName(driverClassName); + dataSource.setJdbcUrl(url); + dataSource.setUsername(username); + dataSource.setPassword(password); + // 连接池参数 + dataSource.setMaximumPoolSize(20); + dataSource.setPoolName("MyHikariCP12"); + dataSource.setConnectionTimeout(30000); + return dataSource; + } + } + } + return dataSource; + } + + @Value("${spring.datasource.urlebresp}") + public void setUrl(String url) { + EbDbDataSourceConfigResp.url = url; + } + + @Value("${spring.datasource.driver-class-name}") + public void setDriverClassName(String driverClassName) { + EbDbDataSourceConfigResp.driverClassName = driverClassName; + } + + @Value("${spring.datasource.username}") + public void setUsername(String username) { + EbDbDataSourceConfigResp.username = username; + } + + @Value("${spring.datasource.password}") + public void setPassword(String password) { + EbDbDataSourceConfigResp.password = password; + } +} diff --git a/src/main/java/com/weaver/seconddev/sxjg/controller/CheckPositionController.java b/src/main/java/com/weaver/seconddev/sxjg/controller/CheckPositionController.java new file mode 100644 index 0000000..edae1ee --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/controller/CheckPositionController.java @@ -0,0 +1,40 @@ +package com.weaver.seconddev.sxjg.controller; + +import com.weaver.common.authority.annotation.WeaPermission; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.seconddev.sxjg.service.JoinPositionRule; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.Map; + +@RestController +@RequestMapping("/papi/secondev/sxjg") +public class CheckPositionController { + + @Autowired + private JoinPositionRule joinPositionRule; + + /** + *一个单位只允许投三个职位; + * --- 分校招和社招不?我记得陕建 社招和校招,投递本来就是有区别对待的。 + * 2、高层次毕业院校只允许 清华大学 北京大学 浙江大学 哈尔滨工业大学 东南大学 天津大学 同济大学的投递 + */ + @WeaPermission(publicPermission = true) + @PostMapping("/checkPosition") + public WeaResult> check( + @RequestParam("talentId") String talentId, + @RequestParam("userId") String userId, + @RequestParam("userName") String userName, + @RequestParam("resumeId") String resumeId, + @RequestParam("positionId") String positionId + ){ + Map rs = new HashMap<>(); + rs = joinPositionRule.JoinPositionRule(talentId,userId,userName,positionId,resumeId); + return WeaResult.success(rs); + } +} \ No newline at end of file diff --git a/src/main/java/com/weaver/seconddev/sxjg/controller/EmployeeSelfServiceController.java b/src/main/java/com/weaver/seconddev/sxjg/controller/EmployeeSelfServiceController.java new file mode 100644 index 0000000..6e3e03a --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/controller/EmployeeSelfServiceController.java @@ -0,0 +1,531 @@ +package com.weaver.seconddev.sxjg.controller; +/** + * 员工自助接口 + */ +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 org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.net.URLEncoder; +import java.util.*; + +@RestController +@RequestMapping("/papi/secondev/nccloud/api/hrtrn/openAPI") + +public class EmployeeSelfServiceController { + + private final Logger log = LoggerFactory.getLogger(EmployeeSelfServiceController.class); + + @Autowired + private PersondataQueryUtil persondataQueryUtil; + + + /** + * use:查询员工个人信息 + */ + @WeaPermission(publicPermission = true) + @PostMapping("/persondata/query") + public JSONObject persondataQuery( + @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); + if("1000000000".equals(resJsonObject.getString("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); + } + } + } + } + } + nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + token = nccApiUtil.getToken(); + url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/psninfoedit/approveDetailVO"; + rs11 = nccApiUtil.doJsonPost(url,token,r3.toJSONString()); + JSONObject resJsonObject2= JSONObject.parseObject(rs11); + if("1000000000".equals(resJsonObject2.getString("code"))) { + JSONObject dataObj2 = resJsonObject2.getJSONObject("data"); + if(dataObj2.containsKey("data")) { + JSONObject dataObj21 = dataObj2.getJSONObject("data"); + //如果是基本信息查询 + if("bd_psndoc".equals(r3.getString("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.getString("columnValue"); + String columnKey = afertObj.getString("columnKey"); + if(columnKey!=null && columnKey.length()>0 && columnKey.equals(re5.getString("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); + } + } + } + } + } + } + } + } + } + } + } + } + return resJsonObject; + } + + + @WeaPermission(publicPermission = true) + @PostMapping("/persondata/query2") + public String persondataQuery2(@RequestBody String body) throws Exception { + + String resJsonStr = persondataQueryUtil.queryNccloudPersondata(body); + return resJsonStr; + } + + /** + * use:个人信息授权项查询接口 + */ + @WeaPermission(publicPermission = true) + @PostMapping("/psninfoconf/list") + public JSONObject psninfoconfList( + @RequestBody String body + ) throws Exception { + JSONObject requestbody = JSONObject.parseObject(body); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/psninfoconf/list"; + String rs11 = nccApiUtil.doJsonPost(url,token,requestbody.toJSONString()); + JSONObject resJsonObject = JSONObject.parseObject(rs11); + return resJsonObject; + } + + /** + * use:个人信息授权控制接口<接口备用> + */ + @WeaPermission(publicPermission = true) + @PostMapping("/psninfoconf/check") + public JSONObject psninfoconfCheck( + @RequestBody String body + ) throws Exception { + JSONObject requestbody = JSONObject.parseObject(body); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/psninfoconf/check"; + String rs11 = nccApiUtil.doJsonPost(url,token,requestbody.toJSONString()); + JSONObject resJsonObject = JSONObject.parseObject(rs11); + return resJsonObject; + } + + /** + * use:个人信息变更-保存接口(包括子集) + */ + @WeaPermission(publicPermission = true) + @PostMapping("/psninfoedit/save") + public JSONObject psninfoeditSave( + @RequestBody String body + ) throws Exception { + JSONObject requestbody = JSONObject.parseObject(body); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/psninfoedit/save"; + String rs11 = nccApiUtil.doJsonPost(url,token,requestbody.toJSONString()); + JSONObject resJsonObject = JSONObject.parseObject(rs11); + return resJsonObject; + } + + /** + * use:个人信息变更待审核列表查询接口 + */ + @WeaPermission(publicPermission = true) + @PostMapping("/psninfoedit/approvelist") + public JSONObject psninfoeditApprovelist( + @RequestBody String body + ) throws Exception { + JSONObject requestbody = 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,requestbody.toJSONString()); + JSONObject resJsonObject = JSONObject.parseObject(rs11); + return resJsonObject; + } + + /** + * use:个人信息变更撤销审核接口 + */ + @WeaPermission(publicPermission = true) + @PostMapping("/psninfoedit/retractapprove") + public JSONObject psninfoeditRetractapprove( + @RequestBody String body + ) throws Exception { + JSONObject requestbody = JSONObject.parseObject(body); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/psninfoedit/retractapprove"; + String rs11 = nccApiUtil.doJsonPost(url,token,requestbody.toJSONString()); + JSONObject resJsonObject = JSONObject.parseObject(rs11); + return resJsonObject; + } + + /** + * use:个人信息变更审核详情接口 + */ + @WeaPermission(publicPermission = true) + @PostMapping("/psninfoedit/approveDetailVO") + public JSONObject psninfoeditApproveDetailVO( + @RequestBody String body + ) throws Exception { + JSONObject requestbody = JSONObject.parseObject(body); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/psninfoedit/approveDetailVO"; + String rs11 = nccApiUtil.doJsonPost(url,token,requestbody.toJSONString()); + JSONObject resJsonObject = JSONObject.parseObject(rs11); + return resJsonObject; + } + + /** + * use:自助人员子集查询权限接口 + */ + @WeaPermission(publicPermission = true) + @PostMapping("/psninfoconf/querytablecodeisuserd") + public JSONObject queryTablecodeisuserd( + @RequestBody String body + ) throws Exception { + JSONObject requestbody = JSONObject.parseObject(body); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/psninfoconf/querytablecodeisuserd"; + String rs11 = nccApiUtil.doJsonPost(url,token,requestbody.toJSONString()); + JSONObject resJsonObject = JSONObject.parseObject(rs11); + return resJsonObject; + } + + + /** + * use:人员附件相关接口 + */ + @WeaPermission(publicPermission = true) + @PostMapping("/attachment/query") + public JSONObject attachmentQuery( + @RequestBody String body + ) throws Exception { + JSONObject requestbody = JSONObject.parseObject(body); + String pk1 = requestbody.getString("pk"); + JSONObject inter2 = new JSONObject(); + inter2.put("pk_psndoc",pk1); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/attachment/query"; + String rs11 = nccApiUtil.doJsonPost(url,token,requestbody.toJSONString()); + try { + JSONObject resJsonObject = JSONObject.parseObject(rs11); + String code = resJsonObject.getString("code"); + if("1000000000".equals(code)) { + //详情接口合并 + NccApiUtil nccApiUtil2 = new NccApiUtil(); + nccApiUtil2.init(); + String token2 = nccApiUtil2.getToken(); + String url2 = nccApiUtil2.getBaseUrl()+"nccloud/api/hrtrn/openAPI/attachment/unreviewed"; + String rs12 = nccApiUtil2.doJsonPost(url2,token2,inter2.toJSONString()); + JSONObject resJsonObject2 = JSONObject.parseObject(rs12); + String code2 = resJsonObject2.getString("code"); + JSONObject 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(int i = 0; i < data2.size(); i++) { + JSONObject obj2 = data2.getJSONObject(i); + JSONObject y2 = new JSONObject(); + 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 file_state = obj2.getString("file_state"); + //仅checkstatus==0待审核时,才展示 + if("0".equals(checkstatus)) { + y2.put("pk",pk_annex_approve); + y2.put("type",type); + y2.put("name",file_name); + 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); + } + } + } + } + } + } + return resJsonObject; + }catch (Exception e) { + throw new Exception(rs11); + } + } + + + + /** + * use:个人附件下载接口 + */ + @WeaPermission(publicPermission = true) + @PostMapping("/attachment/download") + public JSONObject attachmentDownload( + @RequestBody String body + ) throws Exception { + JSONObject requestbody = JSONObject.parseObject(body); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/attachment/download"; + String rs11 = nccApiUtil.doJsonPost(url,token,requestbody.toJSONString()); + try { + JSONObject resJsonObject = JSONObject.parseObject(rs11); + return resJsonObject; + }catch (Exception e) { + throw new Exception(rs11); + } + } + + /** + * use:个人附件下载接口 + */ + @WeaPermission(publicPermission = true) + @GetMapping("/attachment/download1") + public void attachmentDownload1( + @RequestParam("fullPath") String fullPath, + HttpServletResponse response + ) throws Exception { + JSONObject requestbody = new JSONObject(); + requestbody.put("fullPath",fullPath); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/attachment/download"; + String rs11 = nccApiUtil.doJsonPost(url,token,requestbody.toJSONString()); + try { + JSONObject resJsonObject2 = JSONObject.parseObject(rs11); + if(resJsonObject2.getBoolean("success")) { + JSONObject resJsonObject = resJsonObject2.getJSONObject("data"); + String bytes = resJsonObject.getString("bytes"); + byte [] liufile = Base64.getDecoder().decode(bytes); + String filenames = resJsonObject.getString("name"); + response.setContentType("application/x-download"); + String fileName = URLEncoder.encode(filenames, "UTF-8"); + response.setCharacterEncoding("UTF-8"); + response.addHeader("Content-Disposition", "attachment;filename=" + fileName); + try { + ServletOutputStream out = response.getOutputStream(); + out.write(liufile,0,liufile.length); + out.close(); + out.flush(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + }catch (Exception e) { + throw new Exception(rs11); + } + } + + /** + * use:人员附件接收接口 + */ + @WeaPermission(publicPermission = true) + @PostMapping("/attachment/receive") + public JSONObject attachmentReceive( + @RequestBody String body + ) throws Exception { + JSONObject requestbody = JSONObject.parseObject(body); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/attachment/receive"; + String rs11 = nccApiUtil.doJsonPost(url,token,requestbody.toJSONString()); + try { + JSONObject resJsonObject = JSONObject.parseObject(rs11); + return resJsonObject; + }catch (Exception e) { + throw new Exception(rs11); + } + } + +// @WeaPermission(publicPermission = true) +// @PostMapping("/attachment/upload") +// public JSONObject attachmentUpload( +// @RequestParam("file") MultipartFile[] file, +// @RequestParam("pk_psndoc") String pk_psndoc, +// @RequestParam("file_state") String file_state, +// @RequestParam("type") String type, +// @RequestParam("file_type") String file_type, +// @RequestParam("file_name") String file_name +// ) throws Exception { +// JSONObject rs = new JSONObject(); +// if (file.isEmpty()) { +// rs.put("status",false); +// rs.put("msg","文件为空,请重新上传"); +// return rs; +// } +// // 获取文件名 +// String fileName = file.getOriginalFilename(); +// // 获取文件的字节内容 +// byte[] bytes = file.getBytes(); +// String filebase64str = Base64.getEncoder().encodeToString(bytes); +// JSONObject send = new JSONObject(); +// send.put("pk_psndoc",pk_psndoc); +// JSONArray data = new JSONArray(); +// JSONObject dataObject = new JSONObject(); +// dataObject.put("file_name",file_name); +// dataObject.put("file_state",file_state); +// dataObject.put("filebytes",filebase64str); +// dataObject.put("type",type); +// dataObject.put("file_type",file_type); +// data.add(dataObject); +// send.put("data",data); +// NccApiUtil nccApiUtil = new NccApiUtil(); +// nccApiUtil.init(); +// String token = nccApiUtil.getToken(); +// String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/attachment/receive"; +// String rs11 = nccApiUtil.doJsonPost(url,token,send.toJSONString()); +// try { +// JSONObject resJsonObject = JSONObject.parseObject(rs11); +// return resJsonObject; +// }catch (Exception e) { +// throw new Exception(rs11); +// } +// } + + /** + * use:个人附件待审核查询接口 + */ + @WeaPermission(publicPermission = true) + @PostMapping("/attachment/unreviewed") + public JSONObject attachmentUnreviewed( + @RequestBody String body + ) throws Exception { + JSONObject requestbody = JSONObject.parseObject(body); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/attachment/unreviewed"; + String rs11 = nccApiUtil.doJsonPost(url,token,requestbody.toJSONString()); + try { + JSONObject resJsonObject = JSONObject.parseObject(rs11); + return resJsonObject; + }catch (Exception e) { + throw new Exception(rs11); + } + } + + /** + * use:人员附件相关接口 + */ + @WeaPermission(publicPermission = true) + @PostMapping("/attachment/cancel") + public JSONObject attachmentCancel(@RequestBody String body) throws Exception { + JSONObject requestbody = JSONObject.parseObject(body); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/attachment/cancel"; + String rs11 = nccApiUtil.doJsonPost(url,token,requestbody.toJSONString()); + try { + JSONObject resJsonObject = JSONObject.parseObject(rs11); + return resJsonObject; + }catch (Exception e) { + throw new Exception(rs11); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/weaver/seconddev/sxjg/controller/PayslipPageController.java b/src/main/java/com/weaver/seconddev/sxjg/controller/PayslipPageController.java new file mode 100644 index 0000000..14c7d7b --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/controller/PayslipPageController.java @@ -0,0 +1,260 @@ +package com.weaver.seconddev.sxjg.controller; +/** + * 工资条获取接口开发 + * 个人信息outkey接口开发 + * nc自定义档案数据源接口开发 + */ +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.parser.Feature; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.weaver.common.authority.annotation.WeaPermission; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfigResp; +import com.weaver.seconddev.sxjg.util.NccApiUtil; +import com.weaver.seconddev.sxjg.util.ProvinceCityNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.web.bind.annotation.*; + +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.*; + +@RestController +@RequestMapping("/papi/secondev/sxjg") +public class PayslipPageController { + + private final Logger log = LoggerFactory.getLogger(PayslipPageController.class); + + private JdbcTemplate jdbcTemplateresp = new JdbcTemplate(EbDbDataSourceConfigResp.dbDataSource()); + + //根据人员id获取人员outkey字段 + @WeaPermission(publicPermission = true) + @GetMapping("/getUserOutKey") + public String getUserOutKeyById(@RequestParam("id")String id) { + String sql = "select outkey from eteams.employee where id = "+id; + String currentOutkey = ""; + try { + Map map = jdbcTemplateresp.queryForMap(sql); + currentOutkey = String.valueOf(map.get("outkey")); + }catch (Exception e){}; + return currentOutkey; + } + + @WeaPermission(publicPermission = true) + @PostMapping("/getPayslipageInfo") + public WeaResult getPayslipageInfo( + @RequestParam("userid") String userid, + @RequestParam("begindate") String begindate, + @RequestParam("enddate") String enddate, + @RequestParam("name") String name + ) throws Exception { + String sql = "select outkey from eteams.employee where id = "+userid; + log.error(sql); + log.error(userid); + String currentOutkey = ""; + try { + Map map = jdbcTemplateresp.queryForMap(sql); + currentOutkey = String.valueOf(map.get("outkey")); + }catch (Exception e){}; + if(currentOutkey.length()==0) { + return WeaResult.fail("当前用户没有outkey!"); + } + Map rs = new HashMap<>(); + JSONObject r1 = new JSONObject(); + JSONArray r2 = new JSONArray(); + JSONObject r3 = new JSONObject(); + r3.put("pk_psndoc",currentOutkey); + r2.add(r3); + r1.put("data",r2); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/payslipSync/entry"; + String rs11 = nccApiUtil.doJsonPost(url,token,r1.toJSONString()); + JSONObject rsf = JSONObject.parseObject(rs11, Feature.OrderedField); + if("1000000000".equals(rsf.getString("code"))) { + JSONArray dataarr = rsf.getJSONArray("data"); + JSONArray dataguolv = new JSONArray(); + if(dataarr.size()>0) { + for(int i = 0; i list = new ArrayList<>(); + for (int i=0; i < dataguolv.size(); i++) { + list.add(dataguolv.getJSONObject(i)); + } + // 创建日期比较器 + Comparator dateComparator = new Comparator() { + @Override + public int compare(JSONObject obj1, JSONObject obj2) { + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); + Date date1 = sdf.parse(obj1.getString("year")); + Date date2 = sdf.parse(obj2.getString("year")); + return date2.compareTo(date1); + } catch (Exception e) { + e.printStackTrace(); + return -1; + } + } + }; + // 根据日期进行排序 + Collections.sort(list, dateComparator); + // 将排好序的 List 转换为 JSONArray + JSONArray r = new JSONArray(); + for(JSONObject js : list) { + r.add(js); + } + rsf.put("data",r); + return WeaResult.success(rsf); + }else { + return WeaResult.fail(rsf.getString("message")); + } + } + + /** + * 判断年月在日期之间 + */ + private boolean judegNy(JSONObject obj,String beingdate1,String enddate1,String name){ + String ny1 = obj.getString("year"); + boolean flag = false; + ny1 = ny1+"-05"; + beingdate1 = beingdate1+"-05"; + enddate1 = enddate1+"-05"; + String famc = obj.getString("name");//方案名称 + // 定义要转换的字符串格式 + try { + boolean flag2 = false; + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date ny = dateFormat.parse(ny1); + Date beingdate = dateFormat.parse(beingdate1); + Date enddate = dateFormat.parse(enddate1); + long ny2 =ny.getTime(); + long beingdate2 =beingdate.getTime(); + long enddate2 =enddate.getTime(); + if(ny2>=beingdate2 && ny2<=enddate2) { + flag2 = true; + } + if((!"null".equals(name)) && flag2) { + if(famc.equals(name)) { + flag = true; + } + }else { + flag = flag2; + } + }catch (Exception e){}; + return flag; + } + + + //跟据doclistpk获取基础数据集合 + @WeaPermission(publicPermission = true) + @GetMapping("/getDataSourceList") + public WeaResult getDataSourceList(@RequestParam("dataSourcePk")String dataSourcePk, + @RequestParam(value = "type",required = false,defaultValue = "0") Integer type) throws JsonProcessingException { + if(type == 10) {//籍贯省市区 + JSONArray result = new JSONArray(); + String sql = "select id,pk_defdoc,defdocname,enablestate,pid from ec_ebuilder_designer.uf_ncc_defdoc where doclistpk = '"+dataSourcePk+"' order by defdoccode ASC"; + List> rs = jdbcTemplateresp.queryForList(sql); + List data = new ArrayList<>(); + if(CollectionUtil.isNotEmpty(rs)) { + for(Map single : rs) { + String id = String.valueOf(single.get("id")); + String pk_defdoc = String.valueOf(single.get("pk_defdoc")); + String defdocname = String.valueOf(single.get("defdocname")); + //String enablestate = String.valueOf(single.get("enablestate")); + String pid = String.valueOf(single.get("pid")); + ProvinceCityNode provinceCityNode = new ProvinceCityNode(id,pid,pk_defdoc,defdocname); + data.add(provinceCityNode); + } + //创建一个List集合来存放最终的树状结构数据 + List> menuList = new ArrayList<>(); + // 先存入最顶级的树(0代表没有父级,即最顶级),然后通过最顶级的id递归获取子级 + for (ProvinceCityNode entity : data) { + Map map = new HashMap<>(); + if (entity.parentid ==null || "null".equals(entity.parentid) || "".equals(entity.parentid) || "0".equals(entity.parentid)) { + map.put("id", entity.id); + map.put("value", entity.value); + map.put("isLeaf", entity.isLeaf); + map.put("parentid", entity.parentid); + map.put("loading", entity.loading); + map.put("label", entity.label); + map.put("disabled", entity.disabled); + map.put("children", getChildren(data, entity.id)); + menuList.add(map); + } + } + ObjectMapper objectMapper = new ObjectMapper(); + // 将 List> 转换为 JSON + String json = objectMapper.writeValueAsString(menuList); + result = JSONArray.parseArray(json); + } + return WeaResult.success(result); + }else { + JSONArray result = new JSONArray(); + String sql = "select pk_defdoc,defdocname,enablestate,pid from ec_ebuilder_designer.uf_ncc_defdoc where doclistpk = '"+dataSourcePk+"'"; + List> rs = jdbcTemplateresp.queryForList(sql); + Map singlemap = null; + if(CollectionUtil.isNotEmpty(rs)) { + for(Map rsmap : rs) { + JSONObject rsobj = new JSONObject(); + String pk_defdoc = String.valueOf(rsmap.get("pk_defdoc")); + String defdocname = String.valueOf(rsmap.get("defdocname")); + String enablestate = String.valueOf(rsmap.get("enablestate")); + String parentdoc = String.valueOf(rsmap.get("pid")); + rsobj.put("pkvalue",pk_defdoc); + rsobj.put("pkname",defdocname); + rsobj.put("enablestate",enablestate); + if(!("null".equals(parentdoc))) { + sql = "select pk_defdoc from ec_ebuilder_designer.uf_ncc_defdoc where id = '"+parentdoc+"'"; + singlemap = jdbcTemplateresp.queryForMap(sql); + String singlepkdoc = String.valueOf(singlemap.get("pk_defdoc")); + rsobj.put("parentpkvlaue",singlepkdoc); + }else { + rsobj.put("parentpkvlaue",parentdoc); + } + result.add(rsobj); + } + } + return WeaResult.success(result); + } + } + + /** + * 递归获取子级节点 + */ + public List> getChildren(List data, String id) { + List> list = new ArrayList<>(); + if (data == null || data.size() == 0 || id == null) { + return list; + } + for (ProvinceCityNode entity : data) { + Map map = new HashMap<>(); + //如果本级id与数据的父id相同,就说明是子父级关系 + if (id.equals(entity.parentid)) { + map.put("id", entity.id); + map.put("value", entity.value); + map.put("isLeaf", entity.isLeaf); + map.put("parentid", entity.parentid); + map.put("loading", entity.loading); + map.put("label", entity.label); + map.put("disabled", entity.disabled); + map.put("children", getChildren(data, entity.id)); + list.add(map); + } + } + return list; + } +} \ No newline at end of file diff --git a/src/main/java/com/weaver/seconddev/sxjg/controller/PayslipPageTestController.java b/src/main/java/com/weaver/seconddev/sxjg/controller/PayslipPageTestController.java new file mode 100644 index 0000000..49d0574 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/controller/PayslipPageTestController.java @@ -0,0 +1,368 @@ +//package com.weaver.seconddev.sxjg.controller; +// +//import com.alibaba.fastjson.JSON; +//import com.alibaba.fastjson.JSONArray; +//import com.alibaba.fastjson.JSONObject; +//import com.alibaba.fastjson.parser.Feature; +//import com.fasterxml.jackson.core.JsonProcessingException; +//import com.fasterxml.jackson.databind.ObjectMapper; +//import com.weaver.common.authority.annotation.WeaPermission; +//import com.weaver.seconddev.sxjg.util.NccApiUtil; +//import com.weaver.seconddev.sxjg.util.ProvinceCityNode; +//import org.junit.Test; +//import org.springframework.web.bind.annotation.PostMapping; +//import org.springframework.web.bind.annotation.RequestBody; +// +//import javax.servlet.http.HttpServletResponse; +//import java.text.SimpleDateFormat; +//import java.util.*; +// +//public class PayslipPageTestController { +// @org.junit.Test +// public void test() throws Exception { +// Map rs = new HashMap<>(); +// JSONObject r1 = new JSONObject(); +// JSONArray r2 = new JSONArray(); +// JSONObject r3 = new JSONObject(); +// r3.put("pk_psndoc","0001A2100000006CWEBW"); +// r2.add(r3); +// r1.put("data",r2); +// NccApiUtil nccApiUtil = new NccApiUtil(); +// nccApiUtil.init(); +// String token = nccApiUtil.getToken(); +// String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/payslipSync/entry"; +// String rs11 = nccApiUtil.doJsonPost(url,token,r1.toJSONString()); +// JSONObject rsf = JSONObject.parseObject(rs11, Feature.OrderedField); +// if("1000000000".equals(rsf.getString("code"))) { +// JSONArray dataarr = rsf.getJSONArray("data"); +// JSONArray dataguolv = new JSONArray(); +// if(dataarr.size()>0) { +// for(int i = 0; i list = new ArrayList<>(); +// for (int i=0; i < dataguolv.size(); i++) { +// list.add(dataguolv.getJSONObject(i)); +// } +// // 创建日期比较器 +// Comparator dateComparator = new Comparator() { +// @Override +// public int compare(JSONObject obj1, JSONObject obj2) { +// try { +// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); +// Date date1 = sdf.parse(obj1.getString("year")); +// Date date2 = sdf.parse(obj2.getString("year")); +// return date2.compareTo(date1); +// } catch (Exception e) { +// e.printStackTrace(); +// return -1; +// } +// } +// }; +// // 根据日期进行排序 +// Collections.sort(list, dateComparator); +// String s = JSON.toJSONString(list); +// System.out.println(s); +// // 将排好序的 List 转换为 JSONArray +// JSONArray r = new JSONArray(); +// for(JSONObject js : list) { +// r.add(js); +// } +// System.out.println(r.toJSONString()); +// rsf.put("data",r); +// }else { +// } +// } +// +// @Test +// public void test1() throws Exception { +// Map rs = new HashMap<>(); +// JSONObject r3 = new JSONObject(); +// r3.put("pk_psndoc","0001A2100000006CWEBW"); +// r3.put("tableCode","hi_psndoc_linkman"); +// 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); +// if("1000000000".equals(resJsonObject.getString("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); +// } +// } +// } +// } +// } +// nccApiUtil = new NccApiUtil(); +// nccApiUtil.init(); +// token = nccApiUtil.getToken(); +// url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/psninfoedit/approveDetailVO"; +// rs11 = nccApiUtil.doJsonPost(url,token,r3.toJSONString()); +// JSONObject resJsonObject2= JSONObject.parseObject(rs11); +// if("1000000000".equals(resJsonObject2.getString("code"))) { +// JSONObject dataObj2 = resJsonObject2.getJSONObject("data"); +// if(dataObj2.containsKey("data")) { +// JSONObject dataObj21 = dataObj2.getJSONObject("data"); +// //如果是基本信息查询 +// if("bd_psndoc".equals(r3.getString("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.getString("columnValue"); +// String columnKey = afertObj.getString("columnKey"); +// if(columnKey!=null && columnKey.length()>0 && columnKey.equals(re5.getString("key"))) { +// re5.put("isExamine",true); +// } +// } +// } +// } +// } +// } +// } +// } +// System.out.println(1); +// }else {//子级信息查询 +// +// } +// } +// } +// } +// } +// +// /** +// * 判断年月在日期之间 +// */ +// private boolean judegNy(JSONObject obj, String beingdate1, String enddate1, String name){ +// String ny1 = obj.getString("year"); +// boolean flag = false; +// ny1 = ny1+"-05"; +// beingdate1 = beingdate1+"-05"; +// enddate1 = enddate1+"-05"; +// String famc = obj.getString("name");//方案名称 +// // 定义要转换的字符串格式 +// try { +// boolean flag2 = false; +// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); +// Date ny = dateFormat.parse(ny1); +// Date beingdate = dateFormat.parse(beingdate1); +// Date enddate = dateFormat.parse(enddate1); +// long ny2 =ny.getTime(); +// long beingdate2 =beingdate.getTime(); +// long enddate2 =enddate.getTime(); +// if(ny2>=beingdate2 && ny2<=enddate2) { +// flag2 = true; +// } +// if((!"null".equals(name)) && flag2) { +// if(famc.equals(name)) { +// flag = true; +// } +// }else { +// flag = flag2; +// } +// }catch (Exception e){}; +// return flag; +// } +// +// @Test +// public void tp() throws JsonProcessingException { +// +// List> rs = getMuneTree(); +// ObjectMapper objectMapper = new ObjectMapper(); +// +// // 将 List> 转换为 JSON +// String json = objectMapper.writeValueAsString(rs); +// +// System.out.println(json); +// +// } +// /** +// * 将有父子关系的数据转换成树形结构数据 +// * +// * @return 最终的树状结构的集合数据 +// */ +// public List> getMuneTree() { +// // 获取数据库中带有有父子关系的数据 +// List data = new ArrayList<>(); +// ProvinceCityNode provinceCityNode11 = new ProvinceCityNode("1","null","pk11","第一级1"); +// ProvinceCityNode provinceCityNode12 = new ProvinceCityNode("2","null","pk12","第一级2"); +// ProvinceCityNode provinceCityNode13 = new ProvinceCityNode("3","null","pk13","第一级3"); +// ProvinceCityNode provinceCityNode14 = new ProvinceCityNode("4","null","pk14","第一级4"); +// ProvinceCityNode provinceCityNode111 = new ProvinceCityNode("11","1","pk111","第一级11"); +// ProvinceCityNode provinceCityNode112 = new ProvinceCityNode("12","1","pk112","第一级12"); +// ProvinceCityNode provinceCityNode113 = new ProvinceCityNode("13","1","pk113","第一级13"); +// ProvinceCityNode provinceCityNode121 = new ProvinceCityNode("15","2","pk211","第一级21"); +// ProvinceCityNode provinceCityNode122 = new ProvinceCityNode("16","2","pk212","第一级22"); +// ProvinceCityNode provinceCityNode123 = new ProvinceCityNode("17","2","pk213","第一级23"); +// ProvinceCityNode provinceCityNode1111 = new ProvinceCityNode("1111","11","pk111","第一级1111"); +// ProvinceCityNode provinceCityNode1112 = new ProvinceCityNode("1112","11","pk111","第一级1112"); +// ProvinceCityNode provinceCityNode1113 = new ProvinceCityNode("1113","11","pk111","第一级1113"); +// data.add(provinceCityNode11); +// data.add(provinceCityNode12); +// data.add(provinceCityNode13); +// data.add(provinceCityNode14); +// data.add(provinceCityNode111); +// data.add(provinceCityNode112); +// data.add(provinceCityNode113); +// data.add(provinceCityNode121); +// data.add(provinceCityNode122); +// data.add(provinceCityNode123); +// data.add(provinceCityNode1111); +// data.add(provinceCityNode1112); +// data.add(provinceCityNode1113); +// //创建一个List集合来存放最终的树状结构数据 +// List> menuList = new ArrayList<>(); +// // 先存入最顶级的树(0代表没有父级,即最顶级),然后通过最顶级的id递归获取子级 +// for (ProvinceCityNode entity : data) { +// Map map = new HashMap<>(); +// if (entity.parentid ==null || "null".equals(entity.parentid) || "".equals(entity.parentid) || "0".equals(entity.parentid)) { +// map.put("id", entity.id); +// map.put("value", entity.value); +// map.put("isLeaf", entity.isLeaf); +// map.put("parentid", entity.parentid); +// map.put("loading", entity.loading); +// map.put("label", entity.label); +// map.put("disabled", entity.disabled); +// map.put("children", getChildren(data, entity.id)); +// menuList.add(map); +// } +// } +// return menuList; +// } +// /** +// * 递归处理:通过id获取子级,查询子级下的子级 +// * @param data 数据库的原始数据 +// * @param id 主id +// * @return 该id下得子级 +// */ +// public List> getChildren(List data, String id) { +// List> list = new ArrayList<>(); +// if (data == null || data.size() == 0 || id == null) { +// return list; +// } +// for (ProvinceCityNode entity : data) { +// Map map = new HashMap<>(); +// //如果本级id与数据的父id相同,就说明是子父级关系 +// if (id.equals(entity.parentid)) { +// map.put("id", entity.id); +// map.put("value", entity.value); +// map.put("isLeaf", entity.isLeaf); +// map.put("parentid", entity.parentid); +// map.put("loading", entity.loading); +// map.put("label", entity.label); +// map.put("disabled", entity.disabled); +// map.put("children", getChildren(data, entity.id)); +// list.add(map); +// } +// } +// return list; +// } +// +//// /** +//// * use:个人附件下载接口 +//// */ +// @Test +// public void attachmentDownload1( +// ) throws Exception { +// JSONObject requestbody = new JSONObject(); +// requestbody.put("pk","0001A2100000007KUXWS"); +// String pk1 = requestbody.getString("pk"); +// JSONObject inter2 = new JSONObject(); +// inter2.put("pk_psndoc",pk1); +// NccApiUtil nccApiUtil = new NccApiUtil(); +// nccApiUtil.init(); +// String token = nccApiUtil.getToken(); +// String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/attachment/query"; +// String rs11 = nccApiUtil.doJsonPost(url,token,requestbody.toJSONString()); +// try { +// JSONObject resJsonObject = JSONObject.parseObject(rs11); +// String code = resJsonObject.getString("code"); +// if ("1000000000".equals(code)) { +// //详情接口合并 +// NccApiUtil nccApiUtil2 = new NccApiUtil(); +// nccApiUtil2.init(); +// String token2 = nccApiUtil2.getToken(); +// String url2 = nccApiUtil2.getBaseUrl() + "nccloud/api/hrtrn/openAPI/attachment/unreviewed"; +// String rs12 = nccApiUtil2.doJsonPost(url2, token2, inter2.toJSONString()); +// JSONObject resJsonObject2 = JSONObject.parseObject(rs12); +// String code2 = resJsonObject2.getString("code"); +// JSONObject 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; i < keysz1.size(); i++) { +// JSONObject one = keysz1.getJSONObject(i); +// one.put("isExamine", false); +// one.put("file_state", "0"); +// } +// } +// } +// //拼接待审核 +// if ("1000000000".equals(code2)) { +// JSONArray data2 = resJsonObject2.getJSONArray("data"); +// if (data2 != null && data2.size() > 0) { +// for (int i = 0; i < data2.size(); i++) { +// JSONObject obj2 = data2.getJSONObject(i); +// JSONObject y2 = new JSONObject(); +// 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 file_state = obj2.getString("file_state"); +// //仅checkstatus==0待审核时,才展示 +// if ("0".equals(checkstatus)) { +// y2.put("pk", pk_annex_approve); +// y2.put("type", type); +// y2.put("name", file_name); +// 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); +// } +// } +// } +// } +// } +// } +// }finally { +// +// } +// } +//} diff --git a/src/main/java/com/weaver/seconddev/sxjg/esb/ApplyPositionToNcc.java b/src/main/java/com/weaver/seconddev/sxjg/esb/ApplyPositionToNcc.java new file mode 100644 index 0000000..db5d22d --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/esb/ApplyPositionToNcc.java @@ -0,0 +1,1075 @@ +/** + * @use入职管理-待报道-同步nc入职人员基本信息 + * @author 刘浩 + */ +package com.weaver.seconddev.sxjg.esb; + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; +import com.weaver.eteams.file.client.file.FileData; +import com.weaver.file.ud.api.FileDownloadService; + +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfig; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfigResp; +import com.weaver.seconddev.sxjg.util.NccApiUtil; +import com.weaver.seconddev.sxjg.util.NccResultUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Service; + +import java.io.*; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service("esb_applypositiontoncc_howe") +public class ApplyPositionToNcc implements EsbServerlessRpcRemoteInterface { + private static final Logger log = LoggerFactory.getLogger(ApplyPositionToNcc.class); + private JdbcTemplate jdbcTemplate = new JdbcTemplate(EbDbDataSourceConfig.dbDataSource()); + private JdbcTemplate jdbcTemplateresp = new JdbcTemplate(EbDbDataSourceConfigResp.dbDataSource()); + + @Autowired + private FileDownloadService fileDownloadService; + @Override + public WeaResult> execute(Map params) { + Map finresult = new HashMap<>(); + finresult.put("code",200); + String rzid = (String) params.get("rzid");//姓名 + String name = (String) params.get("name");//姓名 + String idtype = (String) params.get("idtype");//证件类型 + String id = (String) params.get("id");//证件号码 + String pk_org = (String) params.get("pk_org");//所属组织 + String sex = (String) params.get("sex"); + String birthdate = (String) params.get("birthdate"); + String nativeplace = (String) params.get("nativeplace"); + String characterrpr = (String) params.get("characterrpr"); + String nationality = (String) params.get("nationality"); + String polity = (String) params.get("polity"); + String health = (String) params.get("health"); + String marital = (String) params.get("marital"); + String joinworkdate = (String) params.get("joinworkdate"); + String mobile = (String) params.get("mobile"); + String email = (String) params.get("email"); + String bloodtype = (String) params.get("bloodtype"); + String usedname = (String) params.get("usedname"); + String fileaddress = (String) params.get("fileaddress"); + String glbdef6 = (String) params.get("glbdef6"); +// String partyname = (String) params.get("partyname"); +// String partydate = (String) params.get("partydate"); +// String partyunit = (String) params.get("partyunit"); +// String partypsn = (String) params.get("partypsn"); +// String partyduedate = (String) params.get("partyduedate"); +// String glbdef1 = (String) params.get("glbdef1"); + String pk_org_work = (String) params.get("pk_org_work"); + String pk_psncl_work = (String) params.get("pk_psncl_work"); + String pk_dept_work = (String) params.get("pk_dept_work"); + String pk_post_work = (String) params.get("pk_post_work"); + String pk_postseries_work = (String) params.get("pk_postseries_work"); + String pk_job_work = (String) params.get("pk_job_work"); + String pk_jobgrade_work = (String) params.get("pk_jobgrade_work"); + String begindate_work = (String) params.get("begindate_work"); + String collectid = (String) params.get("collectid"); + String ygxs = (String)params.get("ygxs"); + String rdtrq = (String)params.get("rdtrq");//入党团日期 + + if (collectid == null || collectid.length() == 0) { + finresult.put("code",500); + finresult.put("msg","当前人员并未进行信息采集"); + return WeaResult.success(finresult); + } + JSONObject result = new JSONObject(); + JSONArray data = new JSONArray(); + JSONArray bd_psndoc = new JSONArray();//人员基本信息 + JSONObject bd_psndoc_obj = new JSONObject(); + JSONArray hi_psnorg = new JSONArray();//组织关系 + JSONObject hi_psnorg_obj = new JSONObject(); + JSONArray hi_psnjob = new JSONArray();//工作记录 + JSONObject hi_psnjob_obj = new JSONObject(); + + bd_psndoc_obj.put("name", name); + bd_psndoc_obj.put("idtype", idtype); + bd_psndoc_obj.put("id", id); + bd_psndoc_obj.put("pk_org", pk_org); + sex = "male".equals(sex) ? "1" : "2"; + bd_psndoc_obj.put("sex", sex); + bd_psndoc_obj.put("birthdate", data10str(birthdate)); + bd_psndoc_obj.put("nativeplace", nativeplace); + bd_psndoc_obj.put("characterrpr", characterrpr); + bd_psndoc_obj.put("nationality", nationality); + bd_psndoc_obj.put("polity", polity); + bd_psndoc_obj.put("health", health); + bd_psndoc_obj.put("marital", marital); + bd_psndoc_obj.put("joinworkdate", data10str(joinworkdate)); + bd_psndoc_obj.put("mobile", mobile); + bd_psndoc_obj.put("email", email); + bd_psndoc_obj.put("bloodtype", bloodtype); + bd_psndoc_obj.put("usedname", usedname); + bd_psndoc_obj.put("fileaddress", fileaddress); + bd_psndoc_obj.put("glbdef6", glbdef6); + bd_psndoc_obj.put("joinpolitydate",rdtrq); + bd_psndoc.add(bd_psndoc_obj); + + String sql = "select ncc_pk from ft_ncczjlx where ncc_name = '"+idtype+"'"; + Map srrr = jdbcTemplateresp.queryForMap(sql); + String idtypePk =(String) srrr.get("ncc_pk"); + hi_psnorg_obj.put("begindate", data10str(begindate_work)); + if(ygxs.contains("其他")) { + hi_psnorg_obj.put("indocflag", "Y"); + }else { + hi_psnorg_obj.put("indocflag", "N"); + } + hi_psnorg.add(hi_psnorg_obj); + + + hi_psnjob_obj.put("pk_org", pk_org_work); + hi_psnjob_obj.put("pk_psncl", pk_psncl_work); + hi_psnjob_obj.put("pk_dept", pk_dept_work); + hi_psnjob_obj.put("pk_post", pk_post_work); + hi_psnjob_obj.put("pk_postseries", pk_postseries_work); + hi_psnjob_obj.put("pk_job", pk_job_work); + hi_psnjob_obj.put("pk_jobgrade", pk_jobgrade_work); + hi_psnjob_obj.put("begindate", data10str(begindate_work)); + hi_psnjob.add(hi_psnjob_obj); + + JSONArray hi_psndoc_work = getWorkRecord(collectid); + JSONArray hi_psndoc_edu = getEduInfoRecord(collectid); + JSONArray hi_psndoc_family = getFamilyInfoRecord(collectid); + JSONArray hi_psndoc_linkman =getJjchatInfoRecord(collectid); + JSONArray hi_psndoc_title = getPsTitleInfoRecord(collectid); + JSONArray hi_psndoc_nationdyty = getNationdutInfoRecord(collectid); + JSONArray hi_psndoc_glbdef1 = getGlbdef1InfoRecord(collectid); + JSONArray hi_psndoc_part = getPartInfoRecord(collectid); + JSONArray hi_psndoc_enc =getEncInfoRecord(collectid); + JSONArray hi_psndoc_glbdef3 =getGlbdef3InfoRecord(collectid); + JSONArray hi_psndoc_glbdef2 =getGlbdef2InfoRecord(collectid); +// JSONArray hi_psndoc_partylog = new JSONArray(); +// JSONObject hi_psndoc_partylog_obj = new JSONObject(); +// hi_psndoc_partylog_obj.put("partyname",partyname); +// hi_psndoc_partylog_obj.put("partydate",data10str(partydate)); +// hi_psndoc_partylog_obj.put("partyunit",partyunit); +// hi_psndoc_partylog_obj.put("partypsn",partypsn); +// hi_psndoc_partylog_obj.put("partyduedate",data10str(partyduedate)); +// hi_psndoc_partylog_obj.put("glbdef1",glbdef1); +// hi_psndoc_partylog.add(hi_psndoc_partylog_obj); + + JSONObject x1 = new JSONObject(); + x1.put("bd_psndoc",bd_psndoc); + x1.put("hi_psnorg",hi_psnorg); + x1.put("hi_psnjob",hi_psnjob); + x1.put("hi_psndoc_work",hi_psndoc_work); + x1.put("hi_psndoc_edu",hi_psndoc_edu); + x1.put("hi_psndoc_family",hi_psndoc_family); + x1.put("hi_psndoc_linkman",hi_psndoc_linkman); + x1.put("hi_psndoc_title",hi_psndoc_title); + x1.put("hi_psndoc_nationdyty",hi_psndoc_nationdyty); + x1.put("hi_psndoc_glbdef1",hi_psndoc_glbdef1); +// x1.put("hi_psndoc_part",hi_psndoc_part); + x1.put("hi_psndoc_enc",hi_psndoc_enc); + x1.put("hi_psndoc_glbdef3",hi_psndoc_glbdef3); + x1.put("hi_psndoc_glbdef2",hi_psndoc_glbdef2); + x1.put("hi_psndoc_partylog",hi_psndoc_part); + data.add(x1); + result.put("data",data); + + try { + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrhi/openAPI/personnelSync/entry"; + String rs11 = nccApiUtil.doJsonPost(url,token,result.toJSONString()); + NccResultUtil rs = new NccResultUtil(rs11); + if(rs.getResult()) { + //传附件 + log.error("howec:::::::传附件"); + JSONObject jsonObject2 = new JSONObject(); + jsonObject2.put("id",id); + jsonObject2.put("idtype",idtypePk); + JSONArray r11 = getFjByCollectId(collectid); + if(r11.size() == 0) { + sql = "update uf_rcrt_entry_manage set entry_status = '1' where id = "+rzid; + jdbcTemplate.execute(sql); + return WeaResult.success(finresult); + } + jsonObject2.put("data",r11); + nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + token = nccApiUtil.getToken(); + url = nccApiUtil.getBaseUrl()+"nccloud/api/hrhi/openAPI/attachment/upload"; + rs11 = nccApiUtil.doJsonPost(url,token,jsonObject2.toJSONString()); + rs = new NccResultUtil(rs11); + if(rs.getResult()){ + //更新入职状态未已入职 + sql = "update uf_rcrt_entry_manage set entry_status = '1' where id = "+rzid; + jdbcTemplate.execute(sql); + return WeaResult.success(finresult); + }else { + //更新附件同步异常 + sql = "update uf_rcrt_entry_manage set fjtbsfyc = '2' where id = "+rzid; + jdbcTemplate.execute(sql); + finresult.put("code",500); + finresult.put("msg",rs.getDescription()); + return WeaResult.success(finresult); + } + }else { + finresult.put("code",500); + finresult.put("msg",rs.getDescription()); + return WeaResult.success(finresult); + } + }catch (Exception e){ + e.printStackTrace(); + finresult.put("code",500); + finresult.put("msg",e.getMessage()); + return WeaResult.success(finresult); + } + } + + //获取履历记录数组 表:uf_rcrt_ec_record + private JSONArray getWorkRecord(String collectid) { + JSONArray hi_psndoc_work = new JSONArray(); + + String sql = "select id,start_date,end_date,company,workdept,workjob,job_name,memo from uf_rcrt_ec_record where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_work_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null) { + rs1.put(key,""); + } + }); + String start_date = (String) rs1.get("start_date"); + String end_date = (String) rs1.get("end_date"); + String company = (String) rs1.get("company"); + String workdept = (String) rs1.get("workdept"); + String workjob = (String) rs1.get("workjob"); + String job_name = (String) rs1.get("job_name"); + String memo = (String) rs1.get("memo"); + hi_psndoc_work_obj.put("begindate", start_date); + hi_psndoc_work_obj.put("workcorp", company); + hi_psndoc_work_obj.put("enddate", end_date); + hi_psndoc_work_obj.put("workdept", workdept); + hi_psndoc_work_obj.put("workjob", workjob); + hi_psndoc_work_obj.put("workpost", job_name); + hi_psndoc_work_obj.put("memo", memo); + hi_psndoc_work.add(hi_psndoc_work_obj); + } + } + return hi_psndoc_work; + } + + //获取学历信息数组uf_rcrt_ec_edfcation + private JSONArray getEduInfoRecord(String collectid) { + JSONArray hi_psndoc_edu = new JSONArray(); + String sql = "select data_start,data_end,education,dnxl,school_name,emp_major,xz,xxfs,xw,xwsyrq,xwsydw,xlzsbh,xwzsbh,zgxl from uf_rcrt_ec_edfcation where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_edu_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null && (!key.equals("zgxl"))) { + rs1.put(key,""); + } + }); + String data_start = (String) rs1.get("data_start"); + String data_end = (String) rs1.get("data_end"); + String education = (String) rs1.get("education"); + String dnxl = (String) rs1.get("dnxl"); + String school_name = (String) rs1.get("school_name"); + String emp_major = (String) rs1.get("emp_major"); + String xz = (String) rs1.get("xz"); + String xxfs = (String) rs1.get("xxfs"); + String xw = (String) rs1.get("xw"); + String xwsyrq = (String) rs1.get("xwsyrq"); + String xwsydw = (String) rs1.get("xwsydw"); + String xlzsbh = (String) rs1.get("xlzsbh"); + String xwzsbh = (String) rs1.get("xwzsbh"); + String zgxl = "N"; + if(rs1.get("zgxl") != null) { + long zgxl1 = (long) rs1.get("zgxl"); + zgxl = zgxl1 == 1l ? "Y" : "N"; + } + Listids = new ArrayList<>(); + ids.add(education); + ids.add(dnxl); + ids.add(xxfs); + ids.add(xw); + Map rsmap = getNameById(ids); + hi_psndoc_edu_obj.put("begindate",data_start); + hi_psndoc_edu_obj.put("education",rsmap.get(education)); + hi_psndoc_edu_obj.put("enddate",data_end); + hi_psndoc_edu_obj.put("school",school_name); + hi_psndoc_edu_obj.put("major",emp_major); + hi_psndoc_edu_obj.put("edusystem",xz); + hi_psndoc_edu_obj.put("studymode",rsmap.get(xxfs)); + hi_psndoc_edu_obj.put("pk_degree",rsmap.get(xw)); + hi_psndoc_edu_obj.put("degreedate",xwsyrq); + hi_psndoc_edu_obj.put("degreeunit",xwsydw); + hi_psndoc_edu_obj.put("educationctifcode",xlzsbh); + hi_psndoc_edu_obj.put("certifcode",xwzsbh); + hi_psndoc_edu_obj.put("lasteducation",zgxl); + hi_psndoc_edu_obj.put("glbdef1",rsmap.get(dnxl)); + hi_psndoc_edu.add(hi_psndoc_edu_obj); + } + } + return hi_psndoc_edu; + } + + //家庭信息数组uf_rcrt_ec_family + private JSONArray getFamilyInfoRecord(String collectid) { + JSONArray hi_psndoc_family = new JSONArray(); + String sql = "select ybrgx,jtcyxm,sfzh,csrq,gzdw,zw,lxdh,zzmm,xl from uf_rcrt_ec_family where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_family_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null) { + rs1.put(key,""); + } + }); + String ybrgx = (String) rs1.get("ybrgx"); + String jtcyxm = (String) rs1.get("jtcyxm"); + String sfzh = (String) rs1.get("sfzh"); + String csrq = (String) rs1.get("csrq"); + String gzdw = (String) rs1.get("gzdw"); + String zw = (String) rs1.get("zw"); + String lxdh = (String) rs1.get("lxdh"); + String zzmm = (String) rs1.get("zzmm"); + String xl = (String) rs1.get("xl"); + + Listids = new ArrayList<>(); + ids.add(ybrgx); + ids.add(zzmm); + ids.add(xl); + Map rsmap = getNameById(ids); + hi_psndoc_family_obj.put("mem_relation",rsmap.get(ybrgx)); + hi_psndoc_family_obj.put("mem_name",jtcyxm); + hi_psndoc_family_obj.put("mem_birthday",csrq); + hi_psndoc_family_obj.put("mem_corp",gzdw); + hi_psndoc_family_obj.put("mem_job",zw); + hi_psndoc_family_obj.put("relaphone",lxdh); + hi_psndoc_family_obj.put("politics",rsmap.get(zzmm)); + hi_psndoc_family_obj.put("glbdef1",rsmap.get(xl)); + hi_psndoc_family_obj.put("glbdef2",sfzh); + hi_psndoc_family.add(hi_psndoc_family_obj); + } + } + return hi_psndoc_family; + } + + //紧急联系人 uf_rcrt_ec_linkman + private JSONArray getJjchatInfoRecord(String collectid) { + JSONArray hi_psndoc_linkman = new JSONArray(); + String sql = "select linkman,mobile from uf_rcrt_ec_linkman where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_linkman_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null) { + rs1.put(key,""); + } + }); + String linkman = (String) rs1.get("linkman"); + String mobile = (String) rs1.get("mobile"); + hi_psndoc_linkman_obj.put("linkman",linkman); + hi_psndoc_linkman_obj.put("mobile",mobile); + hi_psndoc_linkman.add(hi_psndoc_linkman_obj); + } + } + return hi_psndoc_linkman; + } + + //hi_psndoc_title 职称信息 uf_rcrt_ec_title + private JSONArray getPsTitleInfoRecord(String collectid) { + JSONArray hi_psndoc_title = new JSONArray(); + String sql = "select hdzc,pdrq,zcdj,zymc,pdjg,zsbh,zgzc,fzsj,pzwh from uf_rcrt_ec_title where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_title_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null && (!"zgzc".equals(key))) { + rs1.put(key,""); + } + }); + String hdzc = (String) rs1.get("hdzc"); + String pdrq = (String) rs1.get("pdrq"); + String zcdj = (String) rs1.get("zcdj"); + String zymc = (String) rs1.get("zymc"); + String pdjg = (String) rs1.get("pdjg"); + String zsbh = (String) rs1.get("zsbh"); + String zgzc1 = "N"; + String fzsj = (String) rs1.get("fzsj"); + String pzwh = (String) rs1.get("pzwh"); + + if(rs1.get("zgzc")!=null) { + long zgzc = (long) rs1.get("zgzc"); + zgzc1 = zgzc == 0l ? "N":"Y"; + } + Listids = new ArrayList<>(); + ids.add(hdzc); + ids.add(zcdj); + Map rsmap = getNameById(ids); + hi_psndoc_title_obj.put("begindate",pdrq); + hi_psndoc_title_obj.put("pk_techposttitle",rsmap.get(hdzc)); + hi_psndoc_title_obj.put("titlerank",rsmap.get(zcdj)); + hi_psndoc_title_obj.put("assorg",pdjg); + hi_psndoc_title_obj.put("certifcode",zsbh); + hi_psndoc_title_obj.put("tiptop_flag",zgzc1); + hi_psndoc_title_obj.put("glbdef1",zymc); + hi_psndoc_title_obj.put("glbdef5",pzwh); + hi_psndoc_title_obj.put("glbdef2",fzsj); + hi_psndoc_title.add(hi_psndoc_title_obj); + } + } + return hi_psndoc_title; + } + + //hi_psndoc_nationdyty 获取职称资格 uf_rcrt_ec_nationdut + private JSONArray getNationdutInfoRecord(String collectid) { + JSONArray hi_psndoc_nationdyty = new JSONArray(); + String sql = "select zyzgdj,zygz,zsbh,pdjg,hdrq,zgzyzg from uf_rcrt_ec_nationdut where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_nationdyty_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null && (!"zgzyzg".equals(key))) { + rs1.put(key,""); + } + }); + String zyzgdj = (String) rs1.get("zyzgdj"); + String zygz = (String) rs1.get("zygz"); + String zsbh = (String) rs1.get("zsbh"); + String pdjg = (String) rs1.get("pdjg"); + String hdrq = (String) rs1.get("hdrq"); + String zgzyzg1 = "N"; + if(rs1.get("zgzyzg")!=null) { + long zgzyzg = (long) rs1.get("zgzyzg"); + zgzyzg1 = zgzyzg == 0l ? "N":"Y"; + } + Listids = new ArrayList<>(); + ids.add(zyzgdj); + ids.add(zygz); + Map rsmap = getNameById(ids); + hi_psndoc_nationdyty_obj.put("workdate",hdrq); + hi_psndoc_nationdyty_obj.put("certificatenum",zsbh); + hi_psndoc_nationdyty_obj.put("worklevel",rsmap.get(zyzgdj)); + hi_psndoc_nationdyty_obj.put("occuptype",rsmap.get(zygz)); + hi_psndoc_nationdyty_obj.put("workunitname",pdjg); + hi_psndoc_nationdyty_obj.put("istop",zgzyzg1); + hi_psndoc_nationdyty.add(hi_psndoc_nationdyty_obj); + } + } + return hi_psndoc_nationdyty; + } + + //hi_psndoc_glbdef1 获取职业资格注册 uf_rcrt_ec_zczyzg + private JSONArray getGlbdef1InfoRecord(String collectid) { + JSONArray hi_psndoc_glbdef1 = new JSONArray(); + String sql = "select zyzgmc,zyzgmcjzy,zyzgzsbh,zgzpzrq,zcbh,sfbqyzc,zgzjzrq,zxyzyjmc,zxyjzrq,zxezyjmc,zxejzrq,zxszyjmc,zxsjzrq,zxsizyjmc,zxsijzrq,zxwzyjmc,zxwjzrq,bz from uf_rcrt_ec_zczyzg where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_glbdef1_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null && (!"sfbqyzc".equals(key))) { + rs1.put(key,""); + } + }); + String zyzgmc = (String) rs1.get("zyzgmc");//职业资格名称 + String zyzgmcjzy = (String) rs1.get("zyzgmcjzy");//职业资格名称及专业 + String zyzgzsbh = (String) rs1.get("zyzgzsbh");//职业资格证书编号 + String zgzpzrq = (String) rs1.get("zgzpzrq");//格证批准日期 + String zcbh = (String) rs1.get("zcbh");// 注册编号 + long sfbqyzc1 = 0l; + if(rs1.get("sfbqyzc") != null) { + sfbqyzc1 = (long) rs1.get("sfbqyzc");//是否本企业注册 + } + String zgzjzrq = (String) rs1.get("zgzjzrq");//资格证截止日期 + String zxyzyjmc = (String) rs1.get("zxyzyjmc");//增项一专业及名称 + String zxyjzrq = (String) rs1.get("zxyjzrq");//增项一截止日期 + String zxezyjmc = (String) rs1.get("zxezyjmc");//增项二专业及名称 + String zxejzrq = (String) rs1.get("zxejzrq");//增项二截止日期 + String zxszyjmc = (String) rs1.get("zxszyjmc");//增项三专业及名称 + String zxsjzrq = (String) rs1.get("zxsjzrq");//增项三截止日期 + String zxsizyjmc = (String) rs1.get("zxsizyjmc");// 增项四专业及名称 + String zxsijzrq = (String) rs1.get("zxsijzrq");//项四截止日期 + String zxwzyjmc = (String) rs1.get("zxwzyjmc");// 增项五专业及名称 + String zxwjzrq = (String) rs1.get("zxwjzrq");// 增项五截止日期 + String bz = (String) rs1.get("bz");//备注 + + Listids = new ArrayList<>(); + ids.add(zyzgmc); + ids.add(zyzgmcjzy); + ids.add(zxyzyjmc); + ids.add(zxezyjmc); + ids.add(zxszyjmc); + ids.add(zxsizyjmc); + ids.add(zxwzyjmc); + Map rsmap = getNameById(ids); + String sfbqyzc = sfbqyzc1 == 0l ? "N":"Y"; + hi_psndoc_glbdef1_obj.put("glbdef1",rsmap.get(zyzgmc));//职业资格名称 + hi_psndoc_glbdef1_obj.put("glbdef2",rsmap.get(zyzgmcjzy));//职业资格名称及专业 + hi_psndoc_glbdef1_obj.put("glbdef3",zyzgzsbh);//职业资格证书编号 + hi_psndoc_glbdef1_obj.put("glbdef4",zgzpzrq);//资格证批准日期 + hi_psndoc_glbdef1_obj.put("glbdef5",zcbh);//注册编号 + hi_psndoc_glbdef1_obj.put("glbdef6",sfbqyzc);//是否本企业注册 + hi_psndoc_glbdef1_obj.put("glbdef7",zgzjzrq);//注册证书有效时间 + hi_psndoc_glbdef1_obj.put("glbdef8",rsmap.get(zxyzyjmc));//增项一专业及名称 + hi_psndoc_glbdef1_obj.put("glbdef9",zxyjzrq);//增项一截止日期 + hi_psndoc_glbdef1_obj.put("glbdef10",rsmap.get(zxezyjmc));//增项二专业及名称 + hi_psndoc_glbdef1_obj.put("glbdef11",zxejzrq);//增项二截止日期 + hi_psndoc_glbdef1_obj.put("glbdef12",rsmap.get(zxszyjmc));//增项三专业及名称 + hi_psndoc_glbdef1_obj.put("glbdef13",zxsjzrq);//增项三截止日期 + hi_psndoc_glbdef1_obj.put("glbdef14",rsmap.get(zxsizyjmc));//增项四专业及名称 + hi_psndoc_glbdef1_obj.put("glbdef15",zxsijzrq);//增项四截止日期 + hi_psndoc_glbdef1_obj.put("glbdef16",rsmap.get(zxwzyjmc));//增项五专业及名称 + hi_psndoc_glbdef1_obj.put("glbdef17",zxwjzrq);//增项五截止日期 + hi_psndoc_glbdef1_obj.put("glbdef19",bz);//备注 + + hi_psndoc_glbdef1.add(hi_psndoc_glbdef1_obj); + } + } + return hi_psndoc_glbdef1; + } + + //hi_psndoc_part 获取参加党派记 uf_rcrt_ec_partylog + private JSONArray getPartInfoRecord(String collectid) { + JSONArray hi_psndoc_part = new JSONArray(); + String sql = "select partyname,partydate,partyunit,partypsn,zzsj,bz from uf_rcrt_ec_partylog where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_part_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null && (!"sfbqyzc".equals(key))) { + rs1.put(key,""); + } + }); + String partyname = (String) rs1.get("partyname"); + String partydate = (String) rs1.get("partydate"); + String partyunit = (String) rs1.get("partyunit"); + String partypsn = (String) rs1.get("partypsn"); + String zzsj = (String) rs1.get("zzsj"); + String bz = (String) rs1.get("bz"); + + Listids = new ArrayList<>(); + ids.add(partyname); + Map rsmap = getNameById(ids); + + hi_psndoc_part_obj.put("partyname",rsmap.get(partyname)); + hi_psndoc_part_obj.put("partydate",partydate); + hi_psndoc_part_obj.put("partyunit",partyunit); + hi_psndoc_part_obj.put("partypsn",partypsn); + hi_psndoc_part_obj.put("partyduedate",data10str(zzsj));//转正时间 + hi_psndoc_part_obj.put("glbdef1",bz);//备注 + + hi_psndoc_part.add(hi_psndoc_part_obj); + } + } + return hi_psndoc_part; + } + + //hi_psndoc_enc 获取奖励情况记录 uf_rcrt_ec_enc + private JSONArray getEncInfoRecord(String collectid) { + JSONArray hi_psndoc_enc = new JSONArray(); + String sql = "select jlrq,jllx,jljg,jlcs,jlsy,jllb from uf_rcrt_ec_enc where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_enc_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null && (!"sfbqyzc".equals(key))) { + rs1.put(key,""); + } + }); + String jlrq = (String) rs1.get("jlrq"); + String jllx = (String) rs1.get("jllx"); + String jljg = (String) rs1.get("jljg"); + String jlcs = (String) rs1.get("jlcs"); + String jlsy = (String) rs1.get("jlsy"); + String jllb = (String) rs1.get("jllb"); + + Listids = new ArrayList<>(); + ids.add(jllb); + Map rsmap = getNameById(ids); + + hi_psndoc_enc_obj.put("encourdate",jlrq); + hi_psndoc_enc_obj.put("encourtype",jllx); + hi_psndoc_enc_obj.put("encourorg",jljg); + hi_psndoc_enc_obj.put("encourmeas",jlcs); + hi_psndoc_enc_obj.put("encourmatter",jlsy); + hi_psndoc_enc_obj.put("glbdef1",rsmap.get(jllb)); + + hi_psndoc_enc.add(hi_psndoc_enc_obj); + } + } + return hi_psndoc_enc; + } + + //hi_psndoc_glbdef3 安全生产考核证 uf_rcrt_ec_aqsckhz + private JSONArray getGlbdef3InfoRecord(String collectid) { + JSONArray hi_psndoc_glbdef3 = new JSONArray(); + String sql = "select aqsckhzmc,fzsj,zsbh,yxq,bz from uf_rcrt_ec_aqsckhz where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_glbdef3_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null && (!"sfbqyzc".equals(key))) { + rs1.put(key,""); + } + }); + String aqsckhzmc = (String) rs1.get("aqsckhzmc"); + String fzsj = (String) rs1.get("fzsj"); + String zsbh = (String) rs1.get("zsbh"); + String yxq = (String) rs1.get("yxq"); + String bz = (String) rs1.get("bz"); + + Listids = new ArrayList<>(); + ids.add(aqsckhzmc); + Map rsmap = getNameById(ids); + + hi_psndoc_glbdef3_obj.put("glbdef1",rsmap.get(aqsckhzmc)); + hi_psndoc_glbdef3_obj.put("glbdef2",fzsj); + hi_psndoc_glbdef3_obj.put("glbdef3",yxq); + hi_psndoc_glbdef3_obj.put("glbdef4",zsbh); + hi_psndoc_glbdef3_obj.put("glbdef5",bz); + hi_psndoc_glbdef3.add(hi_psndoc_glbdef3_obj); + } + } + return hi_psndoc_glbdef3; + } + + //hi_psndoc_glbdef2 岗位证书 uf_rcrt_ec_gwzs + private JSONArray getGlbdef2InfoRecord(String collectid) { + JSONArray hi_psndoc_glbdef2 = new JSONArray(); + String sql = "select gwzsmc,zsbh,zsqdsj,zsfjsj,bz from uf_rcrt_ec_gwzs where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_glbdef2_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null && (!"sfbqyzc".equals(key))) { + rs1.put(key,""); + } + }); + String gwzsmc = (String) rs1.get("gwzsmc"); + String zsbh = (String) rs1.get("zsbh"); + String zsqdsj = (String) rs1.get("zsqdsj"); + String zsfjsj = (String) rs1.get("zsfjsj"); + String bz = (String) rs1.get("bz"); + + Listids = new ArrayList<>(); + ids.add(gwzsmc); + Map rsmap = getNameById(ids); + + hi_psndoc_glbdef2_obj.put("glbdef1",rsmap.get(gwzsmc)); + hi_psndoc_glbdef2_obj.put("glbdef2",zsbh); + hi_psndoc_glbdef2_obj.put("glbdef3",zsqdsj); + hi_psndoc_glbdef2_obj.put("glbdef4",zsfjsj); + hi_psndoc_glbdef2_obj.put("glbdef5",bz); + hi_psndoc_glbdef2.add(hi_psndoc_glbdef2_obj); + } + } + return hi_psndoc_glbdef2; + } + + /** + * 根据id获取名称 + */ + private Map getNameById(List ids2) { + Listids = new ArrayList<>(); + if(CollectionUtil.isNotEmpty(ids2)) { + for(String f : ids2) { + if(f.length()>0) { + ids.add(f); + } + } + } + Map result = new HashMap<>(); + String s1 = ids.stream().collect(Collectors.joining(",")); + for(int i = 0;i> rs = jdbcTemplateresp.queryForList(sql); + for(int x = 0;x map = rs.get(x); + BigDecimal id = (BigDecimal)map.get("id"); + String ncc_name = (String)map.get("ncc_name"); + result.put(id.toString(),ncc_name); + } + return result; + } + + private static String data10str(String s) { + if(s.length()>10 && s.contains("-")) { + String f = s.substring(0,10); + return f; + }else { + return s; + } + } + + private JSONArray getFjByCollectId(String collectid) { + JSONArray array1 = new JSONArray(); + String sql = "select dyxlxlzxwz,dexlxlzxwz,dsxlxlzxwz,dsixlxlzxwz,gwz,zcz,zyzgz,aqsckhz,jqmgzp,sfzzp from uf_rcrt_entry_collect where id = "+collectid; + Map map = jdbcTemplate.queryForMap(sql); + String dyxlxlzxwz = map.get("dyxlxlzxwz") == null ? "0" : (String)map.get("dyxlxlzxwz"); + String dexlxlzxwz = map.get("dexlxlzxwz") == null ? "0" : (String)map.get("dexlxlzxwz"); + String dsxlxlzxwz = map.get("dsxlxlzxwz") == null ? "0" : (String)map.get("dsxlxlzxwz"); + String dsixlxlzxwz = map.get("dsixlxlzxwz") == null ? "0" : (String)map.get("dsixlxlzxwz"); + String gwz = map.get("gwz") == null ? "0" : (String)map.get("gwz"); + String zcz = map.get("zcz") == null ? "0" : (String)map.get("zcz"); + String zyzgz = map.get("zyzgz") == null ? "0" : (String)map.get("zyzgz"); + String aqsckhz = map.get("aqsckhz") == null ? "0" : (String)map.get("aqsckhz"); + String sfzzp = map.get("sfzzp") == null ? "0" : (String)map.get("sfzzp"); + String jqmgzp = map.get("jqmgzp") == null ? "0" : (String)map.get("jqmgzp"); + List file1 = getDxDt(dyxlxlzxwz);//第一学历学历证学位证 + List file2 =getDxDt(dexlxlzxwz);//第二学历学历证学位证 + List file3 = getDxDt(dsxlxlzxwz);//第三学历学历证学位证 + List file4 = getDxDt(dsixlxlzxwz);//第四学历学历证学位证 + List file5 = getDxDt(gwz);//岗位证 + List file6 = getDxDt(zcz);//职称证 + List file7 = getDxDt(zyzgz);//执业资格证 + List file8 = getDxDt(aqsckhz);//安全生产考核证 + List file9 = getDxDt(sfzzp);//身份证 + List file10 = getDxDt(jqmgzp);//近期免冠照片 + if(CollectionUtil.isNotEmpty(file1)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","第一学历学历证学位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file1) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + log.error("name::::::"+name1); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file2)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","第二学历学历证学位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file2) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file3)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","第三学历学历证学位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file3) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file4)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","第四学历学历证学位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file4) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file5)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","岗位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file5) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file6)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","职称证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file6) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file7)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","执业资格证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file7) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file8)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","安全生产考核证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file8) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file9)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","身份证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file9) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file10)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","近期免冠照片"); + JSONArray json1 = new JSONArray(); + for(FileData f : file10) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + return array1; + } + + + + public byte[] getByteData(InputStream input) { + try { + return org.apache.commons.io.IOUtils.toByteArray(input); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + private List getDxDt(String id) { + List rs = new ArrayList<>(); + try { + if(!"0".equals(id)) { + String ids[] = id.split(","); + for(String s1 : ids) { + FileData file1 = fileDownloadService.downloadFile(Long.parseLong(s1)); + if(file1.getFileObj()!=null && file1.getInputStream()!=null) { + rs.add(file1); + } + } + + } + }catch (Exception e){ + e.printStackTrace(); + log.error("获取附件错误:"+e.getMessage()); + } + return rs; + } +} \ No newline at end of file diff --git a/src/main/java/com/weaver/seconddev/sxjg/esb/ApplyPositionToNccQt.java b/src/main/java/com/weaver/seconddev/sxjg/esb/ApplyPositionToNccQt.java new file mode 100644 index 0000000..53815a9 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/esb/ApplyPositionToNccQt.java @@ -0,0 +1,1135 @@ +/** + * @use入职管理-待报道-同步nc入职人员基本信息--其他 + * @author 刘浩 + */ +package com.weaver.seconddev.sxjg.esb; + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.ebuilder.common.exception.BusinessException; +import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; +import com.weaver.eteams.file.client.file.FileData; +import com.weaver.file.ud.api.FileDownloadService; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfig; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfigResp; +import com.weaver.seconddev.sxjg.util.NccApiUtil; +import com.weaver.seconddev.sxjg.util.NccResultUtil; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.PropertiesConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Service; + +import java.io.*; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service("esb_applypositiontonccqt_howe") +public class ApplyPositionToNccQt implements EsbServerlessRpcRemoteInterface { + private static final Logger log = LoggerFactory.getLogger(ApplyPositionToNccQt.class); + private JdbcTemplate jdbcTemplate = new JdbcTemplate(EbDbDataSourceConfig.dbDataSource()); + private JdbcTemplate jdbcTemplateresp = new JdbcTemplate(EbDbDataSourceConfigResp.dbDataSource()); + private String b1; + private String b2; + private String b3; + private String b4; + private String b5; + private String b6; + private String b7; + private String b8; + private String b9; + private String b10; + private String b11; + + public ApplyPositionToNccQt() { + PropertiesConfiguration p = null; + try { + p = new PropertiesConfiguration(); + p.setEncoding("utf-8"); + p.setFileName("config/nccconfig.properties"); + p.load(); + this.b1 = p.getString("sxjgncc.b1"); + this.b2 = p.getString("sxjgncc.b2"); + this.b3 = p.getString("sxjgncc.b3"); + this.b4 = p.getString("sxjgncc.b4"); + this.b5 = p.getString("sxjgncc.b5"); + this.b6 = p.getString("sxjgncc.b6"); + this.b7 = p.getString("sxjgncc.b7"); + this.b8 = p.getString("sxjgncc.b8"); + this.b9 = p.getString("sxjgncc.b9"); + this.b10 = p.getString("sxjgncc.b10"); + this.b11 = p.getString("sxjgncc.b11"); + }catch (ConfigurationException e) { + throw new BusinessException("获取sxjg.properties配置文件失败,", e); + } + } + @Autowired + private FileDownloadService fileDownloadService; + @Override + public WeaResult> execute(Map params) { + Map finresult = new HashMap<>(); + finresult.put("code",200); + String rzid = (String) params.get("rzid");//姓名 + String name = (String) params.get("name");//姓名 + String idtype = (String) params.get("idtype");//证件类型 + String id = (String) params.get("id");//证件号码 + String pk_org = (String) params.get("pk_org");//所属组织 + String sex = (String) params.get("sex"); + String birthdate = (String) params.get("birthdate"); + String nativeplace = (String) params.get("nativeplace"); + String characterrpr = (String) params.get("characterrpr"); + String nationality = (String) params.get("nationality"); + String polity = (String) params.get("polity"); + String health = (String) params.get("health"); + String marital = (String) params.get("marital"); + String joinworkdate = (String) params.get("joinworkdate"); + String mobile = (String) params.get("mobile"); + String email = (String) params.get("email"); + String bloodtype = (String) params.get("bloodtype"); + String usedname = (String) params.get("usedname"); + String fileaddress = (String) params.get("fileaddress"); + String glbdef6 = (String) params.get("glbdef6"); +// String partyname = (String) params.get("partyname"); +// String partydate = (String) params.get("partydate"); +// String partyunit = (String) params.get("partyunit"); +// String partypsn = (String) params.get("partypsn"); +// String partyduedate = (String) params.get("partyduedate"); +// String glbdef1 = (String) params.get("glbdef1"); + String pk_org_work = (String) params.get("pk_org_work"); + String pk_psncl_work = (String) params.get("pk_psncl_work"); + String pk_dept_work = (String) params.get("pk_dept_work"); + String pk_post_work = (String) params.get("pk_post_work"); + String pk_postseries_work = (String) params.get("pk_postseries_work"); + String pk_job_work = (String) params.get("pk_job_work"); + String pk_jobgrade_work = (String) params.get("pk_jobgrade_work"); + String begindate_work = (String) params.get("begindate_work"); + String collectid = (String) params.get("collectid"); + String ygxs = (String)params.get("ygxs"); + String rdtrq = (String)params.get("rdtrq");//入党团日期 + if (collectid == null || collectid.length() == 0) { + finresult.put("code",500); + finresult.put("msg","当前人员并未进行信息采集"); + return WeaResult.success(finresult); + } + + String sql = "select ncc_pk from ft_ncczjlx where ncc_name = '"+idtype+"'"; + Map srrr = jdbcTemplateresp.queryForMap(sql); + String idtypePk =(String) srrr.get("ncc_pk"); + + JSONObject result = new JSONObject(); + JSONArray data = new JSONArray(); + JSONArray bd_psndoc = new JSONArray();//人员基本信息 + JSONObject bd_psndoc_obj = new JSONObject(); + JSONArray hi_psnorg = new JSONArray();//组织关系 + JSONObject hi_psnorg_obj = new JSONObject(); + JSONArray hi_psnjob = new JSONArray();//工作记录 + JSONObject hi_psnjob_obj = new JSONObject(); + + bd_psndoc_obj.put("name", name); + bd_psndoc_obj.put("idtype", idtype); + bd_psndoc_obj.put("id", id); + bd_psndoc_obj.put("pk_org", pk_org); + sex = "male".equals(sex) ? "1" : "2"; + bd_psndoc_obj.put("sex", sex); + bd_psndoc_obj.put("birthdate", data10str(birthdate)); + bd_psndoc_obj.put("nativeplace", nativeplace); + bd_psndoc_obj.put("characterrpr", characterrpr); + bd_psndoc_obj.put("nationality", nationality); + bd_psndoc_obj.put("polity", polity); + bd_psndoc_obj.put("health", health); + bd_psndoc_obj.put("marital", marital); + bd_psndoc_obj.put("joinworkdate", data10str(joinworkdate)); + bd_psndoc_obj.put("mobile", mobile); + bd_psndoc_obj.put("email", email); + bd_psndoc_obj.put("bloodtype", bloodtype); + bd_psndoc_obj.put("usedname", usedname); + bd_psndoc_obj.put("fileaddress", fileaddress); + bd_psndoc_obj.put("glbdef6", glbdef6); + bd_psndoc_obj.put("joinpolitydate",rdtrq); + bd_psndoc.add(bd_psndoc_obj); + + hi_psnorg_obj.put("begindate", data10str(begindate_work)); + if(ygxs.contains("其他")) { + hi_psnorg_obj.put("indocflag", "Y"); + }else { + hi_psnorg_obj.put("indocflag", "N"); + } + hi_psnorg.add(hi_psnorg_obj); + + + hi_psnjob_obj.put("pk_org", pk_org_work); + hi_psnjob_obj.put("pk_psncl", pk_psncl_work); + hi_psnjob_obj.put("pk_dept", pk_dept_work); + hi_psnjob_obj.put("pk_post", pk_post_work); + hi_psnjob_obj.put("pk_postseries", pk_postseries_work); + hi_psnjob_obj.put("pk_job", pk_job_work); + hi_psnjob_obj.put("pk_jobgrade", pk_jobgrade_work); + hi_psnjob_obj.put("begindate", data10str(begindate_work)); + hi_psnjob.add(hi_psnjob_obj); + + JSONArray hi_psndoc_work = getWorkRecord(collectid); + JSONArray hi_psndoc_edu = getEduInfoRecord(collectid); + JSONArray hi_psndoc_family = getFamilyInfoRecord(collectid); + JSONArray hi_psndoc_linkman =getJjchatInfoRecord(collectid); + JSONArray hi_psndoc_title = getPsTitleInfoRecord(collectid); + JSONArray hi_psndoc_nationdyty = getNationdutInfoRecord(collectid); + JSONArray hi_psndoc_glbdef1 = getGlbdef1InfoRecord(collectid); + JSONArray hi_psndoc_part = getPartInfoRecord(collectid); + JSONArray hi_psndoc_enc =getEncInfoRecord(collectid); + JSONArray hi_psndoc_glbdef3 =getGlbdef3InfoRecord(collectid); + JSONArray hi_psndoc_glbdef2 =getGlbdef2InfoRecord(collectid); +// JSONArray hi_psndoc_partylog = new JSONArray(); +// JSONObject hi_psndoc_partylog_obj = new JSONObject(); +// hi_psndoc_partylog_obj.put("partyname",partyname); +// hi_psndoc_partylog_obj.put("partydate",data10str(partydate)); +// hi_psndoc_partylog_obj.put("partyunit",partyunit); +// hi_psndoc_partylog_obj.put("partypsn",partypsn); +// hi_psndoc_partylog_obj.put("partyduedate",data10str(partyduedate)); +// hi_psndoc_partylog_obj.put("glbdef1",glbdef1); +// hi_psndoc_partylog.add(hi_psndoc_partylog_obj); + + JSONObject x1 = new JSONObject(); + x1.put("bd_psndoc",bd_psndoc); + x1.put("hi_psnorg",hi_psnorg); + x1.put("hi_psnjob",hi_psnjob); + x1.put("hi_psndoc_work",hi_psndoc_work); + x1.put("hi_psndoc_edu",hi_psndoc_edu); + x1.put("hi_psndoc_family",hi_psndoc_family); + x1.put("hi_psndoc_linkman",hi_psndoc_linkman); + x1.put("hi_psndoc_title",hi_psndoc_title); + x1.put("hi_psndoc_nationdyty",hi_psndoc_nationdyty); + x1.put("hi_psndoc_glbdef1",hi_psndoc_glbdef1); + // x1.put("hi_psndoc_part",hi_psndoc_part); + x1.put("hi_psndoc_enc",hi_psndoc_enc); + x1.put("hi_psndoc_glbdef3",hi_psndoc_glbdef3); + x1.put("hi_psndoc_glbdef2",hi_psndoc_glbdef2); + x1.put("hi_psndoc_partylog",hi_psndoc_part); + data.add(x1); + result.put("data",data); + + try { + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrhi/openAPI/personnelSync/entry"; + String rs11 = nccApiUtil.doJsonPost(url,token,result.toJSONString()); + NccResultUtil rs = new NccResultUtil(rs11); + if(rs.getResult()) { + //传附件 + log.error("howec:::::::传附件"); + JSONObject jsonObject2 = new JSONObject(); + jsonObject2.put("id",id); + jsonObject2.put("idtype",idtypePk); + JSONArray r11 = getFjByCollectId(collectid); + if(r11.size() == 0) { + sql = "update uf_rcrt_entry_manage_qtry set entry_status = '1' where id = "+rzid; + jdbcTemplate.execute(sql); + return WeaResult.success(finresult); + } + jsonObject2.put("data",r11); + nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + token = nccApiUtil.getToken(); + url = nccApiUtil.getBaseUrl()+"nccloud/api/hrhi/openAPI/attachment/upload"; + rs11 = nccApiUtil.doJsonPost(url,token,jsonObject2.toJSONString()); + rs = new NccResultUtil(rs11); + if(rs.getResult()){ + //更新入职状态未已入职 + sql = "update uf_rcrt_entry_manage_qtry set entry_status = '1' where id = "+rzid; + jdbcTemplate.execute(sql); + return WeaResult.success(finresult); + }else { + //更新附件同步异常 + sql = "update uf_rcrt_entry_manage_qtry set fjtbsfyc = '2' where id = "+rzid; + jdbcTemplate.execute(sql); + finresult.put("code",500); + finresult.put("msg",rs.getDescription()); + return WeaResult.success(finresult); + } + }else { + finresult.put("code",500); + finresult.put("msg",rs.getDescription()); + return WeaResult.success(finresult); + } + }catch (Exception e){ + e.printStackTrace(); + finresult.put("code",500); + finresult.put("msg",e.getMessage()); + log.error("howec:::::::::1:"+e.getMessage()); + return WeaResult.success(finresult); + } + } + + //获取履历记录数组 表:b2 + private JSONArray getWorkRecord(String collectid) { + JSONArray hi_psndoc_work = new JSONArray(); + + String sql = "select id,start_date,end_date,company,workdept,workjob,job_name,memo from "+b2+" where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_work_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null) { + rs1.put(key,""); + } + }); + String start_date = (String) rs1.get("start_date"); + String end_date = (String) rs1.get("end_date"); + String company = (String) rs1.get("company"); + String workdept = (String) rs1.get("workdept"); + String workjob = (String) rs1.get("workjob"); + String job_name = (String) rs1.get("job_name"); + String memo = (String) rs1.get("memo"); + hi_psndoc_work_obj.put("begindate", start_date); + hi_psndoc_work_obj.put("workcorp", company); + hi_psndoc_work_obj.put("enddate", end_date); + hi_psndoc_work_obj.put("workdept", workdept); + hi_psndoc_work_obj.put("workjob", workjob); + hi_psndoc_work_obj.put("workpost", job_name); + hi_psndoc_work_obj.put("memo", memo); + hi_psndoc_work.add(hi_psndoc_work_obj); + } + } + return hi_psndoc_work; + } + + //获取学历信息数组b1 + private JSONArray getEduInfoRecord(String collectid) { + JSONArray hi_psndoc_edu = new JSONArray(); + String sql = "select data_start,data_end,education,dnxl,school_name,emp_major,xz,xxfs,xw,xwsyrq,xwsydw,xlzsbh,xwzsbh,zgxl from "+b1+" where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_edu_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null && (!key.equals("zgxl"))) { + rs1.put(key,""); + } + }); + String data_start = (String) rs1.get("data_start"); + String data_end = (String) rs1.get("data_end"); + String education = (String) rs1.get("education"); + String dnxl = (String) rs1.get("dnxl"); + String school_name = (String) rs1.get("school_name"); + String emp_major = (String) rs1.get("emp_major"); + String xz = (String) rs1.get("xz"); + String xxfs = (String) rs1.get("xxfs"); + String xw = (String) rs1.get("xw"); + String xwsyrq = (String) rs1.get("xwsyrq"); + String xwsydw = (String) rs1.get("xwsydw"); + String xlzsbh = (String) rs1.get("xlzsbh"); + String xwzsbh = (String) rs1.get("xwzsbh"); + String zgxl = "N"; + if(rs1.get("zgxl") != null) { + long zgxl1 = (long) rs1.get("zgxl"); + zgxl = zgxl1 == 1l ? "Y" : "N"; + } + Listids = new ArrayList<>(); + ids.add(education); + ids.add(dnxl); + ids.add(xxfs); + ids.add(xw); + Map rsmap = getNameById(ids); + hi_psndoc_edu_obj.put("begindate",data_start); + hi_psndoc_edu_obj.put("education",rsmap.get(education)); + hi_psndoc_edu_obj.put("enddate",data_end); + hi_psndoc_edu_obj.put("school",school_name); + hi_psndoc_edu_obj.put("major",emp_major); + hi_psndoc_edu_obj.put("edusystem",xz); + hi_psndoc_edu_obj.put("studymode",rsmap.get(xxfs)); + hi_psndoc_edu_obj.put("pk_degree",rsmap.get(xw)); + hi_psndoc_edu_obj.put("degreedate",xwsyrq); + hi_psndoc_edu_obj.put("degreeunit",xwsydw); + hi_psndoc_edu_obj.put("educationctifcode",xlzsbh); + hi_psndoc_edu_obj.put("certifcode",xwzsbh); + hi_psndoc_edu_obj.put("lasteducation",zgxl); + hi_psndoc_edu_obj.put("glbdef1",rsmap.get(dnxl)); + hi_psndoc_edu.add(hi_psndoc_edu_obj); + } + } + return hi_psndoc_edu; + } + + //家庭信息数组b4 + private JSONArray getFamilyInfoRecord(String collectid) { + JSONArray hi_psndoc_family = new JSONArray(); + String sql = "select ybrgx,jtcyxm,sfzh,csrq,gzdw,zw,lxdh,zzmm,xl from "+b4+" where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_family_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null) { + rs1.put(key,""); + } + }); + String ybrgx = (String) rs1.get("ybrgx"); + String jtcyxm = (String) rs1.get("jtcyxm"); + String sfzh = (String) rs1.get("sfzh"); + String csrq = (String) rs1.get("csrq"); + String gzdw = (String) rs1.get("gzdw"); + String zw = (String) rs1.get("zw"); + String lxdh = (String) rs1.get("lxdh"); + String zzmm = (String) rs1.get("zzmm"); + String xl = (String) rs1.get("xl"); + + Listids = new ArrayList<>(); + ids.add(ybrgx); + ids.add(zzmm); + ids.add(xl); + Map rsmap = getNameById(ids); + hi_psndoc_family_obj.put("mem_relation",rsmap.get(ybrgx)); + hi_psndoc_family_obj.put("mem_name",jtcyxm); + hi_psndoc_family_obj.put("mem_birthday",csrq); + hi_psndoc_family_obj.put("mem_corp",gzdw); + hi_psndoc_family_obj.put("mem_job",zw); + hi_psndoc_family_obj.put("relaphone",lxdh); + hi_psndoc_family_obj.put("politics",rsmap.get(zzmm)); + hi_psndoc_family_obj.put("glbdef1",rsmap.get(xl)); + hi_psndoc_family_obj.put("glbdef2",sfzh); + hi_psndoc_family.add(hi_psndoc_family_obj); + } + } + return hi_psndoc_family; + } + + //紧急联系人 b3 + private JSONArray getJjchatInfoRecord(String collectid) { + JSONArray hi_psndoc_linkman = new JSONArray(); + String sql = "select linkman,mobile from "+b3+" where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_linkman_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null) { + rs1.put(key,""); + } + }); + String linkman = (String) rs1.get("linkman"); + String mobile = (String) rs1.get("mobile"); + hi_psndoc_linkman_obj.put("linkman",linkman); + hi_psndoc_linkman_obj.put("mobile",mobile); + hi_psndoc_linkman.add(hi_psndoc_linkman_obj); + } + } + return hi_psndoc_linkman; + } + + //hi_psndoc_title 职称信息 b5 + private JSONArray getPsTitleInfoRecord(String collectid) { + JSONArray hi_psndoc_title = new JSONArray(); + String sql = "select hdzc,pdrq,zcdj,zymc,pdjg,zsbh,zgzc,fzsj,pzwh from "+b5+" where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_title_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null && (!"zgzc".equals(key))) { + rs1.put(key,""); + } + }); + String hdzc = (String) rs1.get("hdzc"); + String pdrq = (String) rs1.get("pdrq"); + String zcdj = (String) rs1.get("zcdj"); + String zymc = (String) rs1.get("zymc"); + String pdjg = (String) rs1.get("pdjg"); + String zsbh = (String) rs1.get("zsbh"); + String zgzc1 = "N"; + String fzsj = (String) rs1.get("fzsj"); + String pzwh = (String) rs1.get("pzwh"); + if(rs1.get("zgzc")!=null) { + long zgzc = (long) rs1.get("zgzc"); + zgzc1 = zgzc == 0l ? "N":"Y"; + } + Listids = new ArrayList<>(); + ids.add(hdzc); + ids.add(zcdj); + Map rsmap = getNameById(ids); + hi_psndoc_title_obj.put("begindate",pdrq); + hi_psndoc_title_obj.put("pk_techposttitle",rsmap.get(hdzc)); + hi_psndoc_title_obj.put("titlerank",rsmap.get(zcdj)); + hi_psndoc_title_obj.put("assorg",pdjg); + hi_psndoc_title_obj.put("certifcode",zsbh); + hi_psndoc_title_obj.put("tiptop_flag",zgzc1); + hi_psndoc_title_obj.put("glbdef1",zymc); + hi_psndoc_title_obj.put("glbdef5",pzwh); + hi_psndoc_title_obj.put("glbdef2",fzsj); + hi_psndoc_title.add(hi_psndoc_title_obj); + } + } + return hi_psndoc_title; + } + + //hi_psndoc_nationdyty 获取职称资格 b6 + private JSONArray getNationdutInfoRecord(String collectid) { + JSONArray hi_psndoc_nationdyty = new JSONArray(); + String sql = "select zyzgdj,zygz,zsbh,pdjg,hdrq,zgzyzg from "+b6+" where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_nationdyty_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null && (!"zgzyzg".equals(key))) { + rs1.put(key,""); + } + }); + String zyzgdj = (String) rs1.get("zyzgdj"); + String zygz = (String) rs1.get("zygz"); + String zsbh = (String) rs1.get("zsbh"); + String pdjg = (String) rs1.get("pdjg"); + String hdrq = (String) rs1.get("hdrq"); + String zgzyzg1 = "N"; + if(rs1.get("zgzyzg")!=null) { + long zgzyzg = (long) rs1.get("zgzyzg"); + zgzyzg1 = zgzyzg == 0l ? "N":"Y"; + } + Listids = new ArrayList<>(); + ids.add(zyzgdj); + ids.add(zygz); + Map rsmap = getNameById(ids); + hi_psndoc_nationdyty_obj.put("workdate",hdrq); + hi_psndoc_nationdyty_obj.put("certificatenum",zsbh); + hi_psndoc_nationdyty_obj.put("worklevel",rsmap.get(zyzgdj)); + hi_psndoc_nationdyty_obj.put("occuptype",rsmap.get(zygz)); + hi_psndoc_nationdyty_obj.put("workunitname",pdjg); + hi_psndoc_nationdyty_obj.put("istop",zgzyzg1); + hi_psndoc_nationdyty.add(hi_psndoc_nationdyty_obj); + } + } + return hi_psndoc_nationdyty; + } + + //hi_psndoc_glbdef1 获取职业资格注册 b7 + private JSONArray getGlbdef1InfoRecord(String collectid) { + JSONArray hi_psndoc_glbdef1 = new JSONArray(); + String sql = "select zyzgmc,zyzgmcjzy,zyzgzsbh,zgzpzrq,zcbh,sfbqyzc,zgzjzrq,zxyzyjmc,zxyjzrq,zxezyjmc,zxejzrq,zxszyjmc,zxsjzrq,zxsizyjmc,zxsijzrq,zxwzyjmc,zxwjzrq,bz from "+b7+" where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_glbdef1_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null && (!"sfbqyzc".equals(key))) { + rs1.put(key,""); + } + }); + String zyzgmc = (String) rs1.get("zyzgmc");//职业资格名称 + String zyzgmcjzy = (String) rs1.get("zyzgmcjzy");//职业资格名称及专业 + String zyzgzsbh = (String) rs1.get("zyzgzsbh");//职业资格证书编号 + String zgzpzrq = (String) rs1.get("zgzpzrq");//格证批准日期 + String zcbh = (String) rs1.get("zcbh");// 注册编号 + long sfbqyzc1 = 0l; + if(rs1.get("sfbqyzc") != null) { + sfbqyzc1 = (long) rs1.get("sfbqyzc");//是否本企业注册 + } + String zgzjzrq = (String) rs1.get("zgzjzrq");//资格证截止日期 + String zxyzyjmc = (String) rs1.get("zxyzyjmc");//增项一专业及名称 + String zxyjzrq = (String) rs1.get("zxyjzrq");//增项一截止日期 + String zxezyjmc = (String) rs1.get("zxezyjmc");//增项二专业及名称 + String zxejzrq = (String) rs1.get("zxejzrq");//增项二截止日期 + String zxszyjmc = (String) rs1.get("zxszyjmc");//增项三专业及名称 + String zxsjzrq = (String) rs1.get("zxsjzrq");//增项三截止日期 + String zxsizyjmc = (String) rs1.get("zxsizyjmc");// 增项四专业及名称 + String zxsijzrq = (String) rs1.get("zxsijzrq");//项四截止日期 + String zxwzyjmc = (String) rs1.get("zxwzyjmc");// 增项五专业及名称 + String zxwjzrq = (String) rs1.get("zxwjzrq");// 增项五截止日期 + String bz = (String) rs1.get("bz");//备注 + + Listids = new ArrayList<>(); + ids.add(zyzgmc); + ids.add(zyzgmcjzy); + ids.add(zxyzyjmc); + ids.add(zxezyjmc); + ids.add(zxszyjmc); + ids.add(zxsizyjmc); + ids.add(zxwzyjmc); + Map rsmap = getNameById(ids); + String sfbqyzc = sfbqyzc1 == 0l ? "N":"Y"; + hi_psndoc_glbdef1_obj.put("glbdef1",rsmap.get(zyzgmc));//职业资格名称 + hi_psndoc_glbdef1_obj.put("glbdef2",rsmap.get(zyzgmcjzy));//职业资格名称及专业 + hi_psndoc_glbdef1_obj.put("glbdef3",zyzgzsbh);//职业资格证书编号 + hi_psndoc_glbdef1_obj.put("glbdef4",zgzpzrq);//资格证批准日期 + hi_psndoc_glbdef1_obj.put("glbdef5",zcbh);//注册编号 + hi_psndoc_glbdef1_obj.put("glbdef6",sfbqyzc);//是否本企业注册 + hi_psndoc_glbdef1_obj.put("glbdef7",zgzjzrq);//注册证书有效时间 + hi_psndoc_glbdef1_obj.put("glbdef8",rsmap.get(zxyzyjmc));//增项一专业及名称 + hi_psndoc_glbdef1_obj.put("glbdef9",zxyjzrq);//增项一截止日期 + hi_psndoc_glbdef1_obj.put("glbdef10",rsmap.get(zxezyjmc));//增项二专业及名称 + hi_psndoc_glbdef1_obj.put("glbdef11",zxejzrq);//增项二截止日期 + hi_psndoc_glbdef1_obj.put("glbdef12",rsmap.get(zxszyjmc));//增项三专业及名称 + hi_psndoc_glbdef1_obj.put("glbdef13",zxsjzrq);//增项三截止日期 + hi_psndoc_glbdef1_obj.put("glbdef14",rsmap.get(zxsizyjmc));//增项四专业及名称 + hi_psndoc_glbdef1_obj.put("glbdef15",zxsijzrq);//增项四截止日期 + hi_psndoc_glbdef1_obj.put("glbdef16",rsmap.get(zxwzyjmc));//增项五专业及名称 + hi_psndoc_glbdef1_obj.put("glbdef17",zxwjzrq);//增项五截止日期 + hi_psndoc_glbdef1_obj.put("glbdef19",bz);//备注 + + hi_psndoc_glbdef1.add(hi_psndoc_glbdef1_obj); + } + } + return hi_psndoc_glbdef1; + } + + //hi_psndoc_part 获取参加党派记 b11 + private JSONArray getPartInfoRecord(String collectid) { + JSONArray hi_psndoc_part = new JSONArray(); + String sql = "select partyname,partydate,partyunit,partypsn,zzsj,bz from "+b11+" where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_part_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null && (!"sfbqyzc".equals(key))) { + rs1.put(key,""); + } + }); + String partyname = (String) rs1.get("partyname"); + String partydate = (String) rs1.get("partydate"); + String partyunit = (String) rs1.get("partyunit"); + String partypsn = (String) rs1.get("partypsn"); + String zzsj = (String) rs1.get("zzsj"); + String bz = (String) rs1.get("bz"); + + Listids = new ArrayList<>(); + ids.add(partyname); + Map rsmap = getNameById(ids); + + hi_psndoc_part_obj.put("partyname",rsmap.get(partyname)); + hi_psndoc_part_obj.put("partydate",partydate); + hi_psndoc_part_obj.put("partyunit",partyunit); + hi_psndoc_part_obj.put("partypsn",partypsn); + hi_psndoc_part_obj.put("partyduedate",zzsj);//转正时间 + hi_psndoc_part_obj.put("glbdef1",bz);//备注 + + hi_psndoc_part.add(hi_psndoc_part_obj); + } + } + return hi_psndoc_part; + } + + //hi_psndoc_enc 获取奖励情况记录 b10 + private JSONArray getEncInfoRecord(String collectid) { + JSONArray hi_psndoc_enc = new JSONArray(); + String sql = "select jlrq,jllx,jljg,jlcs,jlsy,jllb from "+b10+" where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_enc_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null && (!"sfbqyzc".equals(key))) { + rs1.put(key,""); + } + }); + String jlrq = (String) rs1.get("jlrq"); + String jllx = (String) rs1.get("jllx"); + String jljg = (String) rs1.get("jljg"); + String jlcs = (String) rs1.get("jlcs"); + String jlsy = (String) rs1.get("jlsy"); + String jllb = (String) rs1.get("jllb"); + + Listids = new ArrayList<>(); + ids.add(jllb); + Map rsmap = getNameById(ids); + + hi_psndoc_enc_obj.put("encourdate",jlrq); + hi_psndoc_enc_obj.put("encourtype",jllx); + hi_psndoc_enc_obj.put("encourorg",jljg); + hi_psndoc_enc_obj.put("encourmeas",jlcs); + hi_psndoc_enc_obj.put("encourmatter",jlsy); + hi_psndoc_enc_obj.put("glbdef1",rsmap.get(jllb)); + + hi_psndoc_enc.add(hi_psndoc_enc_obj); + } + } + return hi_psndoc_enc; + } + + //hi_psndoc_glbdef3 安全生产考核证 b9 + private JSONArray getGlbdef3InfoRecord(String collectid) { + JSONArray hi_psndoc_glbdef3 = new JSONArray(); + String sql = "select aqsckhzmc,fzsj,zsbh,yxq,bz from "+b9+" where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_glbdef3_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null && (!"sfbqyzc".equals(key))) { + rs1.put(key,""); + } + }); + String aqsckhzmc = (String) rs1.get("aqsckhzmc"); + String fzsj = (String) rs1.get("fzsj"); + String zsbh = (String) rs1.get("zsbh"); + String yxq = (String) rs1.get("yxq"); + String bz = (String) rs1.get("bz"); + + Listids = new ArrayList<>(); + ids.add(aqsckhzmc); + Map rsmap = getNameById(ids); + + hi_psndoc_glbdef3_obj.put("glbdef1",rsmap.get(aqsckhzmc)); + hi_psndoc_glbdef3_obj.put("glbdef2",fzsj); + hi_psndoc_glbdef3_obj.put("glbdef3",yxq); + hi_psndoc_glbdef3_obj.put("glbdef4",zsbh); + hi_psndoc_glbdef3_obj.put("glbdef5",bz); + hi_psndoc_glbdef3.add(hi_psndoc_glbdef3_obj); + } + } + return hi_psndoc_glbdef3; + } + + //hi_psndoc_glbdef2 岗位证书 b8 + private JSONArray getGlbdef2InfoRecord(String collectid) { + JSONArray hi_psndoc_glbdef2 = new JSONArray(); + String sql = "select gwzsmc,zsbh,zsqdsj,zsfjsj,bz from "+b8+" where is_delete = '0' and form_data_id = '" + collectid + "'"; + List> rs = jdbcTemplate.queryForList(sql); + if (CollectionUtil.isNotEmpty(rs)) { + for (int i = 0; i < rs.size(); i++) { + JSONObject hi_psndoc_glbdef2_obj = new JSONObject(); + Map rs1 = rs.get(i); + rs1.forEach((key, value) -> { + if(value == null && (!"sfbqyzc".equals(key))) { + rs1.put(key,""); + } + }); + String gwzsmc = (String) rs1.get("gwzsmc"); + String zsbh = (String) rs1.get("zsbh"); + String zsqdsj = (String) rs1.get("zsqdsj"); + String zsfjsj = (String) rs1.get("zsfjsj"); + String bz = (String) rs1.get("bz"); + + Listids = new ArrayList<>(); + ids.add(gwzsmc); + Map rsmap = getNameById(ids); + + hi_psndoc_glbdef2_obj.put("glbdef1",rsmap.get(gwzsmc)); + hi_psndoc_glbdef2_obj.put("glbdef2",zsbh); + hi_psndoc_glbdef2_obj.put("glbdef3",zsqdsj); + hi_psndoc_glbdef2_obj.put("glbdef4",zsfjsj); + hi_psndoc_glbdef2_obj.put("glbdef5",bz); + hi_psndoc_glbdef2.add(hi_psndoc_glbdef2_obj); + } + } + return hi_psndoc_glbdef2; + } + + /** + * 根据id获取名称 + */ + private Map getNameById(List ids2) { + Listids = new ArrayList<>(); + if(CollectionUtil.isNotEmpty(ids2)) { + for(String f : ids2) { + if(f.length()>0) { + ids.add(f); + } + } + } + Map result = new HashMap<>(); + String s1 = ids.stream().collect(Collectors.joining(",")); + for(int i = 0;i> rs = jdbcTemplateresp.queryForList(sql); + for(int x = 0;x map = rs.get(x); + BigDecimal id = (BigDecimal)map.get("id"); + String ncc_name = (String)map.get("ncc_name"); + result.put(id.toString(),ncc_name); + } + return result; + } + + private static String data10str(String s) { + if(s.length()>10 && s.contains("-")) { + String f = s.substring(0,10); + return f; + }else { + return s; + } + } + + private JSONArray getFjByCollectId(String collectid) { + JSONArray array1 = new JSONArray(); + String sql = "select dyxlxlzxwz,dexlxlzxwz,dsxlxlzxwz,dsixlxlzxwz,gwz,zcz,zyzgz,aqsckhz,jqmgzp,sfzzp from uf_rcrt_entry_collect_qtry where id = "+collectid; + Map map = jdbcTemplate.queryForMap(sql); + String dyxlxlzxwz = map.get("dyxlxlzxwz") == null ? "0" : (String)map.get("dyxlxlzxwz"); + String dexlxlzxwz = map.get("dexlxlzxwz") == null ? "0" : (String)map.get("dexlxlzxwz"); + String dsxlxlzxwz = map.get("dsxlxlzxwz") == null ? "0" : (String)map.get("dsxlxlzxwz"); + String dsixlxlzxwz = map.get("dsixlxlzxwz") == null ? "0" : (String)map.get("dsixlxlzxwz"); + String gwz = map.get("gwz") == null ? "0" : (String)map.get("gwz"); + String zcz = map.get("zcz") == null ? "0" : (String)map.get("zcz"); + String zyzgz = map.get("zyzgz") == null ? "0" : (String)map.get("zyzgz"); + String aqsckhz = map.get("aqsckhz") == null ? "0" : (String)map.get("aqsckhz"); + String sfzzp = map.get("sfzzp") == null ? "0" : (String)map.get("sfzzp"); + String jqmgzp = map.get("jqmgzp") == null ? "0" : (String)map.get("jqmgzp"); + List file1 = getDxDt(dyxlxlzxwz);//第一学历学历证学位证 + List file2 =getDxDt(dexlxlzxwz);//第二学历学历证学位证 + List file3 = getDxDt(dsxlxlzxwz);//第三学历学历证学位证 + List file4 = getDxDt(dsixlxlzxwz);//第四学历学历证学位证 + List file5 = getDxDt(gwz);//岗位证 + List file6 = getDxDt(zcz);//职称证 + List file7 = getDxDt(zyzgz);//执业资格证 + List file8 = getDxDt(aqsckhz);//安全生产考核证 + List file9 = getDxDt(sfzzp);//身份证 + List file10 = getDxDt(jqmgzp);//近期免冠照片 + if(CollectionUtil.isNotEmpty(file1)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","第一学历学历证学位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file1) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + log.error("name::::::"+name1); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file2)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","第二学历学历证学位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file2) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file3)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","第三学历学历证学位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file3) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file4)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","第四学历学历证学位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file4) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file5)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","岗位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file5) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file6)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","职称证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file6) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file7)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","执业资格证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file7) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file8)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","安全生产考核证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file8) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file9)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","身份证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file9) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file10)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","近期免冠照片"); + JSONArray json1 = new JSONArray(); + for(FileData f : file10) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + return array1; + } + + private byte[] getByteData(InputStream stream){ + byte[] binaryData; + try{ + // 创建字节数组输出流 + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + // 定义缓冲区大小(根据需要调整) + byte[] buffer = new byte[1024]; + int bytesRead; + while ((bytesRead = stream.read(buffer)) != -1) { + // 写入到字节数组输出流 + baos.write(buffer, 0, bytesRead); + } + // 获取转换后的二进制数据 + binaryData = baos.toByteArray(); + // 关闭输入流和输出流 + stream.close(); + baos.close(); + return binaryData; + } catch (Exception e) { + e.printStackTrace(); + log.error("下载输出文件流失败"); + } finally { + try { + if(stream != null){ + stream.close(); + } + } catch (Exception e) { + log.error("inputStream 关闭资源失败", e); + } + } + return null; + } + + private List getDxDt(String id) { + List rs = new ArrayList<>(); + try { + if(!"0".equals(id)) { + String ids[] = id.split(","); + for(String s1 : ids) { + log.error("11111111111111111"); + FileData file1 = fileDownloadService.downloadFile(Long.parseLong(s1)); + if(file1.getFileObj()!=null && file1.getInputStream()!=null) { + log.error("222222222222"); + rs.add(file1); + } + } + + } + }catch (Exception e){ + e.printStackTrace(); + log.error("获取附件错误:"+e.getMessage()); + } + return rs; + } +} \ No newline at end of file diff --git a/src/main/java/com/weaver/seconddev/sxjg/esb/ErrorfjResendToNcc.java b/src/main/java/com/weaver/seconddev/sxjg/esb/ErrorfjResendToNcc.java new file mode 100644 index 0000000..500f5f3 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/esb/ErrorfjResendToNcc.java @@ -0,0 +1,427 @@ +/** + * @use附件重发 + * @author 刘浩 + */ +package com.weaver.seconddev.sxjg.esb; + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; +import com.weaver.eteams.file.client.file.FileData; +import com.weaver.file.ud.api.FileDownloadService; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfig; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfigResp; +import com.weaver.seconddev.sxjg.util.NccApiUtil; +import com.weaver.seconddev.sxjg.util.NccResultUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service("esb_errorresend_howe") +public class ErrorfjResendToNcc implements EsbServerlessRpcRemoteInterface { + private static final Logger log = LoggerFactory.getLogger(ErrorfjResendToNcc.class); + private JdbcTemplate jdbcTemplate = new JdbcTemplate(EbDbDataSourceConfig.dbDataSource()); + private JdbcTemplate jdbcTemplateresp = new JdbcTemplate(EbDbDataSourceConfigResp.dbDataSource()); + + @Autowired + private FileDownloadService fileDownloadService; + @Override + public WeaResult> execute(Map params) { + Map finresult = new HashMap<>(); + finresult.put("code",200); + String idtype = (String) params.get("idtype");//证件类型 + String id = (String) params.get("id");//证件号码 + String rzid = (String) params.get("rzid");//入职id + String collectid = (String) params.get("collectid"); + if (collectid == null || collectid.length() == 0) { + finresult.put("code",500); + finresult.put("msg","当前人员并未进行信息采集"); + return WeaResult.success(finresult); + } + String sql = "select ncc_pk from ft_ncczjlx where ncc_name = '"+idtype+"'"; + Map srrr = jdbcTemplateresp.queryForMap(sql); + String idtypePk =(String) srrr.get("ncc_pk"); + try { + //传附件 + log.error("howec:::::::传附件"); + JSONObject jsonObject2 = new JSONObject(); + jsonObject2.put("id",id); + jsonObject2.put("idtype",idtypePk); + JSONArray r11 = getFjByCollectId(collectid); + if(r11.size() == 0) { + return WeaResult.success(finresult); + } + jsonObject2.put("data",r11); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrhi/openAPI/attachment/upload"; + String rs11 = nccApiUtil.doJsonPost(url,token,jsonObject2.toJSONString()); + NccResultUtil rs = new NccResultUtil(rs11); + if(rs.getResult()){ + sql = "update uf_rcrt_entry_manage set fjtbsfyc = '0', entry_status = '1' where id = "+rzid; + jdbcTemplate.execute(sql); + return WeaResult.success(finresult); + }else { + finresult.put("code",500); + finresult.put("msg",rs.getDescription()); + return WeaResult.success(finresult); + } + }catch (Exception e){ + e.printStackTrace(); + finresult.put("code",500); + finresult.put("msg",e.getMessage()); + return WeaResult.success(finresult); + } + } + + private JSONArray getFjByCollectId(String collectid) { + JSONArray array1 = new JSONArray(); + String sql = "select dyxlxlzxwz,dexlxlzxwz,dsxlxlzxwz,dsixlxlzxwz,gwz,zcz,zyzgz,aqsckhz,jqmgzp,sfzzp from uf_rcrt_entry_collect where id = "+collectid; + Map map = jdbcTemplate.queryForMap(sql); + String dyxlxlzxwz = map.get("dyxlxlzxwz") == null ? "0" : (String)map.get("dyxlxlzxwz"); + String dexlxlzxwz = map.get("dexlxlzxwz") == null ? "0" : (String)map.get("dexlxlzxwz"); + String dsxlxlzxwz = map.get("dsxlxlzxwz") == null ? "0" : (String)map.get("dsxlxlzxwz"); + String dsixlxlzxwz = map.get("dsixlxlzxwz") == null ? "0" : (String)map.get("dsixlxlzxwz"); + String gwz = map.get("gwz") == null ? "0" : (String)map.get("gwz"); + String zcz = map.get("zcz") == null ? "0" : (String)map.get("zcz"); + String zyzgz = map.get("zyzgz") == null ? "0" : (String)map.get("zyzgz"); + String aqsckhz = map.get("aqsckhz") == null ? "0" : (String)map.get("aqsckhz"); + String sfzzp = map.get("sfzzp") == null ? "0" : (String)map.get("sfzzp"); + String jqmgzp = map.get("jqmgzp") == null ? "0" : (String)map.get("jqmgzp"); + List file1 = getDxDt(dyxlxlzxwz);//第一学历学历证学位证 + List file2 =getDxDt(dexlxlzxwz);//第二学历学历证学位证 + List file3 = getDxDt(dsxlxlzxwz);//第三学历学历证学位证 + List file4 = getDxDt(dsixlxlzxwz);//第四学历学历证学位证 + List file5 = getDxDt(gwz);//岗位证 + List file6 = getDxDt(zcz);//职称证 + List file7 = getDxDt(zyzgz);//执业资格证 + List file8 = getDxDt(aqsckhz);//安全生产考核证 + List file9 = getDxDt(sfzzp);//身份证 + List file10 = getDxDt(jqmgzp);//近期免冠照片 + if(CollectionUtil.isNotEmpty(file1)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","第一学历学历证学位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file1) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + log.error("name::::::"+name1); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file2)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","第二学历学历证学位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file2) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file3)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","第三学历学历证学位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file3) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file4)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","第四学历学历证学位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file4) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file5)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","岗位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file5) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file6)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","职称证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file6) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file7)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","执业资格证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file7) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file8)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","安全生产考核证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file8) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file9)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","身份证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file9) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file10)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","近期免冠照片"); + JSONArray json1 = new JSONArray(); + for(FileData f : file10) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + return array1; + } + + + + public byte[] getByteData(InputStream input) { + try { + return org.apache.commons.io.IOUtils.toByteArray(input); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + private List getDxDt(String id) { + List rs = new ArrayList<>(); + try { + if(!"0".equals(id)) { + String ids[] = id.split(","); + for(String s1 : ids) { + FileData file1 = fileDownloadService.downloadFile(Long.parseLong(s1)); + if(file1.getFileObj()!=null && file1.getInputStream()!=null) { + rs.add(file1); + } + } + + } + }catch (Exception e){ + e.printStackTrace(); + log.error("获取附件错误:"+e.getMessage()); + } + return rs; + } +} \ No newline at end of file diff --git a/src/main/java/com/weaver/seconddev/sxjg/esb/ErrorfjResendToNccQt.java b/src/main/java/com/weaver/seconddev/sxjg/esb/ErrorfjResendToNccQt.java new file mode 100644 index 0000000..4ebb87a --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/esb/ErrorfjResendToNccQt.java @@ -0,0 +1,427 @@ +/** + * @use附件重发 ---其他入职 + * @author 刘浩 + */ +package com.weaver.seconddev.sxjg.esb; + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; +import com.weaver.eteams.file.client.file.FileData; +import com.weaver.file.ud.api.FileDownloadService; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfig; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfigResp; +import com.weaver.seconddev.sxjg.util.NccApiUtil; +import com.weaver.seconddev.sxjg.util.NccResultUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service("esb_errorresendqt_howe") +public class ErrorfjResendToNccQt implements EsbServerlessRpcRemoteInterface { + private static final Logger log = LoggerFactory.getLogger(ErrorfjResendToNccQt.class); + private JdbcTemplate jdbcTemplate = new JdbcTemplate(EbDbDataSourceConfig.dbDataSource()); + private JdbcTemplate jdbcTemplateresp = new JdbcTemplate(EbDbDataSourceConfigResp.dbDataSource()); + + @Autowired + private FileDownloadService fileDownloadService; + @Override + public WeaResult> execute(Map params) { + Map finresult = new HashMap<>(); + finresult.put("code",200); + String idtype = (String) params.get("idtype");//证件类型 + String id = (String) params.get("id");//证件号码 + String rzid = (String) params.get("rzid");//入职id + String collectid = (String) params.get("collectid"); + if (collectid == null || collectid.length() == 0) { + finresult.put("code",500); + finresult.put("msg","当前人员并未进行信息采集"); + return WeaResult.success(finresult); + } + String sql = "select ncc_pk from ft_ncczjlx where ncc_name = '"+idtype+"'"; + Map srrr = jdbcTemplateresp.queryForMap(sql); + String idtypePk =(String) srrr.get("ncc_pk"); + try { + //传附件 + log.error("howec:::::::传附件"); + JSONObject jsonObject2 = new JSONObject(); + jsonObject2.put("id",id); + jsonObject2.put("idtype",idtypePk); + JSONArray r11 = getFjByCollectId(collectid); + if(r11.size() == 0) { + return WeaResult.success(finresult); + } + jsonObject2.put("data",r11); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrhi/openAPI/attachment/upload"; + String rs11 = nccApiUtil.doJsonPost(url,token,jsonObject2.toJSONString()); + NccResultUtil rs = new NccResultUtil(rs11); + if(rs.getResult()){ + sql = "update uf_rcrt_entry_manage_qtry set fjtbsfyc = '0',entry_status = '1' where id = "+rzid; + jdbcTemplate.execute(sql); + return WeaResult.success(finresult); + }else { + finresult.put("code",500); + finresult.put("msg",rs.getDescription()); + return WeaResult.success(finresult); + } + }catch (Exception e){ + e.printStackTrace(); + finresult.put("code",500); + finresult.put("msg",e.getMessage()); + return WeaResult.success(finresult); + } + } + + private JSONArray getFjByCollectId(String collectid) { + JSONArray array1 = new JSONArray(); + String sql = "select dyxlxlzxwz,dexlxlzxwz,dsxlxlzxwz,dsixlxlzxwz,gwz,zcz,zyzgz,aqsckhz,jqmgzp,sfzzp from uf_rcrt_entry_collect_qtry where id = "+collectid; + Map map = jdbcTemplate.queryForMap(sql); + String dyxlxlzxwz = map.get("dyxlxlzxwz") == null ? "0" : (String)map.get("dyxlxlzxwz"); + String dexlxlzxwz = map.get("dexlxlzxwz") == null ? "0" : (String)map.get("dexlxlzxwz"); + String dsxlxlzxwz = map.get("dsxlxlzxwz") == null ? "0" : (String)map.get("dsxlxlzxwz"); + String dsixlxlzxwz = map.get("dsixlxlzxwz") == null ? "0" : (String)map.get("dsixlxlzxwz"); + String gwz = map.get("gwz") == null ? "0" : (String)map.get("gwz"); + String zcz = map.get("zcz") == null ? "0" : (String)map.get("zcz"); + String zyzgz = map.get("zyzgz") == null ? "0" : (String)map.get("zyzgz"); + String aqsckhz = map.get("aqsckhz") == null ? "0" : (String)map.get("aqsckhz"); + String sfzzp = map.get("sfzzp") == null ? "0" : (String)map.get("sfzzp"); + String jqmgzp = map.get("jqmgzp") == null ? "0" : (String)map.get("jqmgzp"); + List file1 = getDxDt(dyxlxlzxwz);//第一学历学历证学位证 + List file2 =getDxDt(dexlxlzxwz);//第二学历学历证学位证 + List file3 = getDxDt(dsxlxlzxwz);//第三学历学历证学位证 + List file4 = getDxDt(dsixlxlzxwz);//第四学历学历证学位证 + List file5 = getDxDt(gwz);//岗位证 + List file6 = getDxDt(zcz);//职称证 + List file7 = getDxDt(zyzgz);//执业资格证 + List file8 = getDxDt(aqsckhz);//安全生产考核证 + List file9 = getDxDt(sfzzp);//身份证 + List file10 = getDxDt(jqmgzp);//近期免冠照片 + if(CollectionUtil.isNotEmpty(file1)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","第一学历学历证学位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file1) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + log.error("name::::::"+name1); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file2)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","第二学历学历证学位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file2) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file3)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","第三学历学历证学位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file3) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file4)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","第四学历学历证学位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file4) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file5)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","岗位证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file5) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file6)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","职称证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file6) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file7)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","执业资格证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file7) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file8)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","安全生产考核证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file8) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file9)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","身份证"); + JSONArray json1 = new JSONArray(); + for(FileData f : file9) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + if(CollectionUtil.isNotEmpty(file10)) { + JSONObject rs1 = new JSONObject(); + rs1.put("file_name","近期免冠照片"); + JSONArray json1 = new JSONArray(); + for(FileData f : file10) { + JSONObject r1 = new JSONObject(); + String filename = ""; + String name1 = f.getFileObj().getName(); + if(name1.contains(".")) { + String names[] = name1.split("\\."); + filename = names[names.length-1]; + } + if(filename.length() > 0) { + r1.put("file_type",filename.toLowerCase()); + }else{ + r1.put("file_type",f.getFileObj().getType()); + } + log.error("howec:::::::::xxxxx21:"+f.getFileObj().getName()); + log.error("howec:::::::::xxxxx1:"+f.getFileObj().getType()); + log.error("howec:::::::::xxxxx2:"+f.getLoadUrl()); + InputStream stream1 = f.getInputStream(); + byte[] a = getByteData(stream1); + r1.put("filebytes",a); + json1.add(r1); + } + rs1.put("filebytes_array",json1); + array1.add(rs1); + } + return array1; + } + + + + public byte[] getByteData(InputStream input) { + try { + return org.apache.commons.io.IOUtils.toByteArray(input); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + private List getDxDt(String id) { + List rs = new ArrayList<>(); + try { + if(!"0".equals(id)) { + String ids[] = id.split(","); + for(String s1 : ids) { + FileData file1 = fileDownloadService.downloadFile(Long.parseLong(s1)); + if(file1.getFileObj()!=null && file1.getInputStream()!=null) { + rs.add(file1); + } + } + + } + }catch (Exception e){ + e.printStackTrace(); + log.error("获取附件错误:"+e.getMessage()); + } + return rs; + } +} \ No newline at end of file diff --git a/src/main/java/com/weaver/seconddev/sxjg/esb/FrCompanyApplyToNcc.java b/src/main/java/com/weaver/seconddev/sxjg/esb/FrCompanyApplyToNcc.java new file mode 100644 index 0000000..9187c05 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/esb/FrCompanyApplyToNcc.java @@ -0,0 +1,142 @@ +package com.weaver.seconddev.sxjg.esb; + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfig; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfigResp; +import com.weaver.seconddev.sxjg.util.NccApiUtil; +import com.weaver.seconddev.sxjg.util.NccResultUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 法人单位报道定调薪 + */ +@Service("esb_Frcompanyapply_howe") +public class FrCompanyApplyToNcc implements EsbServerlessRpcRemoteInterface { + private static final Logger log = LoggerFactory.getLogger(FrCompanyApplyToNcc.class); + private JdbcTemplate jdbcTemplateresp = new JdbcTemplate(EbDbDataSourceConfigResp.dbDataSource()); + + private JdbcTemplate jdbcTemplate = new JdbcTemplate(EbDbDataSourceConfig.dbDataSource()); + @Override + public WeaResult> execute(Map params) { + Map finresult = new HashMap<>(); + finresult.put("code",200); + String pk_dept = (String) params.get("pk_dept"); + String pk_jobgrade = (String) params.get("pk_jobgrade"); + String jobglbdef1 = (String) params.get("jobglbdef1"); + String joinworkdate = (String) params.get("joinworkdate"); + String pk_org = (String) params.get("pk_org"); + String bsid = (String)params.get("bsid"); + String username = (String)params.get("username"); + String usercode = (String)params.get("usercode"); + String applyer = (String) params.get("applyer"); + String usedate = (String) params.get("usedate"); + String zryda = (String) params.get("zryda"); + try { + + //同步明细 + JSONObject r1 = new JSONObject(); + String state = "1"; + JSONArray array = getDataArray(bsid,username,usercode,usedate); + if(array == null || array.size() == 0) { + state = "0"; + } + if(zryda.equals("是")) { + if(array == null || array.size() == 0) { + return WeaResult.success(finresult); + } + state = "2"; + } + r1.put("pk_psndoc",applyer); + r1.put("state",state); + r1.put("pk_dept",pk_dept); + r1.put("pk_jobgrade",pk_jobgrade); + r1.put("jobglbdef1",jobglbdef1); + r1.put("joinworkdate",joinworkdate); + r1.put("pk_org",pk_org); + r1.put("data",array); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrwa/customermanage/adjust/import"; + String rs11 = nccApiUtil.doJsonPost(url,token,r1.toJSONString()); + NccResultUtil rs = new NccResultUtil(rs11); + if(rs.getResult()) { + return WeaResult.success(finresult); + }else { + finresult.put("code",500); + finresult.put("msg",rs.getDescription()); + return WeaResult.success(finresult); + } + }catch (Exception e) { + e.printStackTrace(); + finresult.put("code",500); + finresult.put("msg",e.getMessage()); + log.error("howec:::::::::1:"+e.getMessage()); + return WeaResult.success(finresult); + } + } + + private JSONArray getDataArray(String bsid,String username,String usercode,String usedate) { + JSONArray jsonArray = new JSONArray(); + String sql = "select dataid from wfc_form_data wfd where requestid = "+bsid; + Map rs = jdbcTemplateresp.queryForMap(sql); + long dataid = (long)rs.get("dataid"); + sql = "select waitem,xzxmmc,pk_wa_crt,negotiation,wa_seclv,money,memo from ft_frdw_bddtx where FORM_DATA_ID = "+dataid+" and tbddzwh = '1'"; + log.error("howec::::::::3"+sql); + List> rs1 = jdbcTemplateresp.queryForList(sql); + if(CollectionUtil.isNotEmpty(rs1)) { + for(Map r : rs1) { + String xzxmmc = (String)r.get("xzxmmc");//薪资项目名称 + long negotiation = (long)r.get("negotiation");//谈判工资 + String xbdb = ""; + if(r.get("wa_seclv")!=null) { + String id1 = (String)r.get("wa_seclv"); + if(id1.length()>0) { + sql = "select levelname from uf_wa_prmlv where id = "+id1; + Map rso= jdbcTemplate.queryForMap(sql); + xbdb = (String)rso.get("levelname"); + } + } + String money = ""; + if(r.get("money")!=null) { + money = String.valueOf(r.get("money"));//金额 + } + String memo=(String)r.get("memo");//备注 + //通过薪资标准表id获取薪资标准名称 + String pk_wa_crt_name = ""; + if(r.get("pk_wa_crt") != null) { + String pk_wa_crt = String.valueOf(r.get("pk_wa_crt"));//薪资标准表 + sql = "select name from uf_wa_grade where id = "+pk_wa_crt; + Map rso= jdbcTemplate.queryForMap(sql); + pk_wa_crt_name = (String)rso.get("name"); + } + String negotiation_wage = negotiation == 0l ? "N" : "Y"; + JSONObject dataobj = new JSONObject(); + dataobj.put("negotiation_wage",negotiation_wage); + dataobj.put("begindate",usedate); + dataobj.put("wa_prmlv",xbdb);//薪资级别 +// dataobj.put("wa_seclv","");//薪档级别 + dataobj.put("nmoney",money); + dataobj.put("waflag","Y"); + dataobj.put("pk_wa_item_showname",xzxmmc); + dataobj.put("pk_wa_grd_showname",pk_wa_crt_name); + dataobj.put("psnCode",usercode); + dataobj.put("psnName",username); + dataobj.put("vnote",memo); + jsonArray.add(dataobj); + } + } + return jsonArray; + } +} diff --git a/src/main/java/com/weaver/seconddev/sxjg/esb/PayslipPageQuery.java b/src/main/java/com/weaver/seconddev/sxjg/esb/PayslipPageQuery.java new file mode 100644 index 0000000..b2d9194 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/esb/PayslipPageQuery.java @@ -0,0 +1,40 @@ +package com.weaver.seconddev.sxjg.esb; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; +import com.weaver.seconddev.sxjg.util.NccApiUtil; +//import com.weaver.seconddev.sxjg.util.NccResultUtil; +//import org.junit.Test; +import org.springframework.stereotype.Service; + +import java.util.Map; + +/** + * 工资条查询ncc + */ +@Service("payslippagequery_howe") +public class PayslipPageQuery implements EsbServerlessRpcRemoteInterface { + @Override + public WeaResult> execute(Map params) { + return null; + } + +// @Test +// public void Test() throws Exception { +// JSONObject r1 = new JSONObject(); +// JSONArray r2 = new JSONArray(); +// JSONObject r3 = new JSONObject(); +// r3.put("pk_psndoc","0001A2100000003FMWBU"); +// r2.add(r3); +// r1.put("data",r2); +// +// NccApiUtil nccApiUtil = new NccApiUtil(); +// nccApiUtil.init(); +// String token = nccApiUtil.getToken(); +// String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/payslipSync/entry"; +// String rs11 = nccApiUtil.doJsonPost(url,token,r1.toJSONString()); +// System.out.println(rs11); +// } +} diff --git a/src/main/java/com/weaver/seconddev/sxjg/esb/PersonDdToNcc.java b/src/main/java/com/weaver/seconddev/sxjg/esb/PersonDdToNcc.java new file mode 100644 index 0000000..2c68055 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/esb/PersonDdToNcc.java @@ -0,0 +1,210 @@ +package com.weaver.seconddev.sxjg.esb; + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfig; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfigResp; +import com.weaver.seconddev.sxjg.util.NccApiUtil; +import com.weaver.seconddev.sxjg.util.NccResultUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 人员调动流程toncc + */ +@Service("esb_PersonDdToNcc_howe") +public class PersonDdToNcc implements EsbServerlessRpcRemoteInterface { + private static final Logger log = LoggerFactory.getLogger(PersonDdToNcc.class); + private JdbcTemplate jdbcTemplateresp = new JdbcTemplate(EbDbDataSourceConfigResp.dbDataSource()); + private JdbcTemplate jdbcTemplate = new JdbcTemplate(EbDbDataSourceConfig.dbDataSource()); + @Override + public WeaResult> execute(Map params) { + Map finresult = new HashMap<>(); + finresult.put("code",200); + String pk_org = (String) params.get("pk_org");//所属组织(调配后的组织) + String pk_psndoc = (String) params.get("pk_psndoc");//员工pk值 + String begindate = (String) params.get("begindate");//开始时间 + String pk_psncl = (String) params.get("pk_psncl");//人员类别 + if(pk_psncl.contains("_")) { + pk_psncl = pk_psncl.split("_")[1]; + } + String pk_dept = (String) params.get("pk_dept");//部门pk + String pk_post = (String) params.get("pk_post");//岗位 + String pk_postseries = (String) params.get("pk_postseries");//岗位序列 + String pk_job = (String) params.get("pk_job");//职务 + String pk_jobgrade = (String) params.get("pk_jobgrade");//职级 + String jobglbdef1 = (String) params.get("jobglbdef1");//职级开始时间 + String trnsreason = (String) params.get("trnsreason");//异动原因 + String memo = (String) params.get("memo");//备注 + String isSyncResume = (String) params.get("isSyncResume");//同步履历 + String isSyncPartTime = (String) params.get("isSyncPartTime");//结束兼职 + isSyncResume = "1".equals(isSyncResume) ? "Y" : "N"; + isSyncPartTime = "1".equals(isSyncPartTime) ? "Y" : "N"; + String bsid = (String)params.get("bsid"); + String username = (String)params.get("username"); + String usercode = (String)params.get("usercode"); + + + JSONObject jsonObject = new JSONObject(); + JSONArray jsonArray = new JSONArray(); + JSONObject obj1 = new JSONObject(); + obj1.put("pk_org",pk_org); + obj1.put("pk_psndoc",pk_psndoc); + obj1.put("begindate",begindate); + obj1.put("pk_psncl",pk_psncl); + obj1.put("pk_dept",pk_dept); + obj1.put("pk_post",pk_post); + obj1.put("pk_postseries",pk_postseries); + obj1.put("pk_job",pk_job); + obj1.put("pk_jobgrade",pk_jobgrade); + obj1.put("jobglbdef1",jobglbdef1); + obj1.put("trnsreason",trnsreason); + obj1.put("memo",memo); + obj1.put("isSyncResume",isSyncResume); + obj1.put("isSyncPartTime",isSyncPartTime); + jsonArray.add(obj1); + jsonObject.put("data",jsonArray); + try { + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/transfer/sync"; + String rs11 = ""; + NccResultUtil rs = null; + if(!judgeInterfaceStatus(bsid)) {//接口一 并没有执行成功过 + log.error("howec-3-7:接口一并没有被执行过,执行接口一"); + rs11 = nccApiUtil.doJsonPost(url,token,jsonObject.toJSONString()); + rs = new NccResultUtil(rs11); + }else {//接口1已经执行成功过 + log.error("howec-3-7:接口一已经被成功执行过,直接执行接口二"); + rs = new NccResultUtil(); + rs.setResult(true); + } + if(rs.getResult()) { + updateJkZt(bsid);//更新【接口1】成功 + //同步明细 + JSONObject r1 = new JSONObject(); + String state = "2"; + r1.put("state",state); + r1.put("pk_org",pk_org); + JSONArray array = getDataArray(bsid,username,usercode); + if(array == null || array.size() == 0) { + return WeaResult.success(finresult); + } + r1.put("data",array); + nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + token = nccApiUtil.getToken(); + url = nccApiUtil.getBaseUrl()+"nccloud/api/hrwa/customermanage/adjust/import"; + rs11 = nccApiUtil.doJsonPost(url,token,r1.toJSONString()); + rs = new NccResultUtil(rs11); + if(rs.getResult()) { + return WeaResult.success(finresult); + }else { + finresult.put("code",500); + finresult.put("msg",rs.getDescription()); + return WeaResult.success(finresult); + } + }else { + finresult.put("code",500); + finresult.put("msg",rs.getDescription()); + return WeaResult.success(finresult); + } + }catch (Exception e){ + e.printStackTrace(); + finresult.put("code",500); + finresult.put("msg",e.getMessage()); + log.error("howec:::::::::1:"+e.getMessage()); + return WeaResult.success(finresult); + } + } + + /** + * @use:更新接口状态为2 + */ + private void updateJkZt(String bsid) { + String sql = "select dataid from wfc_form_data wfd where requestid = "+bsid; + Map rs = jdbcTemplateresp.queryForMap(sql); + long dataid = (long)rs.get("dataid"); + //更新【接口状态字段为2---【接口一】已经执行成功】 + sql = "update hi_stapply set jkzt = '2' where id = "+dataid; + jdbcTemplateresp.update(sql); + } + + /** + * 根据标识id去判断接口状态是否为2 + */ + private boolean judgeInterfaceStatus(String bsid) { + String sql = "select dataid from wfc_form_data wfd where requestid = "+bsid; + Map rs = jdbcTemplateresp.queryForMap(sql); + long dataid = (long)rs.get("dataid"); + //更新【接口状态字段为2---【接口一】已经执行成功】 + sql = "select jkzt from hi_stapply where id = "+dataid; + rs = jdbcTemplateresp.queryForMap(sql); + String status = String.valueOf(rs.get("jkzt")); + return ("2".equals(status)); + } + + private JSONArray getDataArray(String bsid,String username,String usercode) { + JSONArray jsonArray = new JSONArray(); + String sql = "select dataid from wfc_form_data wfd where requestid = "+bsid; + Map rs = jdbcTemplateresp.queryForMap(sql); + long dataid = (long)rs.get("dataid"); + sql = "select waitem,xzxmmc,pk_wa_crt,usedate,negotiation,wa_seclv,money,memo from hi_stapply_mxb2 where FORM_DATA_ID = "+dataid; + log.error("howec::::::::3"+sql); + List> rs1 = jdbcTemplateresp.queryForList(sql); + if(CollectionUtil.isNotEmpty(rs1)) { + for(Map r : rs1) { + String xzxmmc = (String)r.get("xzxmmc");//薪资项目名称 + String usedate = (String)r.get("usedate");//起薪日期 + long negotiation = (long)r.get("negotiation");//谈判工资 + String xbdb = ""; + if(r.get("wa_seclv")!=null) { + String id1 = (String)r.get("wa_seclv"); + if(id1.length()>0) { + sql = "select levelname from uf_wa_prmlv where id = "+id1; + Map rso= jdbcTemplate.queryForMap(sql); + xbdb = (String)rso.get("levelname"); + } + } + String nmoney = ""; + if(r.get("money")!=null) { + nmoney = String.valueOf(r.get("money"));//金额 + } + String memo=(String)r.get("memo");//备注 + //通过薪资标准表id获取薪资标准名称 + String pk_wa_crt_name = ""; + if(r.get("pk_wa_crt") != null) { + String pk_wa_crt = String.valueOf(r.get("pk_wa_crt"));//薪资标准表 + sql = "select name from uf_wa_grade where id = "+pk_wa_crt; + Map rso= jdbcTemplate.queryForMap(sql); + pk_wa_crt_name = (String)rso.get("name"); + } + String negotiation_wage = negotiation == 0l ? "N" : "Y"; + JSONObject dataobj = new JSONObject(); + dataobj.put("negotiation_wage",negotiation_wage); + dataobj.put("begindate",usedate); + dataobj.put("wa_prmlv",xbdb);//薪资级别 +// dataobj.put("wa_seclv","");//薪档级别 + dataobj.put("nmoney",nmoney); + dataobj.put("waflag","Y"); + dataobj.put("pk_wa_item_showname",xzxmmc); + dataobj.put("pk_wa_grd_showname",pk_wa_crt_name); + dataobj.put("psnCode",usercode); + dataobj.put("psnName",username); + dataobj.put("vnote",memo); + jsonArray.add(dataobj); + } + } + return jsonArray; + } +} diff --git a/src/main/java/com/weaver/seconddev/sxjg/esb/PersonJxToNcc.java b/src/main/java/com/weaver/seconddev/sxjg/esb/PersonJxToNcc.java new file mode 100644 index 0000000..d87e4a3 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/esb/PersonJxToNcc.java @@ -0,0 +1,195 @@ +package com.weaver.seconddev.sxjg.esb; + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfig; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfigResp; +import com.weaver.seconddev.sxjg.util.NccApiUtil; +import com.weaver.seconddev.sxjg.util.NccResultUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 人员见习流程toncc + */ +@Service("esb_PersonJxToNcc_howe") +public class PersonJxToNcc implements EsbServerlessRpcRemoteInterface { + private static final Logger log = LoggerFactory.getLogger(PersonJxToNcc.class); + private JdbcTemplate jdbcTemplateresp = new JdbcTemplate(EbDbDataSourceConfigResp.dbDataSource()); + private JdbcTemplate jdbcTemplate = new JdbcTemplate(EbDbDataSourceConfig.dbDataSource()); + @Override + public WeaResult> execute(Map params) { + Map finresult = new HashMap<>(); + finresult.put("code",200); + String pk_psndoc = (String) params.get("pk_psndoc");//人员主键 + String glbdef1 = (String) params.get("glbdef1");//是否见习 + String glbdef2 = (String) params.get("glbdef2");//见习期时长(月) + String glbdef3 = (String) params.get("glbdef3");//转正日期 + String bsid = (String)params.get("bsid"); + String username = (String)params.get("username"); + String usercode = (String)params.get("usercode"); + String pk_org = (String) params.get("pk_org"); + + glbdef1 = glbdef1.equals("0") ? "N" : "Y"; + glbdef3 = formatTime(glbdef3); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("pk_psndoc",pk_psndoc); + jsonObject.put("glbdef1",glbdef1); + jsonObject.put("glbdef2",glbdef2); + jsonObject.put("glbdef3",glbdef3); + JSONArray jsonArray = new JSONArray(); + jsonArray.add(jsonObject); + try { + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrhi/openAPI/userinf/internshipinf"; + String rs11 = ""; + NccResultUtil rs = null; + if(!judgeInterfaceStatus(bsid)) {//接口一 并没有执行成功过 + log.error("howec-3-7:接口一并没有被执行过,执行接口一"); + rs11 = nccApiUtil.doJsonPost(url,token,jsonArray.toJSONString()); + rs = new NccResultUtil(rs11); + }else {//接口1已经执行成功过 + log.error("howec-3-7:接口一已经被成功执行过,直接执行接口二"); + rs = new NccResultUtil(); + rs.setResult(true); + } + if(rs.getResult()) { + updateJkZt(bsid);//更新【接口1】成功 + //同步明细 + JSONObject r1 = new JSONObject(); + String state = "2"; + r1.put("state",state); + r1.put("pk_org",pk_org); + JSONArray array = getDataArray(bsid,username,usercode); + if(array == null || array.size() == 0) { + return WeaResult.success(finresult); + } + r1.put("data",array); + nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + token = nccApiUtil.getToken(); + url = nccApiUtil.getBaseUrl()+"nccloud/api/hrwa/customermanage/adjust/import"; + rs11 = nccApiUtil.doJsonPost(url,token,r1.toJSONString()); + rs = new NccResultUtil(rs11); + if(rs.getResult()) { + return WeaResult.success(finresult); + }else { + finresult.put("code",500); + finresult.put("msg",rs.getDescription()); + return WeaResult.success(finresult); + } + }else { + finresult.put("code",500); + finresult.put("msg",rs.getDescription()); + return WeaResult.success(finresult); + } + }catch (Exception e){ + e.printStackTrace(); + finresult.put("code",500); + finresult.put("msg",e.getMessage()); + log.error("howec:::::::::1:"+e.getMessage()); + return WeaResult.success(finresult); + } + } + + /** + * @use:更新接口状态为2 + */ + private void updateJkZt(String bsid) { + String sql = "select dataid from wfc_form_data wfd where requestid = "+bsid; + Map rs = jdbcTemplateresp.queryForMap(sql); + long dataid = (long)rs.get("dataid"); + //更新【接口状态字段为2---【接口一】已经执行成功】 + sql = "update hi_regapply set jkzt = '2' where id = "+dataid; + jdbcTemplateresp.update(sql); + } + + /** + * 根据标识id去判断接口状态是否为2 + */ + private boolean judgeInterfaceStatus(String bsid) { + String sql = "select dataid from wfc_form_data wfd where requestid = "+bsid; + Map rs = jdbcTemplateresp.queryForMap(sql); + long dataid = (long)rs.get("dataid"); + //更新【接口状态字段为2---【接口一】已经执行成功】 + sql = "select jkzt from hi_regapply where id = "+dataid; + rs = jdbcTemplateresp.queryForMap(sql); + String status = String.valueOf(rs.get("jkzt")); + return ("2".equals(status)); + } + + private JSONArray getDataArray(String bsid, String username, String usercode) { + JSONArray jsonArray = new JSONArray(); + String sql = "select dataid from wfc_form_data wfd where requestid = "+bsid; + Map rs = jdbcTemplateresp.queryForMap(sql); + long dataid = (long)rs.get("dataid"); + sql = "select waitem,xzxmmc,pk_wa_crt,usedate,negotiation,wa_seclv,money,memo from hi_regapply_mxb1 where FORM_DATA_ID = "+dataid; + log.error("howec::::::::3"+sql); + List> rs1 = jdbcTemplateresp.queryForList(sql); + if(CollectionUtil.isNotEmpty(rs1)) { + for(Map r : rs1) { + String xzxmmc = (String)r.get("xzxmmc");//薪资项目名称 + String usedate = (String)r.get("usedate");//起薪日期 + long negotiation = (long)r.get("negotiation");//谈判工资 + String xbdb = ""; + if(r.get("wa_seclv")!=null) { + String id1 = (String)r.get("wa_seclv"); + if(id1.length()>0) { + sql = "select levelname from uf_wa_prmlv where id = "+id1; + Map rso= jdbcTemplate.queryForMap(sql); + xbdb = (String)rso.get("levelname"); + } + } + String nmoney = ""; + if(r.get("money")!=null) { + nmoney = String.valueOf(r.get("money"));//金额 + } + String memo=(String)r.get("memo");//备注 + //通过薪资标准表id获取薪资标准名称 + String pk_wa_crt_name = ""; + if(r.get("pk_wa_crt") != null) { + String pk_wa_crt = String.valueOf(r.get("pk_wa_crt"));//薪资标准表 + sql = "select name from uf_wa_grade where id = "+pk_wa_crt; + Map rso= jdbcTemplate.queryForMap(sql); + pk_wa_crt_name = (String)rso.get("name"); + } + String negotiation_wage = negotiation == 0l ? "N" : "Y"; + JSONObject dataobj = new JSONObject(); + dataobj.put("negotiation_wage",negotiation_wage); + dataobj.put("begindate",usedate); + dataobj.put("wa_prmlv",xbdb);//薪资级别 + dataobj.put("nmoney",nmoney); + dataobj.put("waflag","Y"); + dataobj.put("pk_wa_item_showname",xzxmmc); + dataobj.put("pk_wa_grd_showname",pk_wa_crt_name); + dataobj.put("psnCode",usercode); + dataobj.put("psnName",username); + dataobj.put("vnote",memo); + jsonArray.add(dataobj); + } + } + return jsonArray; + } + + private String formatTime(String s) { + if(s.length() == 0) { + return ""; + } + if(s.contains("-")) { + s = s.replaceAll("-",""); + return s; + } + return ""; + } +} diff --git a/src/main/java/com/weaver/seconddev/sxjg/esb/PersonLzToNcc.java b/src/main/java/com/weaver/seconddev/sxjg/esb/PersonLzToNcc.java new file mode 100644 index 0000000..10914e5 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/esb/PersonLzToNcc.java @@ -0,0 +1,82 @@ +package com.weaver.seconddev.sxjg.esb; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; +import com.weaver.seconddev.sxjg.util.NccApiUtil; +import com.weaver.seconddev.sxjg.util.NccResultUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Map; + +/** + * 人员离职同步ncc + */ +@Service("esb_PersonLzToNcc_howe") +public class PersonLzToNcc implements EsbServerlessRpcRemoteInterface { + private static final Logger log = LoggerFactory.getLogger(PersonLzToNcc.class); + @Override + public WeaResult> execute(Map params) { + Map finresult = new HashMap<>(); + finresult.put("code",200); + String pk_psndoc = (String) params.get("pk_psndoc");//人员主键 + String pk_org = (String) params.get("pk_org");//所属组织(调配后的组织) + String begindate = (String) params.get("begindate");//开始时间 + String pk_psncl = (String) params.get("pk_psncl");//人员类别 + if(pk_psncl.contains("_")) { + pk_psncl = pk_psncl.split("_")[1]; + } + + String pk_dept = (String) params.get("pk_dept");//部门 + String pk_post = (String) params.get("pk_post");//岗位 + String pk_postseries = (String) params.get("pk_postseries");//岗位序列 + String pk_job = (String) params.get("pk_job");//职务 + String pk_jobgrade = (String) params.get("pk_jobgrade");//职级 + String jobglbdef1 = (String) params.get("jobglbdef1");//职级开始时间 + String trnsreason = (String) params.get("trnsreason");//异动原因 + String memo = (String) params.get("memo");//备注 + JSONArray array = new JSONArray(); + JSONObject rs = new JSONObject(); + rs.put("pk_psndoc",pk_psndoc); + rs.put("pk_org",pk_org); + rs.put("begindate",begindate); + rs.put("pk_psncl",pk_psncl); + rs.put("pk_dept",pk_dept); + rs.put("pk_post",pk_post); + rs.put("pk_postseries",pk_postseries); + rs.put("pk_job",pk_job); + rs.put("pk_jobgrade",pk_jobgrade); + rs.put("jobglbdef1",jobglbdef1); + rs.put("trnsreason",trnsreason); + rs.put("memo",memo); + array.add(rs); + JSONObject finalrs = new JSONObject(); + finalrs.put("data",array); + try { + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/dimissionSync/entry"; + String rs11 = nccApiUtil.doJsonPost(url,token,finalrs.toJSONString()); + NccResultUtil rs2 = new NccResultUtil(rs11); + if(rs2.getResult()) { + return WeaResult.success(finresult); + }else { + finresult.put("code",500); + finresult.put("msg",rs2.getDescription()); + return WeaResult.success(finresult); + } + }catch (Exception e){ + e.printStackTrace(); + finresult.put("code",500); + finresult.put("msg",e.getMessage()); + log.error("howec:::::::::1:"+e.getMessage()); + return WeaResult.success(finresult); + } + } + +} diff --git a/src/main/java/com/weaver/seconddev/sxjg/esb/SunCompanyDpToNcc.java b/src/main/java/com/weaver/seconddev/sxjg/esb/SunCompanyDpToNcc.java new file mode 100644 index 0000000..c24515b --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/esb/SunCompanyDpToNcc.java @@ -0,0 +1,160 @@ +package com.weaver.seconddev.sxjg.esb; + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.ebuilder.common.exception.BusinessException; +import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfig; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfigResp; +import com.weaver.seconddev.sxjg.util.NccApiUtil; +import com.weaver.seconddev.sxjg.util.NccResultUtil; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.PropertiesConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Service; +import sun.security.provider.Sun; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 子企业内部调配 + */ +@Service("esb_suncompanydp_howe") +public class SunCompanyDpToNcc implements EsbServerlessRpcRemoteInterface { + + public SunCompanyDpToNcc() { + PropertiesConfiguration p = null; + try { + p = new PropertiesConfiguration(); + p.setEncoding("utf-8"); + p.setFileName("config/nccconfig.properties"); + p.load(); + this.b12 = p.getString("sxjgncc.b12"); + }catch (ConfigurationException e) { + throw new BusinessException("获取sxjg.properties配置文件失败,", e); + } + } + private String b12; + private static final Logger log = LoggerFactory.getLogger(SunCompanyDpToNcc.class); + private JdbcTemplate jdbcTemplateresp = new JdbcTemplate(EbDbDataSourceConfigResp.dbDataSource()); + + private JdbcTemplate jdbcTemplate = new JdbcTemplate(EbDbDataSourceConfig.dbDataSource()); + @Override + public WeaResult> execute(Map params) { + Map finresult = new HashMap<>(); + finresult.put("code",200); + String pk_dept = (String) params.get("pk_dept"); + String pk_jobgrade = (String) params.get("pk_jobgrade"); + String jobglbdef1 = (String) params.get("jobglbdef1"); + String joinworkdate = (String) params.get("joinworkdate"); + String pk_org = (String) params.get("pk_org"); + String bsid = (String)params.get("bsid"); + String username = (String)params.get("username"); + String usercode = (String)params.get("usercode"); + String applyer = (String) params.get("applyer"); + String usedate = (String) params.get("usedate"); + String zryda = "是"; + try { + + //同步明细 + JSONObject r1 = new JSONObject(); + String state = "1"; + JSONArray array = getDataArray(bsid,username,usercode,usedate); + if(array == null || array.size() == 0) { + state = "0"; + } + if(zryda.equals("是")) { + if(array == null || array.size() == 0) { + return WeaResult.success(finresult); + } + state = "2"; + } + r1.put("pk_psndoc",applyer); + r1.put("state",state); + r1.put("pk_dept",pk_dept); + r1.put("pk_jobgrade",pk_jobgrade); + r1.put("jobglbdef1",jobglbdef1); + r1.put("joinworkdate",joinworkdate); + r1.put("pk_org",pk_org); + r1.put("data",array); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrwa/customermanage/adjust/import"; + String rs11 = nccApiUtil.doJsonPost(url,token,r1.toJSONString()); + NccResultUtil rs = new NccResultUtil(rs11); + if(rs.getResult()) { + return WeaResult.success(finresult); + }else { + finresult.put("code",500); + finresult.put("msg",rs.getDescription()); + return WeaResult.success(finresult); + } + }catch (Exception e) { + e.printStackTrace(); + finresult.put("code",500); + finresult.put("msg",e.getMessage()); + log.error("howec:::::::::1:"+e.getMessage()); + return WeaResult.success(finresult); + } + } + + private JSONArray getDataArray(String bsid,String username,String usercode,String usedate) { + JSONArray jsonArray = new JSONArray(); + String sql = "select dataid from wfc_form_data wfd where requestid = "+bsid; + Map rs = jdbcTemplateresp.queryForMap(sql); + long dataid = (long)rs.get("dataid"); + sql = "select waitem,xzxmmc,pk_wa_crt,negotiation,wa_seclv,money,memo from "+b12+" where FORM_DATA_ID = "+dataid+" and tbddzwh = '1'"; + log.error("howec::::::::3"+sql); + List> rs1 = jdbcTemplateresp.queryForList(sql); + if(CollectionUtil.isNotEmpty(rs1)) { + for(Map r : rs1) { + String xzxmmc = (String)r.get("xzxmmc");//薪资项目名称 + long negotiation = (long)r.get("negotiation");//谈判工资 + String xbdb = ""; + if(r.get("wa_seclv")!=null) { + String id1 = (String)r.get("wa_seclv"); + if(id1.length()>0) { + sql = "select levelname from uf_wa_prmlv where id = "+id1; + Map rso= jdbcTemplate.queryForMap(sql); + xbdb = (String)rso.get("levelname"); + } + } + String nmoney = ""; + if(r.get("money")!=null) { + nmoney = String.valueOf(r.get("money"));//金额 + } + String memo=(String)r.get("memo");//备注 + //通过薪资标准表id获取薪资标准名称 + String pk_wa_crt_name = ""; + if(r.get("pk_wa_crt") != null) { + String pk_wa_crt = String.valueOf(r.get("pk_wa_crt"));//薪资标准表 + sql = "select name from uf_wa_grade where id = "+pk_wa_crt; + Map rso= jdbcTemplate.queryForMap(sql); + pk_wa_crt_name = (String)rso.get("name"); + } + String negotiation_wage = negotiation == 0l ? "N" : "Y"; + JSONObject dataobj = new JSONObject(); + dataobj.put("negotiation_wage",negotiation_wage); + dataobj.put("begindate",usedate); + dataobj.put("wa_prmlv",xbdb);//薪资级别 +// dataobj.put("wa_seclv","");//薪档级别 + dataobj.put("nmoney",nmoney); + dataobj.put("waflag","Y"); + dataobj.put("pk_wa_item_showname",xzxmmc); + dataobj.put("pk_wa_grd_showname",pk_wa_crt_name); + dataobj.put("psnCode",usercode); + dataobj.put("psnName",username); + dataobj.put("vnote",memo); + jsonArray.add(dataobj); + } + } + return jsonArray; + } +} diff --git a/src/main/java/com/weaver/seconddev/sxjg/esb/TestDd.java b/src/main/java/com/weaver/seconddev/sxjg/esb/TestDd.java new file mode 100644 index 0000000..771ada9 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/esb/TestDd.java @@ -0,0 +1,35 @@ +package com.weaver.seconddev.sxjg.esb; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.weaver.seconddev.sxjg.util.NccApiUtil; +//import org.junit.Test; + +public class TestDd { +// @Test +// public void test() throws Exception { +// String str = "{\"data\":[{\"waflag\":\"Y\",\"begindate\":\"2024-03-18\",\"wa_prmlv\":\"\",\"pk_wa_item_showname\":\"基本工资标准\",\"pk_wa_grd_showname\":\"\",\"negotiation_wage\":\"Y\",\"vnote\":\"1\",\"nmoney\":\"1.00\",\"psnName\":\"许轲\",\"psnCode\":\"00058978\"},{\"waflag\":\"Y\",\"begindate\":\"2024-03-18\",\"wa_prmlv\":\"13&4档\",\"pk_wa_item_showname\":\"效益工资标准\",\"pk_wa_grd_showname\":\"陕建六建集团效益工资标准\",\"negotiation_wage\":\"N\",\"vnote\":\"2\",\"nmoney\":\"1304.00\",\"psnName\":\"许轲\",\"psnCode\":\"00058978\"}],\"state\":\"2\",\"pk_org\":\"0001A21000000000IR6D\"}"; +// NccApiUtil nccApiUtil = new NccApiUtil(); +// nccApiUtil.init(); +// String token = nccApiUtil.getToken(); +// String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrwa/customermanage/adjust/import"; +// String rs11 = nccApiUtil.doJsonPost(url,token,str); +// System.out.println(rs11); +// } +// @Test +// public void test1() throws Exception { +// JSONObject r1 = new JSONObject(); +// JSONArray r2 = new JSONArray(); +// JSONObject r3 = new JSONObject(); +// r3.put("pk_psndoc","0001A2100000006CWEBW"); +// r2.add(r3); +// r1.put("data",r2); +// NccApiUtil nccApiUtil = new NccApiUtil(); +// nccApiUtil.init(); +// String token = nccApiUtil.getToken(); +// String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrtrn/openAPI/payslipSync/entry"; +// String rs11 = nccApiUtil.doJsonPost(url,token,r1.toJSONString()); +// System.out.println(rs11); +// JSONObject rsf = JSONObject.parseObject(rs11); +// } +} diff --git a/src/main/java/com/weaver/seconddev/sxjg/esb/ZhiGongBdToNcc.java b/src/main/java/com/weaver/seconddev/sxjg/esb/ZhiGongBdToNcc.java new file mode 100644 index 0000000..3c45e3c --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/esb/ZhiGongBdToNcc.java @@ -0,0 +1,159 @@ +package com.weaver.seconddev.sxjg.esb; + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.ebuilder.common.exception.BusinessException; +import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfig; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfigResp; +import com.weaver.seconddev.sxjg.util.NccApiUtil; +import com.weaver.seconddev.sxjg.util.NccResultUtil; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.PropertiesConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 子职工报到联系单-总部ncc + */ +@Service("esb_zhigongbd_howe") +public class ZhiGongBdToNcc implements EsbServerlessRpcRemoteInterface { + + public ZhiGongBdToNcc() { + PropertiesConfiguration p = null; + try { + p = new PropertiesConfiguration(); + p.setEncoding("utf-8"); + p.setFileName("config/nccconfig.properties"); + p.load(); + this.b13 = p.getString("sxjgncc.b13"); + }catch (ConfigurationException e) { + throw new BusinessException("获取sxjg.properties配置文件失败,", e); + } + } + private String b13; + private static final Logger log = LoggerFactory.getLogger(ZhiGongBdToNcc.class); + private JdbcTemplate jdbcTemplateresp = new JdbcTemplate(EbDbDataSourceConfigResp.dbDataSource()); + + private JdbcTemplate jdbcTemplate = new JdbcTemplate(EbDbDataSourceConfig.dbDataSource()); + @Override + public WeaResult> execute(Map params) { + Map finresult = new HashMap<>(); + finresult.put("code",200); + String pk_dept = (String) params.get("pk_dept"); + String pk_jobgrade = (String) params.get("pk_jobgrade"); + String jobglbdef1 = (String) params.get("jobglbdef1"); + String joinworkdate = (String) params.get("joinworkdate"); + String pk_org = (String) params.get("pk_org"); + String bsid = (String)params.get("bsid"); + String username = (String)params.get("username"); + String usercode = (String)params.get("usercode"); + String applyer = (String) params.get("applyer"); + String usedate = (String) params.get("usedate"); + String zryda = (String) params.get("zryda"); + try { + + //同步明细 + JSONObject r1 = new JSONObject(); + String state = "1"; + JSONArray array = getDataArray(bsid,username,usercode,usedate); + if(array == null || array.size() == 0) { + state = "0"; + } + if(zryda.equals("是")) { + if(array == null || array.size() == 0) { + return WeaResult.success(finresult); + } + state = "2"; + } + r1.put("pk_psndoc",applyer); + r1.put("state",state); + r1.put("pk_dept",pk_dept); + r1.put("pk_jobgrade",pk_jobgrade); + r1.put("jobglbdef1",jobglbdef1); + r1.put("joinworkdate",joinworkdate); + r1.put("pk_org",pk_org); + r1.put("data",array); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrwa/customermanage/adjust/import"; + String rs11 = nccApiUtil.doJsonPost(url,token,r1.toJSONString()); + NccResultUtil rs = new NccResultUtil(rs11); + if(rs.getResult()) { + return WeaResult.success(finresult); + }else { + finresult.put("code",500); + finresult.put("msg",rs.getDescription()); + return WeaResult.success(finresult); + } + }catch (Exception e) { + e.printStackTrace(); + finresult.put("code",500); + finresult.put("msg",e.getMessage()); + log.error("howec:::::::::1:"+e.getMessage()); + return WeaResult.success(finresult); + } + } + + private JSONArray getDataArray(String bsid,String username,String usercode,String usedate) { + JSONArray jsonArray = new JSONArray(); + String sql = "select dataid from wfc_form_data wfd where requestid = "+bsid; + Map rs = jdbcTemplateresp.queryForMap(sql); + long dataid = (long)rs.get("dataid"); + sql = "select waitem,xzxmmc,pk_wa_crt,negotiation,wa_seclv,money,memo from "+b13+" where FORM_DATA_ID = "+dataid+" and tbddzwh = '1'"; + log.error("howec::::::::3"+sql); + List> rs1 = jdbcTemplateresp.queryForList(sql); + if(CollectionUtil.isNotEmpty(rs1)) { + for(Map r : rs1) { + String xzxmmc = (String)r.get("xzxmmc");//薪资项目名称 + long negotiation = (long)r.get("negotiation");//谈判工资 + String xbdb = ""; + if(r.get("wa_seclv")!=null) { + String id1 = (String)r.get("wa_seclv"); + if(id1.length()>0) { + sql = "select levelname from uf_wa_prmlv where id = "+id1; + Map rso= jdbcTemplate.queryForMap(sql); + xbdb = (String)rso.get("levelname"); + } + } + String nmoney = ""; + if(r.get("money")!=null) { + nmoney = String.valueOf(r.get("money"));//金额 + } + String memo=(String)r.get("memo");//备注 + //通过薪资标准表id获取薪资标准名称 + String pk_wa_crt_name = ""; + if(r.get("pk_wa_crt") != null) { + String pk_wa_crt = String.valueOf(r.get("pk_wa_crt"));//薪资标准表 + sql = "select name from uf_wa_grade where id = "+pk_wa_crt; + Map rso= jdbcTemplate.queryForMap(sql); + pk_wa_crt_name = (String)rso.get("name"); + } + String negotiation_wage = negotiation == 0l ? "N" : "Y"; + JSONObject dataobj = new JSONObject(); + dataobj.put("negotiation_wage",negotiation_wage); + dataobj.put("begindate",usedate); + dataobj.put("wa_prmlv",xbdb);//薪资级别 +// dataobj.put("wa_seclv","");//薪档级别 + dataobj.put("nmoney",nmoney); + dataobj.put("waflag","Y"); + dataobj.put("pk_wa_item_showname",xzxmmc); + dataobj.put("pk_wa_grd_showname",pk_wa_crt_name); + dataobj.put("psnCode",usercode); + dataobj.put("psnName",username); + dataobj.put("vnote",memo); + jsonArray.add(dataobj); + } + } + return jsonArray; + } +} diff --git a/src/main/java/com/weaver/seconddev/sxjg/esb/ZhiGongnbdpToNcc.java b/src/main/java/com/weaver/seconddev/sxjg/esb/ZhiGongnbdpToNcc.java new file mode 100644 index 0000000..5058dc4 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/esb/ZhiGongnbdpToNcc.java @@ -0,0 +1,159 @@ +package com.weaver.seconddev.sxjg.esb; + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.ebuilder.common.exception.BusinessException; +import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfig; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfigResp; +import com.weaver.seconddev.sxjg.util.NccApiUtil; +import com.weaver.seconddev.sxjg.util.NccResultUtil; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.PropertiesConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 子职工报到联系单-总部ncc + */ +@Service("esb_zhigongnbdp_howe") +public class ZhiGongnbdpToNcc implements EsbServerlessRpcRemoteInterface { + + public ZhiGongnbdpToNcc() { + PropertiesConfiguration p = null; + try { + p = new PropertiesConfiguration(); + p.setEncoding("utf-8"); + p.setFileName("config/nccconfig.properties"); + p.load(); + this.b14 = p.getString("sxjgncc.b14"); + }catch (ConfigurationException e) { + throw new BusinessException("获取sxjg.properties配置文件失败,", e); + } + } + private String b14; + private static final Logger log = LoggerFactory.getLogger(ZhiGongnbdpToNcc.class); + private JdbcTemplate jdbcTemplateresp = new JdbcTemplate(EbDbDataSourceConfigResp.dbDataSource()); + + private JdbcTemplate jdbcTemplate = new JdbcTemplate(EbDbDataSourceConfig.dbDataSource()); + @Override + public WeaResult> execute(Map params) { + Map finresult = new HashMap<>(); + finresult.put("code",200); + String pk_dept = (String) params.get("pk_dept"); + String pk_jobgrade = (String) params.get("pk_jobgrade"); + String jobglbdef1 = (String) params.get("jobglbdef1"); + String joinworkdate = (String) params.get("joinworkdate"); + String pk_org = (String) params.get("pk_org"); + String bsid = (String)params.get("bsid"); + String username = (String)params.get("username"); + String usercode = (String)params.get("usercode"); + String applyer = (String) params.get("applyer"); + String usedate = (String) params.get("usedate"); + String zryda = "是"; + try { + + //同步明细 + JSONObject r1 = new JSONObject(); + String state = "1"; + JSONArray array = getDataArray(bsid,username,usercode,usedate); + if(array == null || array.size() == 0) { + state = "0"; + } + if(zryda.equals("是")) { + if(array == null || array.size() == 0) { + return WeaResult.success(finresult); + } + state = "2"; + } + r1.put("pk_psndoc",applyer); + r1.put("state",state); + r1.put("pk_dept",pk_dept); + r1.put("pk_jobgrade",pk_jobgrade); + r1.put("jobglbdef1",jobglbdef1); + r1.put("joinworkdate",joinworkdate); + r1.put("pk_org",pk_org); + r1.put("data",array); + NccApiUtil nccApiUtil = new NccApiUtil(); + nccApiUtil.init(); + String token = nccApiUtil.getToken(); + String url = nccApiUtil.getBaseUrl()+"nccloud/api/hrwa/customermanage/adjust/import"; + String rs11 = nccApiUtil.doJsonPost(url,token,r1.toJSONString()); + NccResultUtil rs = new NccResultUtil(rs11); + if(rs.getResult()) { + return WeaResult.success(finresult); + }else { + finresult.put("code",500); + finresult.put("msg",rs.getDescription()); + return WeaResult.success(finresult); + } + }catch (Exception e) { + e.printStackTrace(); + finresult.put("code",500); + finresult.put("msg",e.getMessage()); + log.error("howec:::::::::1:"+e.getMessage()); + return WeaResult.success(finresult); + } + } + + private JSONArray getDataArray(String bsid,String username,String usercode,String usedate) { + JSONArray jsonArray = new JSONArray(); + String sql = "select dataid from wfc_form_data wfd where requestid = "+bsid; + Map rs = jdbcTemplateresp.queryForMap(sql); + long dataid = (long)rs.get("dataid"); + sql = "select waitem,xzxmmc,pk_wa_crt,negotiation,wa_seclv,money,memo from "+b14+" where FORM_DATA_ID = "+dataid+" and tbddzwh = '1'"; + log.error("howec::::::::3"+sql); + List> rs1 = jdbcTemplateresp.queryForList(sql); + if(CollectionUtil.isNotEmpty(rs1)) { + for(Map r : rs1) { + String xzxmmc = (String)r.get("xzxmmc");//薪资项目名称 + long negotiation = (long)r.get("negotiation");//谈判工资 + String xbdb = ""; + if(r.get("wa_seclv")!=null) { + String id1 = (String)r.get("wa_seclv"); + if(id1.length()>0) { + sql = "select levelname from uf_wa_prmlv where id = "+id1; + Map rso= jdbcTemplate.queryForMap(sql); + xbdb = (String)rso.get("levelname"); + } + } + String nmoney = ""; + if(r.get("money")!=null) { + nmoney = String.valueOf(r.get("money"));//金额 + } + String memo=(String)r.get("memo");//备注 + //通过薪资标准表id获取薪资标准名称 + String pk_wa_crt_name = ""; + if(r.get("pk_wa_crt") != null) { + String pk_wa_crt = String.valueOf(r.get("pk_wa_crt"));//薪资标准表 + sql = "select name from uf_wa_grade where id = "+pk_wa_crt; + Map rso= jdbcTemplate.queryForMap(sql); + pk_wa_crt_name = (String)rso.get("name"); + } + String negotiation_wage = negotiation == 0l ? "N" : "Y"; + JSONObject dataobj = new JSONObject(); + dataobj.put("negotiation_wage",negotiation_wage); + dataobj.put("begindate",usedate); + dataobj.put("wa_prmlv",xbdb);//薪资级别 +// dataobj.put("wa_seclv","");//薪档级别 + dataobj.put("nmoney",nmoney); + dataobj.put("waflag","Y"); + dataobj.put("pk_wa_item_showname",xzxmmc); + dataobj.put("pk_wa_grd_showname",pk_wa_crt_name); + dataobj.put("psnCode",usercode); + dataobj.put("psnName",username); + dataobj.put("vnote",memo); + jsonArray.add(dataobj); + } + } + return jsonArray; + } +} diff --git a/src/main/java/com/weaver/seconddev/sxjg/service/Impl/JoinPositionRuleImpl.java b/src/main/java/com/weaver/seconddev/sxjg/service/Impl/JoinPositionRuleImpl.java new file mode 100644 index 0000000..6ff9d79 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/service/Impl/JoinPositionRuleImpl.java @@ -0,0 +1,119 @@ +package com.weaver.seconddev.sxjg.service.Impl; + +import cn.hutool.core.collection.CollectionUtil; +import com.weaver.seconddev.sxjg.config.EbDbDataSourceConfig; +import com.weaver.seconddev.sxjg.service.JoinPositionRule; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +@Service +public class JoinPositionRuleImpl implements JoinPositionRule { + + private JdbcTemplate jdbcTemplate = new JdbcTemplate(EbDbDataSourceConfig.dbDataSource()); + + @Override + public Map JoinPositionRule(String talentId,String userId,String userName,String positionId,String resumeId) { + Map rs8 = new HashMap<>(); + Map rs7 = schoolcheck(resumeId,positionId); + if(rs7.get("result").equals("error")) { + return rs7; + } + //一人一岗 + if(checkOnePersonOnce(talentId,positionId)) { + rs8.put("result","error"); + rs8.put("message","同一职位不能重复投递!"); + return rs8; + } + //当前人再所有组织的岗位数量当年 + String sql = "select count(a.id) as nums,b.sub_company from uf_rcrt_candidate_batch a " + + "INNER JOIN uf_rcrt_position b on a.position_id = b.ID" + + " where a.talent_id = '"+talentId+"' and LEFT(a.create_time,4) = LEFT(NOW(),4) " + + " GROUP BY b.sub_company"; + List> rs2 = jdbcTemplate.queryForList(sql); + + if(CollectionUtil.isNotEmpty(rs2)) { + sql = "select sub_company from uf_rcrt_position where id = '"+positionId+"'"; + + List> rs3 = jdbcTemplate.queryForList(sql); + if(CollectionUtil.isEmpty(rs3)) { + rs8.put("result","ok"); + return rs8; + } + for(Map map3: rs3) { + String companyid = (String)map3.get("sub_company"); + for(Map map2: rs2) { + String companyid2 = (String)map2.get("sub_company"); + long nums = (long)map2.get("nums"); + if(companyid2.equals(companyid)) { + if(nums >=3l) { + rs8.put("result","error"); + rs8.put("message","同一单位投递职位数量已上限,请选择其他单位职位投递!"); + return rs8; + } + } + } + } + } + rs8.put("result","ok"); + return rs8; + } + + /** + * 岗位学校配置 + */ + private Map schoolcheck(String resumeId,String positionId){ + Map result = new HashMap<>(); + //判断该职位是否需要做学校限制 + String sql = "select xx from uf_position_schoollimit where zwxx = '"+positionId+"' and qy = '0'"; + List> rs1 = jdbcTemplate.queryForList(sql); + if(CollectionUtil.isEmpty(rs1)) { + result.put("result", "ok"); + result.put("message", "该职位不需要做学校限制"); + return result; + } + + //根据人才基本信息id获取教育背景 + + sql = "select school from jybj_998314268635990 where FORM_DATA_ID = '"+resumeId+"'"; + List> rs2 = jdbcTemplate.queryForList(sql); + if(CollectionUtil.isNotEmpty(rs2)) { + //根据职位id获取高校 + boolean flag = false; + for(Map map2 : rs2) { + String school2 = (String)map2.get("school"); + for(Map map1 : rs1) { + String school1 = (String)map1.get("xx"); + if(school1.equals(school2)) { + flag = true; + break; + } + } + } + if(!flag) { + result.put("result", "error"); + result.put("message", "您不符合当前职位的招聘要求,请选择其他职位投递!"); + return result; + } + + }else { + result.put("result", "error"); + result.put("message", "该人员没有教育经历信息!"); + return result; + } + result.put("result", "ok"); + return result; + } + + /** + * 规则校验:一个人一个职位投递一次 + */ + private boolean checkOnePersonOnce(String talentId,String positionId) { + String sql = "select count(id) as nums from uf_rcrt_candidate_batch where position_id = '"+positionId+"' and talent_id = '"+talentId+"'"; + Map rs = jdbcTemplate.queryForMap(sql); + long nums = (long)rs.get("nums"); + return nums >0l; + } +} diff --git a/src/main/java/com/weaver/seconddev/sxjg/service/JoinPositionRule.java b/src/main/java/com/weaver/seconddev/sxjg/service/JoinPositionRule.java new file mode 100644 index 0000000..fbc008a --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/service/JoinPositionRule.java @@ -0,0 +1,10 @@ +package com.weaver.seconddev.sxjg.service; + +import java.util.Map; + +public interface JoinPositionRule { + /** + * 陕西建工-招聘首页岗位申请规则【自定义】 + */ + Map JoinPositionRule(String talentId,String userId,String userName,String positionId,String resumeId); +} diff --git a/src/main/java/com/weaver/seconddev/sxjg/util/FileUtils.java b/src/main/java/com/weaver/seconddev/sxjg/util/FileUtils.java new file mode 100644 index 0000000..3997e52 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/util/FileUtils.java @@ -0,0 +1,40 @@ +package com.weaver.seconddev.sxjg.util; + +import javax.servlet.http.HttpServletRequest; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +public class FileUtils{ + + /** + * 下载文件名重新编码 + * + * @param request 请求对象 + * @param fileName 文件名 + * @return 编码后的文件名 + */ + public static String setFileDownloadHeader(HttpServletRequest request, String fileName)throws UnsupportedEncodingException { + + final String agent = request.getHeader("USER-AGENT"); + String filename = fileName; + + //根据浏览器进行文件名的替换 + if(agent.contains("MSIE")){ + //IE浏览器 + filename = URLEncoder.encode(filename,"utf-8"); + filename = filename.replace("+"," "); + }else if(agent.contains("Firefox")){ + //火狐浏览器 + filename = new String(fileName.getBytes(),"ISO8859-1"); + }else if(agent.contains("Chrome")){ + //谷歌浏览器 + filename = URLEncoder.encode(filename,"utf-8"); + }else{ + // 其它浏览器 + filename = URLEncoder.encode(filename, "utf-8"); + } + return filename; + } +} + + diff --git a/src/main/java/com/weaver/seconddev/sxjg/util/NccApiUtil.java b/src/main/java/com/weaver/seconddev/sxjg/util/NccApiUtil.java new file mode 100644 index 0000000..6f9305a --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/util/NccApiUtil.java @@ -0,0 +1,339 @@ +package com.weaver.seconddev.sxjg.util; + +import com.alibaba.fastjson.JSONObject; +import com.weaver.ebuilder.common.exception.BusinessException; +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.PropertiesConfiguration; +import org.apache.http.HttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.spec.OAEPParameterSpec; +import javax.crypto.spec.PSource; +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLEncoder; +import java.nio.charset.Charset; +import java.security.*; +import java.security.spec.MGF1ParameterSpec; +import java.security.spec.X509EncodedKeySpec; +import java.util.HashMap; +import java.util.Map; + +public class NccApiUtil { + + private static final Logger log = LoggerFactory.getLogger(NccApiUtil.class); + + public String getBaseUrl() { + return baseUrl; + } + + public void setBaseUrl(String baseUrl) { + this.baseUrl = baseUrl; + } + + private String baseUrl; + // 访问的nccloud系统的账套编码,开发环境使用develop,生产环境需要使用用root账号登录,在“系统管理”节点查看账套编码(由陕西建工HR系统提供) + private String biz_center; + + public String getClient_id() { + return client_id; + } + + public void setClient_id(String client_id) { + this.client_id = client_id; + } + + //陕煤HR系统在陕西建工HR系统中应用注册当中的app_id + private String client_id; + //陕煤HR系统在陕西建工HR系统中应用注册当中的app_secret(由陕西建工HR系统提供) + private String client_secret; + //陕西建工HR系统中应用注册当中的(公钥)pubKey(由陕西建工HR系统提供) + private String pubKey; + + private String signature; + public void init() { + PropertiesConfiguration p = null; + try { + p = new PropertiesConfiguration(); + p.setEncoding("utf-8"); + p.setFileName("config/nccconfig.properties"); + p.load(); + this.baseUrl = p.getString("sxjgncc.url"); + this.biz_center = p.getString("sxjgncc.biz_center"); + this.client_id = p.getString("sxjgncc.client_id"); + this.client_secret = p.getString("sxjgncc.client_secret"); + this.pubKey = p.getString("sxjgncc.public_key"); + }catch (ConfigurationException e) { + throw new BusinessException("获取sxjg.properties配置文件失败,", e); + } + } + + /** + * 获取设置的ncc用户token + * @return@ + * @throws Exception + */ + public String getToken() throws Exception { + Map paramMap = new HashMap(); + //获取token方式(固定为client_credentials) + paramMap.put("grant_type", "client_credentials"); + //陕煤HR系统在陕西建工HR系统中应用注册当中的app_id(由陕西建工HR系统提供) + paramMap.put("client_id", this.client_id); + //加密陕煤HR系统在陕西建工HR系统中应用注册当中的(公钥)pubKey和app_secret(由陕西建工HR系统提供) + String encode = URLEncoder.encode(pubEncrypt(this.pubKey, this.client_secret), "UTF-8");//需要写入报文头中 + paramMap.put("client_secret", encode); + // 账套编码,开发环境使用develop,生产环境需要使用用root账号登录,在“系统管理”节点查看账套编码(由陕西建工HR系统提供) + paramMap.put("biz_center", this.biz_center); + //请求加签,其算法getSHA256(client_id + client_secret + pubKey) + String sign = getSHA256(this.client_id + this.client_secret + this.pubKey, this.pubKey); + paramMap.put("signature", sign);//需要写入报文头中 + this.setSignature(sign); + //查询token的url + String url = this.baseUrl + "nccloud/opm/accesstoken"; + String mediaType = "application/x-www-form-urlencoded"; + String token = this.doPost(url, paramMap, mediaType, (Map)null, ""); + JSONObject rs = JSONObject.parseObject(token); + if(rs.getBoolean("success")) { + JSONObject jsonObject = rs.getJSONObject("data"); + String token1 = jsonObject.getString("access_token"); + return token1; + }else { + log.error("howec::::::::::::111:"+token); + throw new Exception("获取toaken失败!"); + } + } + + public String doJsonPost(String url, String accessToken, String json) { + log.error("NCC接口"+url+",推送报文:>>>>>>>>>>>>>>>>>>>>>>"+json); + CloseableHttpClient client = HttpClients.createDefault(); + HttpPost post = new HttpPost(url); + post.setHeader("Content-Type", "application/json;charset=utf-8"); + post.setHeader("access_token", accessToken); + post.setHeader("repeat_check","Y"); + post.setHeader("ucg_flag","Y"); + post.setHeader("signature",this.getSignature()); + post.setHeader("client_id",this.getClient_id()); + + String result=""; + try { + StringEntity s = new StringEntity(json,"UTF-8"); + s.setContentEncoding("utf-8"); + s.setContentType("application/json"); + post.setEntity(s); + // 发送请求 + HttpResponse httpResponse = client.execute(post); + // 获取响应输入流 + InputStream inStream = httpResponse.getEntity().getContent(); + BufferedReader reader = new BufferedReader(new InputStreamReader( + inStream,"utf-8")); + StringBuilder strber = new StringBuilder(); + String line; + while ((line = reader.readLine()) != null) + strber.append(line + "\n"); + result = strber.toString(); + inStream.close(); + log.error("NCC接口"+url+",返回值:>>>>>>>>>>>>>>>>>>>>>>"+result); + } catch (Exception e) { + log.error("NCC接口"+url+",返回值:>>>>>>>>>>>>>>>>>>>>>>"+e.getMessage()); + e.printStackTrace(); + } + return result; + } + + public static String pubEncrypt(String pubKey, String src) throws Exception { + String target = null; + ByteArrayOutputStream out = null; + + try { + Key key = getPublicKey(pubKey); + Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding"); + cipher.init(1, key, new OAEPParameterSpec("SHA-256", "MGF1", new MGF1ParameterSpec("SHA-256"), PSource.PSpecified.DEFAULT)); + byte[] data = src.getBytes(); + int inputLen = data.length; + out = new ByteArrayOutputStream(); + int offSet = 0; + + for(int i = 0; inputLen - offSet > 0; offSet = i * 117) { + byte[] cache; + if (inputLen - offSet > 117) { + cache = cipher.doFinal(data, offSet, 117); + } else { + cache = cipher.doFinal(data, offSet, inputLen - offSet); + } + + out.write(cache, 0, cache.length); + ++i; + } + + target = (new org.apache.commons.codec.binary.Base64()).encodeToString(out.toByteArray()); + } catch (NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException | BadPaddingException | NoSuchAlgorithmException var14) { + throw new Exception("加密失败", var14); + } finally { + if (out != null) { + out.close(); + } + + } + return target; + } + public static Key getPublicKey(String pubKey) throws Exception { + PublicKey key = null; + + try { + byte[] keyBytes = (new org.apache.commons.codec.binary.Base64()).decode(pubKey);; + KeyFactory keyFactory = KeyFactory.getInstance("RSA"); + X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(keyBytes); + key = keyFactory.generatePublic(x509KeySpec); + return key; + } catch (Exception var5) { + throw new Exception("无效的密钥 ", var5); + } + } + + public static String getSHA256(String str, String key) throws Exception { + byte[] salt = new byte[16]; + SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); + random.setSeed(key.getBytes()); + random.nextBytes(salt); + String salt_value = (new Base64()).encodeToString(salt); + return getSHA256(str + salt_value.replaceAll("\r|\n", "")); + } + private static String getSHA256(String str) throws Exception { + String encodestr = ""; + MessageDigest messageDigest = MessageDigest.getInstance("SHA-256"); + messageDigest.update(str.getBytes("UTF-8")); + encodestr = byte2Hex(messageDigest.digest()); + return encodestr; + } + private static String byte2Hex(byte[] bytes) { + StringBuffer stringBuffer = new StringBuffer(); + String temp = null; + + for(int i = 0; i < bytes.length; ++i) { + temp = Integer.toHexString(bytes[i] & 255); + if (temp.length() == 1) { + stringBuffer.append("0"); + } + + stringBuffer.append(temp); + } + + return stringBuffer.toString(); + } + + + + + /** + * 发送post请求 + * + * @param baseUrl + * @param paramMap + * @param mediaType + * @param headers + * @param json + * @return + */ + private static String doPost(String baseUrl, Map paramMap, String mediaType, Map headers, String json) { + + HttpURLConnection urlConnection = null; + InputStream in = null; + OutputStream out = null; + BufferedReader bufferedReader = null; + String result = null; + try { + StringBuffer sb = new StringBuffer(); + sb.append(baseUrl); + if (paramMap != null) { + sb.append("?"); + for (Map.Entry entry : paramMap.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue(); + sb.append(key + "=" + value).append("&"); + } + baseUrl = sb.toString().substring(0, sb.toString().length() - 1); + } + + URL urlObj = new URL(baseUrl); + urlConnection = (HttpURLConnection) urlObj.openConnection(); + urlConnection.setConnectTimeout(50000); + urlConnection.setRequestMethod("POST"); + urlConnection.setDoOutput(true); + urlConnection.setDoInput(true); + urlConnection.setUseCaches(false); + urlConnection.addRequestProperty("content-type", mediaType); + if (headers != null) { + for (String key : headers.keySet()) { + urlConnection.addRequestProperty(key, headers.get(key)); + } + } + out = urlConnection.getOutputStream(); + out.write(json.getBytes("utf-8")); + out.flush(); + int resCode = urlConnection.getResponseCode(); + if (resCode == HttpURLConnection.HTTP_OK || resCode == HttpURLConnection.HTTP_CREATED || resCode == HttpURLConnection.HTTP_ACCEPTED) { + in = urlConnection.getInputStream(); + } else { + in = urlConnection.getErrorStream(); + } + bufferedReader = new BufferedReader(new InputStreamReader(in, "utf-8")); + StringBuffer temp = new StringBuffer(); + String line = bufferedReader.readLine(); + while (line != null) { + temp.append(line).append("\r\n"); + line = bufferedReader.readLine(); + } + String ecod = urlConnection.getContentEncoding(); + if (ecod == null) { + ecod = Charset.forName("utf-8").name(); + } + result = new String(temp.toString().getBytes("utf-8"), ecod); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (null != bufferedReader) { + try { + bufferedReader.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (null != out) { + try { + out.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (null != in) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + urlConnection.disconnect(); + } + return result; + } + + + public String getSignature() { + return signature; + } + + public void setSignature(String signature) { + this.signature = signature; + } +} diff --git a/src/main/java/com/weaver/seconddev/sxjg/util/NccApiUtil2.java b/src/main/java/com/weaver/seconddev/sxjg/util/NccApiUtil2.java new file mode 100644 index 0000000..784144e --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/util/NccApiUtil2.java @@ -0,0 +1,339 @@ +package com.weaver.seconddev.sxjg.util; + +import com.alibaba.fastjson.JSONObject; +import com.weaver.ebuilder.common.exception.BusinessException; +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.PropertiesConfiguration; +import org.apache.http.HttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.spec.OAEPParameterSpec; +import javax.crypto.spec.PSource; +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLEncoder; +import java.nio.charset.Charset; +import java.security.*; +import java.security.spec.MGF1ParameterSpec; +import java.security.spec.X509EncodedKeySpec; +import java.util.HashMap; +import java.util.Map; + +public class NccApiUtil2 { + + private static final Logger log = LoggerFactory.getLogger(NccApiUtil2.class); + + public String getBaseUrl() { + return baseUrl; + } + + public void setBaseUrl(String baseUrl) { + this.baseUrl = baseUrl; + } + + private String baseUrl; + // 访问的nccloud系统的账套编码,开发环境使用develop,生产环境需要使用用root账号登录,在“系统管理”节点查看账套编码(由陕西建工HR系统提供) + private String biz_center; + + public String getClient_id() { + return client_id; + } + + public void setClient_id(String client_id) { + this.client_id = client_id; + } + + //陕煤HR系统在陕西建工HR系统中应用注册当中的app_id + private String client_id; + //陕煤HR系统在陕西建工HR系统中应用注册当中的app_secret(由陕西建工HR系统提供) + private String client_secret; + //陕西建工HR系统中应用注册当中的(公钥)pubKey(由陕西建工HR系统提供) + private String pubKey; + + private String signature; + public void init() { + PropertiesConfiguration p = null; + try { + p = new PropertiesConfiguration(); + p.setEncoding("utf-8"); + p.setFileName("config/nccconfig.properties"); + p.load(); + this.baseUrl = p.getString("sxjgncc.url"); + this.biz_center = p.getString("sxjgncc.biz_center"); + this.client_id = p.getString("sxjgncc.client_id"); + this.client_secret = p.getString("sxjgncc.client_secret"); + this.pubKey = p.getString("sxjgncc.public_key"); + }catch (ConfigurationException e) { + throw new BusinessException("获取sxjg.properties配置文件失败,", e); + } + } + + /** + * 获取设置的ncc用户token + * @return@ + * @throws Exception + */ + public String getToken() throws Exception { + Map paramMap = new HashMap(); + //获取token方式(固定为client_credentials) + paramMap.put("grant_type", "client_credentials"); + //陕煤HR系统在陕西建工HR系统中应用注册当中的app_id(由陕西建工HR系统提供) + paramMap.put("client_id", this.client_id); + //加密陕煤HR系统在陕西建工HR系统中应用注册当中的(公钥)pubKey和app_secret(由陕西建工HR系统提供) + String encode = URLEncoder.encode(pubEncrypt(this.pubKey, this.client_secret), "UTF-8");//需要写入报文头中 + paramMap.put("client_secret", encode); + // 账套编码,开发环境使用develop,生产环境需要使用用root账号登录,在“系统管理”节点查看账套编码(由陕西建工HR系统提供) + paramMap.put("biz_center", this.biz_center); + //请求加签,其算法getSHA256(client_id + client_secret + pubKey) + String sign = getSHA256(this.client_id + this.client_secret + this.pubKey, this.pubKey); + paramMap.put("signature", sign);//需要写入报文头中 + this.setSignature(sign); + //查询token的url + String url = this.baseUrl + "nccloud/opm/accesstoken"; + String mediaType = "application/x-www-form-urlencoded"; + String token = this.doPost(url, paramMap, mediaType, (Map)null, ""); + JSONObject rs = JSONObject.parseObject(token); + if(rs.getBoolean("success")) { + JSONObject jsonObject = rs.getJSONObject("data"); + String token1 = jsonObject.getString("access_token"); + return token1; + }else { + log.error("howec::::::::::::111:"+token); + throw new Exception("获取toaken失败!"); + } + } + + public String doJsonPost(String url, String accessToken, String json) { + log.error("NCC接口"+url+",推送报文:>>>>>>>>>>>>>>>>>>>>>>"+json); + CloseableHttpClient client = HttpClients.createDefault(); + HttpPost post = new HttpPost(url); + post.setHeader("Content-Type", "application/json;charset=utf-8"); + post.setHeader("access_token", accessToken); + post.setHeader("repeat_check","Y"); + post.setHeader("ucg_flag","Y"); + post.setHeader("signature",this.getSignature()); + post.setHeader("client_id",this.getClient_id()); + + String result=""; + try { + StringEntity s = new StringEntity(json,"UTF-8"); + s.setContentEncoding("utf-8"); + s.setContentType("application/json"); + post.setEntity(s); + // 发送请求 + HttpResponse httpResponse = client.execute(post); + // 获取响应输入流 + InputStream inStream = httpResponse.getEntity().getContent(); + BufferedReader reader = new BufferedReader(new InputStreamReader( + inStream,"utf-8")); + StringBuilder strber = new StringBuilder(); + String line; + while ((line = reader.readLine()) != null) + strber.append(line + "\n"); + inStream.close(); + result = strber.toString(); + log.error("NCC接口"+url+",返回值:>>>>>>>>>>>>>>>>>>>>>>"+result); + } catch (Exception e) { + e.printStackTrace(); + log.error("NCC接口"+url+",返回值:>>>>>>>>>>>1>>>>>>>>>>>"+e.getMessage()); + } + return result; + } + + public static String pubEncrypt(String pubKey, String src) throws Exception { + String target = null; + ByteArrayOutputStream out = null; + + try { + Key key = getPublicKey(pubKey); + Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding"); + cipher.init(1, key, new OAEPParameterSpec("SHA-256", "MGF1", new MGF1ParameterSpec("SHA-256"), PSource.PSpecified.DEFAULT)); + byte[] data = src.getBytes(); + int inputLen = data.length; + out = new ByteArrayOutputStream(); + int offSet = 0; + + for(int i = 0; inputLen - offSet > 0; offSet = i * 117) { + byte[] cache; + if (inputLen - offSet > 117) { + cache = cipher.doFinal(data, offSet, 117); + } else { + cache = cipher.doFinal(data, offSet, inputLen - offSet); + } + + out.write(cache, 0, cache.length); + ++i; + } + + target = (new Base64()).encodeToString(out.toByteArray()); + } catch (NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException | BadPaddingException | NoSuchAlgorithmException var14) { + throw new Exception("加密失败", var14); + } finally { + if (out != null) { + out.close(); + } + + } + return target; + } + public static Key getPublicKey(String pubKey) throws Exception { + PublicKey key = null; + + try { + byte[] keyBytes = (new Base64()).decode(pubKey);; + KeyFactory keyFactory = KeyFactory.getInstance("RSA"); + X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(keyBytes); + key = keyFactory.generatePublic(x509KeySpec); + return key; + } catch (Exception var5) { + throw new Exception("无效的密钥 ", var5); + } + } + + public static String getSHA256(String str, String key) throws Exception { + byte[] salt = new byte[16]; + SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); + random.setSeed(key.getBytes()); + random.nextBytes(salt); + String salt_value = (new Base64()).encodeToString(salt); + return getSHA256(str + salt_value.replaceAll("\r|\n", "")); + } + private static String getSHA256(String str) throws Exception { + String encodestr = ""; + MessageDigest messageDigest = MessageDigest.getInstance("SHA-256"); + messageDigest.update(str.getBytes("UTF-8")); + encodestr = byte2Hex(messageDigest.digest()); + return encodestr; + } + private static String byte2Hex(byte[] bytes) { + StringBuffer stringBuffer = new StringBuffer(); + String temp = null; + + for(int i = 0; i < bytes.length; ++i) { + temp = Integer.toHexString(bytes[i] & 255); + if (temp.length() == 1) { + stringBuffer.append("0"); + } + + stringBuffer.append(temp); + } + + return stringBuffer.toString(); + } + + + + + /** + * 发送post请求 + * + * @param baseUrl + * @param paramMap + * @param mediaType + * @param headers + * @param json + * @return + */ + private static String doPost(String baseUrl, Map paramMap, String mediaType, Map headers, String json) { + + HttpURLConnection urlConnection = null; + InputStream in = null; + OutputStream out = null; + BufferedReader bufferedReader = null; + String result = null; + try { + StringBuffer sb = new StringBuffer(); + sb.append(baseUrl); + if (paramMap != null) { + sb.append("?"); + for (Map.Entry entry : paramMap.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue(); + sb.append(key + "=" + value).append("&"); + } + baseUrl = sb.toString().substring(0, sb.toString().length() - 1); + } + + URL urlObj = new URL(baseUrl); + urlConnection = (HttpURLConnection) urlObj.openConnection(); + urlConnection.setConnectTimeout(50000); + urlConnection.setRequestMethod("POST"); + urlConnection.setDoOutput(true); + urlConnection.setDoInput(true); + urlConnection.setUseCaches(false); + urlConnection.addRequestProperty("content-type", mediaType); + if (headers != null) { + for (String key : headers.keySet()) { + urlConnection.addRequestProperty(key, headers.get(key)); + } + } + out = urlConnection.getOutputStream(); + out.write(json.getBytes("utf-8")); + out.flush(); + int resCode = urlConnection.getResponseCode(); + if (resCode == HttpURLConnection.HTTP_OK || resCode == HttpURLConnection.HTTP_CREATED || resCode == HttpURLConnection.HTTP_ACCEPTED) { + in = urlConnection.getInputStream(); + } else { + in = urlConnection.getErrorStream(); + } + bufferedReader = new BufferedReader(new InputStreamReader(in, "utf-8")); + StringBuffer temp = new StringBuffer(); + String line = bufferedReader.readLine(); + while (line != null) { + temp.append(line).append("\r\n"); + line = bufferedReader.readLine(); + } + String ecod = urlConnection.getContentEncoding(); + if (ecod == null) { + ecod = Charset.forName("utf-8").name(); + } + result = new String(temp.toString().getBytes("utf-8"), ecod); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (null != bufferedReader) { + try { + bufferedReader.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (null != out) { + try { + out.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (null != in) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + urlConnection.disconnect(); + } + return result; + } + + + public String getSignature() { + return signature; + } + + public void setSignature(String signature) { + this.signature = signature; + } +} diff --git a/src/main/java/com/weaver/seconddev/sxjg/util/NccResultUtil.java b/src/main/java/com/weaver/seconddev/sxjg/util/NccResultUtil.java new file mode 100644 index 0000000..cc97722 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/util/NccResultUtil.java @@ -0,0 +1,44 @@ +package com.weaver.seconddev.sxjg.util; + +import com.alibaba.fastjson.JSONObject; + +public class NccResultUtil { + private Boolean result; + private String description; + + public NccResultUtil() { + + } + + public NccResultUtil(String rs) { + JSONObject rs1 = JSONObject.parseObject(rs); + if(rs1.getBoolean("success")) { + if("1000000000".equals(rs1.getString("code"))) { + this.setResult(true); + }else { + this.setResult(false); + this.setDescription(rs1.getString("message")); + } + }else { + this.setResult(false); + this.setDescription(rs1.getString("message")); + } + } + + public Boolean getResult() { + return result; + } + + public void setResult(Boolean result) { + this.result = result; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + +} diff --git a/src/main/java/com/weaver/seconddev/sxjg/util/PersondataQueryUtil.java b/src/main/java/com/weaver/seconddev/sxjg/util/PersondataQueryUtil.java new file mode 100644 index 0000000..c0116ba --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/util/PersondataQueryUtil.java @@ -0,0 +1,142 @@ +package com.weaver.seconddev.sxjg.util; + + +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +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; + + + +@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; 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); + } + } + } + } + } + } + } + } + } + } + } + } + }catch (Exception e){ + e.printStackTrace(); + log.error("queryNccloudPersondata-e:"+e); + } + + return resJsonObject.toString(); + } + +} diff --git a/src/main/java/com/weaver/seconddev/sxjg/util/ProvinceCityNode.java b/src/main/java/com/weaver/seconddev/sxjg/util/ProvinceCityNode.java new file mode 100644 index 0000000..2ff299e --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/util/ProvinceCityNode.java @@ -0,0 +1,20 @@ +package com.weaver.seconddev.sxjg.util; + +import java.util.ArrayList; +import java.util.List; + +public class ProvinceCityNode { + public String parentid; + public String id; + public String value; + public String label; + public boolean disabled = false; + public boolean isLeaf = false; + public boolean loading = false; + public ProvinceCityNode(String id,String parentid,String value, String label) { + this.value = value; + this.label = label; + this.id = id; + this.parentid = parentid; + } +} \ No newline at end of file diff --git a/src/main/java/com/weaver/seconddev/sxjg/util/Test.java b/src/main/java/com/weaver/seconddev/sxjg/util/Test.java new file mode 100644 index 0000000..d5b7434 --- /dev/null +++ b/src/main/java/com/weaver/seconddev/sxjg/util/Test.java @@ -0,0 +1,96 @@ +package com.weaver.seconddev.sxjg.util; + +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Base64; + +import cn.com.infosec.netsign.agent.util.IOUtils; +import com.google.gson.Gson; +public class Test { + + public static void main(String[] args) throws Exception { + System.out.println(1); + InputStream inputStream = getInputStreamByUrl("http://10.73.4.5:20600/papi/file/local/download/897827c9a77c4199b629cc1d7b848b52?tenantKey=tl2qvzz346&response-expires=V2VkIERlYyAyNyAxNDo0NzozOSBDU1QgMjAyMw==&response-content-disposition=YXR0YWNobWVudDtmaWxlbmFtZT0i5paw5bu6IOaWh-acrOaWh-ahoyAoNCkudHh0Ig==&download=MA=="); + System.out.println("2222222222222222222222222222"); + byte[] fileBytesArray = null; + fileBytesArray = readBytesFromInputStream(inputStream); + System.out.println("3333333333333"); + String jsonResult = convertToJson("filename", fileBytesArray); + System.out.println(jsonResult); + } + + public static InputStream getInputStreamByUrl(String strUrl) { + System.out.println("11111111"); + HttpURLConnection conn = null; + try { + URL url = new URL(strUrl); + conn = (HttpURLConnection) url.openConnection(); + conn.setRequestMethod("GET"); + conn.setConnectTimeout(20 * 1000); + final ByteArrayOutputStream output = new ByteArrayOutputStream(); + IOUtils.copy(conn.getInputStream(), output); + return new ByteArrayInputStream(output.toByteArray()); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (conn != null) { + conn.disconnect(); + } + } catch (Exception e) { + } + } + return null; + } + + + public static byte[] readBytesFromInputStream(InputStream input) { + System.out.println("111111111111111"); + try { + System.out.println("2222222222222222"); + return org.apache.commons.io.IOUtils.toByteArray(input); + } catch (IOException e) { + System.out.println("2222222"); + e.printStackTrace(); + } + return null; + } + + + + public static String convertToJson(String fileName, byte[] fileBytesArray) { + Gson gson = new Gson(); + String jsonResult = gson.toJson(new FileData(fileName, fileBytesArray)); + return jsonResult; + } + + static class FileData { + private String file_name; + private byte[] filebytes_array; + + public FileData(String file_name, byte[] filebytes_array) { + this.file_name = file_name; + this.filebytes_array = filebytes_array; + } + + public String getFile_name() { + return file_name; + } + + public void setFile_name(String file_name) { + this.file_name = file_name; + } + + public byte[] getFilebytes_array() { + return filebytes_array; + } + + public void setFilebytes_array(byte[] filebytes_array) { + this.filebytes_array = filebytes_array; + } + } +} diff --git a/src/main/resources/config/nccconfig.properties b/src/main/resources/config/nccconfig.properties new file mode 100644 index 0000000..9efb87e --- /dev/null +++ b/src/main/resources/config/nccconfig.properties @@ -0,0 +1,47 @@ +#测试 +sxjgncc.url=http://10.72.2.28:7000/ +sxjgncc.biz_center=NCC0826 +sxjgncc.client_id=webfw +sxjgncc.client_secret=0169ae6c2ac54591b324 +sxjgncc.public_key=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnzizIsSZFLi/Z14ah/GztvQgRpdxAi5+u8dgXfXFQuOgC0r1a0d3Mol6BOYqTDqE7zHGl45iglRasZ0i87/DJ5PaDq5aP0hA5oTLaOSWg2Ux94sVPzBP3xd4Vpij57hIg2t11Uku8VqhuHPM4DY1nDZEzfJwIDSpkcrlLGQKoQaCVduZzNm6uZR0Q0EcGjhi3EeT2wgSVsxzaw3UHUO9cKh4Bf9Yb1cy+yvRj8SyOveCqtYbBWzuxXERESPKS6ftTbCqh7dkx2CqXsoPCo5a0Yobikz/6Bdw3qk0sEU4A04Y4hYZPslNzzqzY7snn5KsQRd2vcYKtsyOxTMuM5HoAQIDAQAB +sxjgncc.b1=uf_rcrt_entry1098 +sxjgncc.b2=uf_rcrt_entry1154 +sxjgncc.b3=uf_rcrt_entry1252 +sxjgncc.b4=uf_rcrt_entry1297 +sxjgncc.b5=uf_rcrt_entry1354 +sxjgncc.b6=uf_rcrt_entry1404 +sxjgncc.b7=uf_rcrt_entry1452 +sxjgncc.b8=uf_rcrt_entry1498 +sxjgncc.b9=uf_rcrt_entry1561 + +sxjgncc.b10=uf_rcrt_entry1615 +sxjgncc.b11=uf_rcrt_entry1662 +#子企业内部调配报到联系单定薪表 +sxjgncc.b12=ft_zqynbdpbdl6098 +#职工报到联系单-总部定薪表 +sxjgncc.b13=ft_staff_bdlxd_t1 +#职工内部调配联系单-总部定薪表 +sxjgncc.b14=ft_staff_nbbdlxd_t1 +#生产 +#sxjgncc.url=http://10.71.2.46:6007/ +#sxjgncc.biz_center=NCC0826 +#sxjgncc.client_id=webfw +#sxjgncc.client_secret=0169ae6c2ac54591b324 +#sxjgncc.public_key=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnzizIsSZFLi/Z14ah/GztvQgRpdxAi5+u8dgXfXFQuOgC0r1a0d3Mol6BOYqTDqE7zHGl45iglRasZ0i87/DJ5PaDq5aP0hA5oTLaOSWg2Ux94sVPzBP3xd4Vpij57hIg2t11Uku8VqhuHPM4DY1nDZEzfJwIDSpkcrlLGQKoQaCVduZzNm6uZR0Q0EcGjhi3EeT2wgSVsxzaw3UHUO9cKh4Bf9Yb1cy+yvRj8SyOveCqtYbBWzuxXERESPKS6ftTbCqh7dkx2CqXsoPCo5a0Yobikz/6Bdw3qk0sEU4A04Y4hYZPslNzzqzY7snn5KsQRd2vcYKtsyOxTMuM5HoAQIDAQAB +#sxjgncc.b1=uf_rcrt_entry0210 +#sxjgncc.b2=uf_rcrt_entry0277 +#sxjgncc.b3=uf_rcrt_entry0430 +#sxjgncc.b4=uf_rcrt_entry0520 +#sxjgncc.b5=uf_rcrt_entry0594 +#sxjgncc.b6=uf_rcrt_entry0672 +#sxjgncc.b7=uf_rcrt_entry0745 +#sxjgncc.b8=uf_rcrt_entry0814 +#sxjgncc.b9=uf_rcrt_entry0880 +#sxjgncc.b10=uf_rcrt_entry0948 +#sxjgncc.b11=uf_rcrt_entry1024 +##子企业内部调配报到联系单定薪表 +#sxjgncc.b12=ft_zqynbdp_dtxb +##职工报到联系单-总部定薪表 +#sxjgncc.b13=ft_staff_bdlxd_t1 +##职工内部调配联系单-总部定薪表 +#sxjgncc.b14=ft_staff_nbbdlxd_t1 \ No newline at end of file