From 7069df374efa75aa022453c60a5af1785aed687e Mon Sep 17 00:00:00 2001 From: xiang2lin <251481237@qq.com> Date: Wed, 9 Oct 2024 15:44:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20OA=E4=BB=98=E6=AC=BE=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E5=8D=95=E6=B5=81=E7=A8=8B=E7=BB=93=E6=9D=9F=E4=BC=A0u8c?= =?UTF-8?q?=E6=8B=86=E5=88=86=E6=88=90=E7=8B=AC=E7=AB=8B=E7=9A=84=E6=8F=92?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PayReqSyncU8CPluginInitializer.java | 152 ++++++++++++++++++ .../service/INingboBankPluginService.java | 6 +- .../impl/NingboBankPluginServiceImpl.java | 99 ++++++++++-- 3 files changed, 238 insertions(+), 19 deletions(-) create mode 100644 buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/PayReqSyncU8CPluginInitializer.java diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/PayReqSyncU8CPluginInitializer.java b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/PayReqSyncU8CPluginInitializer.java new file mode 100644 index 00000000..bf7d7ae8 --- /dev/null +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/plugin/PayReqSyncU8CPluginInitializer.java @@ -0,0 +1,152 @@ +package com.hzya.frame.plugin.a8bill.plugin; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.base.PluginBaseEntity; +import com.hzya.frame.plugin.a8bill.dao.IPayBillPluginInitializerDao; +import com.hzya.frame.plugin.a8bill.entity.PayBillEntity; +import com.hzya.frame.plugin.a8bill.service.INingboBankPluginService; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.service.IIntegrationTaskLivingDetailsService; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; + +/** + * @Description OA付款申请审批完成后传u8c + * @Author xiangerlin + * @Date 2024/10/9 14:19 + **/ +public class PayReqSyncU8CPluginInitializer extends PluginBaseEntity { + Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private INingboBankPluginService ningboBankPluginService; + @Resource + private IIntegrationTaskLivingDetailsService taskLivingDetailsService; + @Autowired + private IPayBillPluginInitializerDao payBillDao; + @Value("${OA.data_source_code}") + private String oa_data_source_code; + + /*** + * 插件初始化方法 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-02 10:48 + * @Param [] + * @return void + **/ + @Override + public void initialize() { + logger.info(getPluginLabel() + "執行初始化方法initialize()"); + } + + /**** + * 插件销毁方法 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public void destroy() { + logger.info(getPluginLabel() + "執行銷毀方法destroy()"); + } + + /**** + * 插件的ID + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginId() { + return "PayReqSyncU8CPlugin"; + } + + /**** + * 插件的名称 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginName() { + return "付款申请审批结果传U8C"; + } + + /**** + * 插件的显示值 + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-08-02 10:48 + * @return void + **/ + @Override + public String getPluginLabel() { + return "付款申请审批结果传U8C"; + } + + /*** + * 插件类型 1、场景插件 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-02 14:01 + * @Param [] + * @return java.lang.String + **/ + @Override + public String getPluginType() { + return "1"; + } + + /*** + * 执行业务代码 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-08-07 11:20 + * @param requestJson 执行业务代码的参数 + * @return void + **/ + @Override + public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception { + logger.info("======开始执行付款申请审批结果传U8C========"); + JSONObject requestJsonObj = JSON.parseObject(requestJson.toString(), JSONObject.class); + String integration_task_living_details_id = requestJsonObj.getString("integration_task_living_details_id"); + IntegrationTaskLivingDetailsEntity oldMsg = new IntegrationTaskLivingDetailsEntity(); + if (StrUtil.isNotEmpty(integration_task_living_details_id)) { + oldMsg = taskLivingDetailsService.get(integration_task_living_details_id); + } + String rootAppPk = oldMsg.getRootAppPk(); + try { + StringBuffer sb = new StringBuffer(); + if (StrUtil.isNotEmpty(rootAppPk)) { + sb.append(" and id = '" + rootAppPk + "'"); + }else { + sb.append("and finishedflag = '1' and pushState is null"); + } + PayBillEntity oaBillEntity = new PayBillEntity(); + oaBillEntity.setDataSourceCode(oa_data_source_code); + StringBuffer stringBuffer = new StringBuffer(); + //付款单 + stringBuffer.append("SELECT * from v_hzya_payres_u8c WHERE 1= 1 "); + stringBuffer.append(sb.toString()); + List> hashMaps = payBillDao.getOaBillData(stringBuffer.toString(), oaBillEntity); + for (HashMap hashMap : hashMaps) { + JSONObject main = new JSONObject(); + for (String key : hashMap.keySet()) { + main.put(key, hashMap.get(key)); + } + ningboBankPluginService.updateU8CStatus(main,integration_task_living_details_id); + } + } catch (Exception e) { + logger.info("获取OA数据失败" + e.getMessage()); + e.printStackTrace(); + } + return BaseResult.getSuccessMessageEntity(getPluginName()+"执行成功"); + } +} diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/service/INingboBankPluginService.java b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/service/INingboBankPluginService.java index 80c6010f..a60a7302 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/service/INingboBankPluginService.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/service/INingboBankPluginService.java @@ -53,8 +53,8 @@ public interface INingboBankPluginService { /** * 更新u8c单据状态 - * @param billCode oa单据编号 - * @param dwbm 公司编码 + * @param jsonObject + * @param integration_task_living_details_id 重试id */ - void updateU8CStatus(String billCode,String dwbm); + void updateU8CStatus(JSONObject jsonObject,String integration_task_living_details_id); } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/service/impl/NingboBankPluginServiceImpl.java b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/service/impl/NingboBankPluginServiceImpl.java index 1a5f22ea..889ba344 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/service/impl/NingboBankPluginServiceImpl.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/a8bill/service/impl/NingboBankPluginServiceImpl.java @@ -157,8 +157,6 @@ private IFormmain0044Service formmain0044Service; //修改推送状态,防止重复推送 oaBillEntity.setSql(str); payBillDao.updateStateForId(str,oaBillEntity); - //更新u8c付款单状态 - updateU8CStatus(main.getString("serialNo"),main.getString("dwbm")); }catch (Exception e){ logger.info("宁波银行付款接口调用出错:{}",e); } @@ -386,25 +384,94 @@ private IFormmain0044Service formmain0044Service; /** * 更新u8c单据状态 - * @param billCode oa单据编号 - * @param dwbm 公司编码 + * @param main */ @Override - public void updateU8CStatus(String billCode,String dwbm) { + public void updateU8CStatus(JSONObject main,String integration_task_living_details_id) { + String billCode = main.getString("serialNo"); + String dwbm = main.getString("dwbm"); + String state = main.getString("state"); + String userCode = main.getString("userCode"); + String id = main.getString("id"); if (StrUtil.isNotEmpty(billCode)){ - JSONObject param = new JSONObject(); - param.put("billno",billCode); - param.put("corpcode",dwbm); - param.put("billType","paybill"); - param.put("userCode","15715849962"); - param.put("ckeckResult","Y"); - param.put("ckeckNote","审批通过"); - String s = executeEsb(param.toString(), "8000350060","800035"); - System.out.println("调用U8C付款单审批返回参数"+s); - logger.info("调用U8C付款单审批返回参数:{}",s); + PayBillEntity oaBillEntity = new PayBillEntity(); + oaBillEntity.setDataSourceCode(oa_data_source_code); + String str = "update formmain_0058 set field0072 = 'N' where id = "+id; + try { + JSONObject param = new JSONObject(); + param.put("billno",billCode); + param.put("corpcode",dwbm); + param.put("billType","paybill"); + param.put("userCode",userCode); + param.put("ckeckResult","3".equals(state) ? "Y" :"N"); + param.put("ckeckNote",getStateName(state)); + String result = executeEsb(param.toString(), "8000350060","800035"); + logger.info("调用U8C付款单审批返回参数:{}",result); + //保存日志 + IntegrationTaskLivingDetailsEntity taskLivingDetail = new IntegrationTaskLivingDetailsEntity(); + taskLivingDetail.setCreate_time(new Date()); + taskLivingDetail.setModify_time(new Date()); + taskLivingDetail.setRootAppPk(id); + taskLivingDetail.setRootAppBill(main.getString("serialNo")); + taskLivingDetail.setPluginId("PayReqSyncU8CPlugin"); + taskLivingDetail.setRootAppNewData(param.toString()); + taskLivingDetail.setNewTransmitInfo(result); + taskLivingDetail.setNewPushDate(new Date()); + JSONObject resultObj = JSON.parseObject(result); + boolean flag = resultObj.getBoolean("flag"); + //保存日志 + saveLog(integration_task_living_details_id,flag,taskLivingDetail); + //更新oa表单推送状态 + if (flag){ + str = "update formmain_0058 set field0072 = 'Y' where id = "+id; + } + }catch (Exception e){ + logger.error("执行U8C付款单审批接口出错:{}",e); + } + //修改推送状态,防止重复推送 + oaBillEntity.setSql(str); + try { + payBillDao.updateStateForId(str,oaBillEntity); + } catch (Exception e) { + logger.error("执行U8C付款单审批接口后更新OA单据状态出错:{}",e); + } + } + } + //审批状态对应的中文 + private String getStateName(String state){ + if ("3".equals(state)){ + return "审批通过"; + }else if ("1".equals(state)){ + return "流程终止"; + }else if ("2".equals(state)){ + return "流程撤销"; + } + return "审批通过"; + } + public void saveLog(String integration_task_living_details_id, Boolean flag, IntegrationTaskLivingDetailsEntity taskLivingDetail){ + try { + //判断,成功调用这个方法 + if (StrUtil.isEmpty(integration_task_living_details_id)){ + if (flag){ + taskLivingDetailsService.saveLogToSuccess(taskLivingDetail); + }else { + //失败 调用这个方法 + taskLivingDetailsService.saveLogToFail(taskLivingDetail); + } + }else { + taskLivingDetail.setId(integration_task_living_details_id); + if (flag){ + //如果是重试 成功调这个方法 + taskLivingDetailsService.saveLogFailToSuccess(taskLivingDetail); + }else { + //如果是重试 失败调这个方法 + taskLivingDetailsService.updateLogFailToSuccess(taskLivingDetail); + } + } + }catch (Exception e){ + logger.error("保存日志出错:{}",e); } } - private static String getAccLogXmlTemplate(){ // return ""; return "";