grp报销单

This commit is contained in:
xiang2lin 2025-03-13 14:01:51 +08:00
parent c38307e79c
commit 3c2fbbcb6f
2 changed files with 90 additions and 13 deletions

View File

@ -1,5 +1,6 @@
package com.hzya.frame.grpU8.nxproof.oerdjml.service;
import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity;
/**
@ -15,4 +16,12 @@ public interface IOerDjmlExtService {
* @return
*/
SysExtensionApiEntity saveExpensePre(SysExtensionApiEntity entity);
/**
* 保存方法前先调这个方法 组装参数
* 插件方式执行用这个方法
* @param jsonObject
* @return
*/
String saveExpensePrePlugin(JSONObject jsonObject);
}

View File

@ -7,6 +7,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.grpU8.nxproof.oerdjjsfs.entity.OerDjjsfsEntity;
@ -33,6 +34,7 @@ import java.io.*;
import java.net.URLDecoder;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.zip.ZipEntry;
@ -74,15 +76,87 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
}
}
Map<String, String> headers = entity.getHeaders();
JSONObject bodyObj = JSONObject.parseObject(bodys);
String res = oerValuOf(bodyObj, headers, grpDataSourceCode);
// String formmainTableName = headers.get("formmainTableName");
// String forsonTableName = headers.get("forsonTableName");
// String djlx = headers.get("djlx");
// //事件类型
// String eventType = bodyObj.getString("eventType");
// //summaryId
// String summaryId = bodyObj.getString("summaryId");
// JSONObject seeyonData = bodyObj.getJSONObject("businessDataStr");
// if (null != seeyonData){
// /**
// * 流程发起 保存/更新单据 要全部数据
// * 流程撤销 只更新状态传单号和状态就好了
// * 流程终止 只更新状态传单号和状态就好了
// * 流程结束 更新状态 并上传附件
// */
// JSONObject formmainData = seeyonData.getJSONObject(formmainTableName);
// JSONArray forsonData = seeyonData.getJSONArray(forsonTableName);
// String res = "";
// if (DjlxEnum.TRAVEL.type.equals(djlx)) {
// //差旅报销 travel
// res = travel(headers,eventType,summaryId,grpDataSourceCode,formmainData,forsonData);
// }else if(DjlxEnum.EXPENSE.type.equals(djlx)){
// //费用报销 expense
// res = expense(headers,eventType,summaryId,grpDataSourceCode, formmainData, forsonData);
// }else if (DjlxEnum.LABOR.type.equals(djlx)){
// //劳务费 labor
// }
// if (StrUtil.isNotEmpty(res)){
// entity.setBodys(res);
// return entity;
// }
// }
if (StrUtil.isNotEmpty(res)){
entity.setBodys(res);
return entity;
}
}catch (Exception ex ){
logger.error("保存报销单之前组装参数出错",ex);
}
return null;
}
/**
* 保存方法前先调这个方法 组装参数
* 插件方式执行用这个方法
*
* @param jsonObject
* @return
*/
@Override
public String saveExpensePrePlugin(JSONObject jsonObject) {
if (null != jsonObject){
JSONObject jsonStr = jsonObject.getJSONObject("jsonStr");
JSONObject bodyObj = jsonStr.getJSONObject("businessDataStr");
Map<String, String> headers = JSON.parseObject(jsonObject.getString("headers"), new HashMap<String, String>().getClass());
String dataSourceCode = jsonObject.getString("apiDataSourceCode");
String res = oerValuOf(jsonStr, headers, dataSourceCode);
return res;
}
return null;
}
/**
* 组装参数
* @param jsonStr 请求体参数
* @param headers 请求头参数
* @param dataSourceCode 数据源编码
* @return
*/
private String oerValuOf(JSONObject jsonStr,Map<String, String> headers,String dataSourceCode){
if (null != jsonStr && null != headers && !headers.isEmpty()){
String formmainTableName = headers.get("formmainTableName");
String forsonTableName = headers.get("forsonTableName");
String djlx = headers.get("djlx");
JSONObject bodyObj = JSONObject.parseObject(bodys);
//事件类型
String eventType = bodyObj.getString("eventType");
String eventType = jsonStr.getString("eventType");
//summaryId
String summaryId = bodyObj.getString("summaryId");
JSONObject seeyonData = bodyObj.getJSONObject("businessDataStr");
String summaryId = jsonStr.getString("summaryId");
JSONObject seeyonData = jsonStr.getJSONObject("businessDataStr");
if (null != seeyonData){
/**
* 流程发起 保存/更新单据 要全部数据
@ -95,24 +169,18 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
String res = "";
if (DjlxEnum.TRAVEL.type.equals(djlx)) {
//差旅报销 travel
res = travel(headers,eventType,summaryId,grpDataSourceCode,formmainData,forsonData);
res = travel(headers,eventType,summaryId,dataSourceCode,formmainData,forsonData);
}else if(DjlxEnum.EXPENSE.type.equals(djlx)){
//费用报销 expense
res = expense(headers,eventType,summaryId,grpDataSourceCode, formmainData, forsonData);
res = expense(headers,eventType,summaryId,dataSourceCode, formmainData, forsonData);
}else if (DjlxEnum.LABOR.type.equals(djlx)){
//劳务费 labor
}
if (StrUtil.isNotEmpty(res)){
entity.setBodys(res);
return entity;
}
return res;
}
}catch (Exception ex ){
logger.error("保存报销单之前组装参数出错",ex);
}
return null;
}
/**
* 费用报销单
* @param headers 请求头