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

196 lines
8.7 KiB
Java

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<Map<String, Object>> execute(Map<String, Object> params) {
Map<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<Map<String, Object>> rs1 = jdbcTemplateresp.queryForList(sql);
if(CollectionUtil.isNotEmpty(rs1)) {
for(Map<String,Object> 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<String,Object> 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<String,Object> 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 "";
}
}