package com.engine.kr.service.impl; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; import com.engine.core.impl.Service; import com.engine.kr.entity.kq.KqGlobal; import com.engine.kr.enums.KqInteractiveEnum; import com.engine.kr.exception.CustomizeRunTimeException; import com.engine.kr.service.KqInteractiveService; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import java.util.HashMap; import java.util.Map; /** * @author:dxfeng * @createTime: 2023/05/17 * @version: 1.0 */ public class KqInteractiveServiceImpl extends Service implements KqInteractiveService { @Override public Map getLeaveBal(Map params) { String token = getToken(); String jqlx = Util.null2String(params.get("jqlx")); String resourceId = Util.null2String(params.get("resourceId")); String dayoffType = ""; String workCode = ""; RecordSet rs = new RecordSet(); rs.executeQuery("select kqxtzdz from uf_jqzdpp where lczd =?", jqlx); if (rs.next()) { dayoffType = rs.getString("kqxtzdz"); } if (StringUtils.isBlank(dayoffType)) { throw new RuntimeException("假期余额获取失败,未找到假期类型对应编码[" + jqlx + "]"); } rs.executeQuery("select workcode from hrmresource where id = ?", resourceId); if (rs.next()) { workCode = rs.getString("workcode"); } if (StringUtils.isBlank(workCode)) { workCode = Util.null2String(params.get("workCode")); } Map postParam = new HashMap<>(4); postParam.put("token", token); postParam.put("personId", workCode); // 假别转换为代码 postParam.put("dayoffType", dayoffType); // 可不填 postParam.put("leaveDate", params.get("ksrq")); Map returnMap = new HashMap<>(); String returnStr = HttpUtil.post(KqGlobal.POST_URL + KqInteractiveEnum.LEAVE_BAL.getPostPath(), postParam); JSONObject jsonObject = JSONObject.parseObject(returnStr); String code = jsonObject.getString("code"); if (KqGlobal.SUC_CODE.equals(code)) { returnMap.put("dayoffBalHours", jsonObject.getString("dayoffBalHours")); } else { throw new CustomizeRunTimeException("假期余额获取失败," + jsonObject.getString("msg")); } return returnMap; } /** * 请求,获取token * * @return */ public String getToken() { Map params = new HashMap<>(2); params.put("user", KqGlobal.USER); params.put("pass", KqGlobal.PASS); String returnStr = HttpUtil.post(KqGlobal.POST_URL + KqInteractiveEnum.TOKEN.getPostPath(), params); JSONObject jsonObject = JSONObject.parseObject(returnStr); String code = jsonObject.getString("code"); if (KqGlobal.SUC_CODE.equals(code)) { return jsonObject.getString("token"); } else { throw new CustomizeRunTimeException("token获取失败," + jsonObject.getString("msg")); } } }