diff --git a/src/main/java/com/api/xuanran/wang/sh_bigdata/sso/service/impl/OtherSystemToOAServiceImpl.java b/src/main/java/com/api/xuanran/wang/sh_bigdata/sso/service/impl/OtherSystemToOAServiceImpl.java index c07bd3c..460558b 100644 --- a/src/main/java/com/api/xuanran/wang/sh_bigdata/sso/service/impl/OtherSystemToOAServiceImpl.java +++ b/src/main/java/com/api/xuanran/wang/sh_bigdata/sso/service/impl/OtherSystemToOAServiceImpl.java @@ -69,7 +69,7 @@ public class OtherSystemToOAServiceImpl implements OtherSystemToOAService { String sql = "select id from hrmresource where " + Util.null2DefaultStr(ShBigDataUtil.getPropertiesValByKey("ssoOaCompareField"),"outkey") + " = #{outKey}"; int id = otherSystemToOAMapper.selectUserIdByOutKey(sql, oaOutKey); if(id < 0){ - throw new CustomerException(Util.logStr("code : {} not found in OA!", id)); + throw new CustomerException(Util.logStr("code : {} not found in OA!", oaOutKey)); } return id; } diff --git a/src/main/java/weaver/xuanran/wang/immc/service/WorkFlowToVmsAndMQService.java b/src/main/java/weaver/xuanran/wang/immc/service/WorkFlowToVmsAndMQService.java index 6de58fa..efcbf85 100644 --- a/src/main/java/weaver/xuanran/wang/immc/service/WorkFlowToVmsAndMQService.java +++ b/src/main/java/weaver/xuanran/wang/immc/service/WorkFlowToVmsAndMQService.java @@ -42,6 +42,7 @@ public class WorkFlowToVmsAndMQService { // 表单字段 private static final String VMS_SUCCESS = "vms_success"; private static final String SUCCESS = "0"; + { httpUtils.getGlobalCache().header.put("Content-Type", MediaType.APPLICATION_JSON); // 全局请求头 } @@ -50,11 +51,11 @@ public class WorkFlowToVmsAndMQService { /** *

推送数据

* - * @param onlyMark 唯一编码 - * @param billTable 表名 - * @param requestId 请求id + * @param onlyMark 唯一编码 + * @param billTable 表名 + * @param requestId 请求id * @param vmsResponseVoField vms成功标识 - * @param config kafka配置文件名称 + * @param config kafka配置文件名称 * @author xuanran.wang * @dateTime 2022/12/5 17:05 **/ @@ -68,9 +69,9 @@ public class WorkFlowToVmsAndMQService { String url = requestMappingConfig.getRequestUrl(); dealWithMapping.setMainTable(billTable); Map param = dealWithMapping.getRequestParam(recordSet, requestMappingConfig); - String vmsSuccess = Util.null2DefaultStr(recordSet.getString(VMS_SUCCESS),""); - String mqSuccess = Util.null2DefaultStr(recordSet.getString(MQ_SUCCESS),""); - if(!SUCCESS.equals(vmsSuccess)){ + String vmsSuccess = Util.null2DefaultStr(recordSet.getString(VMS_SUCCESS), ""); + String mqSuccess = Util.null2DefaultStr(recordSet.getString(MQ_SUCCESS), ""); + if (!SUCCESS.equals(vmsSuccess)) { ResponeVo responeVo; try { responeVo = httpUtils.apiPost(url, param); @@ -80,7 +81,7 @@ public class WorkFlowToVmsAndMQService { parseResponseVo(responeVo, url, param, vmsResponseVoField); updateWorkFlow(VMS_SUCCESS, billTable, requestId); } - if(!SUCCESS.equals(mqSuccess) && StringUtils.isNotBlank(config)){ + if (!SUCCESS.equals(mqSuccess) && StringUtils.isNotBlank(config)) { sendToMQ(config, param); updateWorkFlow(MQ_SUCCESS, billTable, requestId); } @@ -88,13 +89,14 @@ public class WorkFlowToVmsAndMQService { /** *

解析响应对象

+ * + * @param responseVo 响应对象 + * @param url 地址 + * @param requestParam 请求 * @author xuanran.wang * @dateTime 2022/12/23 11:25 - * @param responseVo 响应对象 - * @param url 地址 - * @param requestParam 请求 **/ - private void parseResponseVo(ResponeVo responseVo, String url, Map requestParam, VmsResponseVoField vmsResponseVoField){ + private void parseResponseVo(ResponeVo responseVo, String url, Map requestParam, VmsResponseVoField vmsResponseVoField) { if (responseVo.getCode() != SUCCESS_CODE) { // 相应状态码 log.error(Util.logStr("can not fetch [{}],this request params is [{}]," + // 构建日志字符串 "this request heard is [{}],but response status code is [{}]," + @@ -112,63 +114,65 @@ public class WorkFlowToVmsAndMQService { /** *

将流程信息发送到kafka

+ * + * @param kafkaConfig kafka配置文件名称 + * @param message 消息对象 * @author xuanran.wang * @dateTime 2023/3/30 14:56 - * @param kafkaConfig kafka配置文件名称 - * @param message 消息对象 **/ - public void sendToMQ(String kafkaConfig, Map message){ + public void sendToMQ(String kafkaConfig, Map message) { KafkaProducer producer = null; InputStream inputStream = null; - try { - String path = GCONST.getPropertyPath() + "prop2map" + File.separator + kafkaConfig + ".properties"; - File configFile = new File(path); - if(!configFile.exists()){ - throw new CustomerException("please check /web-inf/prop2map has " + kafkaConfig + ".properties"); - } - Properties prop = new Properties(); - inputStream= new BufferedInputStream(Files.newInputStream(configFile.toPath())); - prop.load(inputStream); - log.info("prop => " + JSONObject.toJSONString(prop)); - log.info("msg => " + JSONObject.toJSONString(message)); - String topic = Util.null2DefaultStr(prop.getProperty("topic"),""); - if(StringUtils.isBlank(topic)){ - throw new CustomerException("kafka properties topic can not null!"); - } - producer = new KafkaProducer<>(prop); - // 发送消息到指定主题 - ProducerRecord record = new ProducerRecord<>(topic, JSONObject.toJSONString(message)); - producer.send(record).get(); - }catch (Exception e){ - log.error(Util.getErrString(e)); - throw new CustomerException(Util.logStr("send to kafka error!: [{}]", e.getMessage())); - }finally { - // 关闭Kafka生产者实例 - if(producer != null){ - producer.close(); - } - if(inputStream != null){ - try { - inputStream.close(); - }catch (Exception e){ - log.error("inputStream close error! " + e.getMessage()); - } - } - } + try { + String path = GCONST.getPropertyPath() + "prop2map" + File.separator + kafkaConfig + ".properties"; + File configFile = new File(path); + if (!configFile.exists()) { + throw new CustomerException("please check /web-inf/prop2map has " + kafkaConfig + ".properties"); + } + Properties prop = new Properties(); + inputStream = new BufferedInputStream(Files.newInputStream(configFile.toPath())); + prop.load(inputStream); + log.info("prop => " + JSONObject.toJSONString(prop)); + log.info("msg => " + JSONObject.toJSONString(message)); + String topic = Util.null2DefaultStr(prop.getProperty("topic"), ""); + if (StringUtils.isBlank(topic)) { + throw new CustomerException("kafka properties topic can not null!"); + } + producer = new KafkaProducer<>(prop); + // 发送消息到指定主题 + ProducerRecord record = new ProducerRecord<>(topic, JSONObject.toJSONString(message)); + producer.send(record).get(); + } catch (Exception e) { + log.error(Util.getErrString(e)); + throw new CustomerException(Util.logStr("send to kafka error!: [{}]", e.getMessage())); + } finally { + // 关闭Kafka生产者实例 + if (producer != null) { + producer.close(); + } + if (inputStream != null) { + try { + inputStream.close(); + } catch (Exception e) { + log.error("inputStream close error! " + e.getMessage()); + } + } + } } /** *

更新流程sql

- * @author xuanran.wang - * @dateTime 2023/3/30 19:18 - * @param field 主表字段 + * + * @param field 主表字段 * @param tableName 表名 * @param requestId 请求id + * @author xuanran.wang + * @dateTime 2023/3/30 19:18 **/ - public void updateWorkFlow(String field, String tableName, String requestId){ + public void updateWorkFlow(String field, String tableName, String requestId) { String updateSQL = "update " + tableName + " set " + field + " = " + SUCCESS + " where requestid = ?"; RecordSet recordSet = new RecordSet(); - if(!recordSet.executeUpdate(updateSQL, requestId)){ + if (!recordSet.executeUpdate(updateSQL, requestId)) { log.error(Util.logStr("update field error! sql: {}, requestId: {}", updateSQL, requestId)); throw new CustomerException("更新表单字段失败!"); } diff --git a/src/main/java/weaver/xuanran/wang/sh_bigdata/common/util/SendTodoTaskUtil.java b/src/main/java/weaver/xuanran/wang/sh_bigdata/common/util/SendTodoTaskUtil.java index 62a118f..4a9e12d 100644 --- a/src/main/java/weaver/xuanran/wang/sh_bigdata/common/util/SendTodoTaskUtil.java +++ b/src/main/java/weaver/xuanran/wang/sh_bigdata/common/util/SendTodoTaskUtil.java @@ -74,6 +74,11 @@ public class SendTodoTaskUtil { todoTask.setAgentid(agentId); todoTask.setTaskName(obj.getRequestnamenew()); todoTask.setTaskDesc(obj.getRequestnamenew()); + String pcAgentId = ShBigDataUtil.getPropertiesValByKey("pcAgentId"); + if(StringUtils.isBlank(pcAgentId)){ + pcAgentId = agentId; + } + todoTask.setPcAgentId(pcAgentId); String todoSSOCallBackUrl = ShBigDataUtil.getPropertiesValByKey("todoSSOCallBackUrl"); StringBuilder sb = new StringBuilder(todoSSOCallBackUrl); sb.append("?user=") diff --git a/src/main/java/weaver/xuanran/wang/sh_bigdata/common/util/ShBigDataUtil.java b/src/main/java/weaver/xuanran/wang/sh_bigdata/common/util/ShBigDataUtil.java index 13de9f8..022066b 100644 --- a/src/main/java/weaver/xuanran/wang/sh_bigdata/common/util/ShBigDataUtil.java +++ b/src/main/java/weaver/xuanran/wang/sh_bigdata/common/util/ShBigDataUtil.java @@ -37,6 +37,7 @@ public class ShBigDataUtil { WHILTE_LIST.add("getUserIdDebugOutKey"); WHILTE_LIST.add("ssoInterfaceCompareField"); WHILTE_LIST.add("ssoOaCompareField"); + WHILTE_LIST.add("pcAgentId"); } /** diff --git a/src/main/java/weaver/xuanran/wang/sh_bigdata/task_async/entity/CusTodoTask.java b/src/main/java/weaver/xuanran/wang/sh_bigdata/task_async/entity/CusTodoTask.java index 1337e35..9ac3046 100644 --- a/src/main/java/weaver/xuanran/wang/sh_bigdata/task_async/entity/CusTodoTask.java +++ b/src/main/java/weaver/xuanran/wang/sh_bigdata/task_async/entity/CusTodoTask.java @@ -26,4 +26,5 @@ public class CusTodoTask { protected String mobileLinkUrl; protected String receiver; protected String sender; + protected String pcAgentId; } diff --git a/src/test/java/xuanran/wang/big_data/BigDataTest.java b/src/test/java/xuanran/wang/big_data/BigDataTest.java index 1639bc9..f828e71 100644 --- a/src/test/java/xuanran/wang/big_data/BigDataTest.java +++ b/src/test/java/xuanran/wang/big_data/BigDataTest.java @@ -391,8 +391,8 @@ public class BigDataTest extends BaseTest { @Test public void testG(){ - String oaOutKey = "111"; - String sql = "select id from hrmresource where " + Util.null2DefaultStr(ShBigDataUtil.getPropertiesValByKey("ssoOaCompareField"),"outkey") + " = #{outKey}"; + String oaOutKey = "wld"; + String sql = "select id from hrmresource where loginid = #{outKey}"; int id = otherSystemToOAMapper.selectUserIdByOutKey(sql, oaOutKey); log.info("id => " + id); }