收款单、预提记账单、定期预提、上划、下拨核算维度传值sap优化
This commit is contained in:
parent
22e9e10298
commit
595d59dd59
|
|
@ -28,6 +28,7 @@ import shjh.jhzj7.fi.fi.utils.domin.ResponseData;
|
|||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 定期预提记账处理 shjh_cim_depositprein_ext-单据推送sap操作插件
|
||||
|
|
@ -75,13 +76,15 @@ public class DepositpreintSapOperation extends AbstractOperationServicePlugIn im
|
|||
DynamicObject prinfo;//定期预提记账处理单
|
||||
JSONObject sapReturnData;
|
||||
ResponseData respdata;
|
||||
//组装核算维度与sap凭证item字段对应关系map
|
||||
Map<String, String> sapMap = SapUtils.getAsstacttypeMap();
|
||||
for (int i = 0; i < dos.length; i++) {
|
||||
prinfo = BusinessDataServiceHelper.loadSingle(dos[i].getPkValue(), dos[i].getDataEntityType().getName());
|
||||
if(prinfo.getBoolean("shjh_needvoucher") && !prinfo.getBoolean("shjh_sendsap")){
|
||||
//如果预提记账处理单需要生成凭证且未推送sap的才推送sap
|
||||
//判断原蓝单和红单,调用sap不同接口 操作类别 冲销预提收益-红单 预提收益-蓝单
|
||||
if("preint".equals(prinfo.getString("operatetype"))){
|
||||
sapReturnData = sendBlueVoucher(prinfo);//蓝单
|
||||
sapReturnData = sendBlueVoucher(prinfo,sapMap);//蓝单
|
||||
if(sapReturnData != null && "0".equals(sapReturnData.getString("code"))){
|
||||
//解析sap凭证接口返回值
|
||||
respdata = ApiUtils.getResponseData(sapReturnData);
|
||||
|
|
@ -169,7 +172,7 @@ public class DepositpreintSapOperation extends AbstractOperationServicePlugIn im
|
|||
return sapReturnData;
|
||||
}
|
||||
|
||||
private JSONObject sendBlueVoucher(DynamicObject prinfo){
|
||||
private JSONObject sendBlueVoucher(DynamicObject prinfo, Map<String, String> sapMap){
|
||||
//SAP定期预提收益凭证接口入参组装和调用
|
||||
JSONObject IS_HEADER = new JSONObject();//抬头
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//日期格式化工具
|
||||
|
|
@ -252,11 +255,39 @@ public class DepositpreintSapOperation extends AbstractOperationServicePlugIn im
|
|||
hsxminfo = QueryServiceHelper.queryOne(ccName, "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
item.put("KOSTL",hsxminfo.getString("number"));//成本中心_成本中心
|
||||
}else if("f000054".equals(asstype) || "f000014".equals(asstype)){
|
||||
//原因码 f000014
|
||||
//付款原因代码 f000054
|
||||
hsxminfo = QueryServiceHelper.queryOne("gl_cashflowitem", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
item.put("RSTGR",hsxminfo.getString("number"));
|
||||
}
|
||||
}
|
||||
gl_assist_bd = QueryServiceHelper.query("gl_assist_txt", "asstype,assval",
|
||||
new QFilter[]{new QFilter("hg.id", QCP.equals, assgrpinfo.getPkValue())});//核算项目组合纵表-文本
|
||||
for (int j = 0; j < gl_assist_bd.size(); j++) {
|
||||
glassistbd = gl_assist_bd.get(j);
|
||||
asstype = glassistbd.getString("asstype");//核算项目类型-对应核算维度的字段名
|
||||
if("f000054".equals(asstype)){
|
||||
//原因码 f000054
|
||||
item.put("RSTGR",glassistbd.getString("assval"));
|
||||
}else if("f000056".equals(asstype)){
|
||||
//分配编号 f000056
|
||||
item.put("ZUONR",glassistbd.getString("assval"));
|
||||
}else if("f000023".equals(asstype)){
|
||||
//税码 f000023
|
||||
item.put("MWSKZ",glassistbd.getString("assval"));
|
||||
}else if("f000031".equals(asstype)){
|
||||
//税基 f000031
|
||||
item.put("FWBAS",glassistbd.getString("assval"));
|
||||
}else if("f000060".equals(asstype)){
|
||||
//行项目的参考码
|
||||
item.put("XREF3",glassistbd.getString("assval"));
|
||||
}else if(sapMap.containsKey(asstype)){
|
||||
item.put(sapMap.get(asstype),glassistbd.getString("assval"));
|
||||
}
|
||||
}
|
||||
}
|
||||
// item.put("RSTGR", "014");//原因代码_原因码
|
||||
// item.put("SGTXT", SGTXT);//行项目文本_SAP会计科目行项目号
|
||||
IT_ITEM.add(item);
|
||||
}
|
||||
}else{
|
||||
|
|
|
|||
|
|
@ -32,7 +32,9 @@ import shjh.jhzj7.fi.fi.utils.domin.ResponseData;
|
|||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
import static shjh.jhzj7.fi.fi.utils.SapUtils.getAsstacttypeMap;
|
||||
import static shjh.jhzj7.fi.fi.utils.SapUtils.sap_accounVoucher;
|
||||
|
||||
/**
|
||||
|
|
@ -152,6 +154,8 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl
|
|||
if (StringUtils.equals(KEY_PUSH_VOUCHER, operationKey)) {
|
||||
DynamicObject[] dataEntities = e.getDataEntities();
|
||||
if (dataEntities != null && dataEntities.length >= 1) {
|
||||
//组装核算维度与sap凭证item字段对应关系map
|
||||
Map<String, String> sapMap = getAsstacttypeMap();
|
||||
for (DynamicObject dataEntity : dataEntities) {
|
||||
DynamicObject recBill = BusinessDataServiceHelper.loadSingle(dataEntity.getLong("id"), "cas_recbill");
|
||||
if (null != recBill) {
|
||||
|
|
@ -160,14 +164,15 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl
|
|||
JSONObject json_HEADER = getIS_HEADER(recBill);
|
||||
data.put("IS_HEADER", json_HEADER);
|
||||
//详细,参考《IT_ITEM》
|
||||
JSONArray itItem = getIT_ITEM(recBill,json_HEADER);
|
||||
JSONArray itItem = getIT_ITEM(recBill,json_HEADER,sapMap);
|
||||
if (itItem == null){
|
||||
this.getOperationResult().setSuccess(false);//成功true;失败false
|
||||
this.getOperationResult().setMessage("金蝶凭证不存在或未审核"); // 提示内容
|
||||
this.getOperationResult().setShowMessage(true); // 是否显示提示消息
|
||||
continue;
|
||||
}
|
||||
data.put("IT_ITEM", getIT_ITEM(recBill,json_HEADER));
|
||||
// data.put("IT_ITEM", getIT_ITEM(recBill,json_HEADER));
|
||||
data.put("IT_ITEM", itItem);
|
||||
//收款类型=推预付款、员工还款需要传清账数据
|
||||
String receivingType = recBill.getString("receivingtype.number");
|
||||
if ("103".equals(receivingType) || "109".equals(receivingType)) {
|
||||
|
|
@ -340,7 +345,7 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl
|
|||
* @param recBill 收款单动态对象
|
||||
* @return 包含行项目信息的JSONArray
|
||||
*/
|
||||
private JSONArray getIT_ITEM(DynamicObject recBill , JSONObject json_HEADER) {
|
||||
private JSONArray getIT_ITEM(DynamicObject recBill , JSONObject json_HEADER, Map<String, String> sapMap) {
|
||||
JSONArray IT_ITEM = new JSONArray();
|
||||
//源单类型
|
||||
String sourceBillType = recBill.getString("sourcebilltype");
|
||||
|
|
@ -467,6 +472,8 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl
|
|||
}else if("f000060".equals(asstype)){
|
||||
//行项目的参考码 f000031
|
||||
IT_ITEMS.put("XREF3",glassistbd.getString("assval"));
|
||||
}else if(sapMap.containsKey(asstype)){
|
||||
IT_ITEMS.put(sapMap.get(asstype),glassistbd.getString("assval"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import shjh.jhzj7.fi.fi.utils.domin.ResponseData;
|
|||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 理财预提记账处理 shjh_cim_intbill_reve_ext-单据推送sap操作插件
|
||||
|
|
@ -75,13 +76,15 @@ public class RevenueBillOperation extends AbstractOperationServicePlugIn impleme
|
|||
DynamicObject prinfo;//预提记账处理单
|
||||
JSONObject sapReturnData;
|
||||
ResponseData respdata;
|
||||
//组装核算维度与sap凭证item字段对应关系map
|
||||
Map<String, String> sapMap = SapUtils.getAsstacttypeMap();
|
||||
for (int i = 0; i < dos.length; i++) {
|
||||
prinfo = BusinessDataServiceHelper.loadSingle(dos[i].getPkValue(), dos[i].getDataEntityType().getName());
|
||||
if(prinfo.getBoolean("shjh_needvoucher") && !prinfo.getBoolean("shjh_sendsap")){
|
||||
//如果预提记账处理单需要生成凭证且未推送sap的才推送sap
|
||||
//判断原蓝单和红单,调用sap不同接口 操作类别 冲销预提收益-红单 预提收益-蓝单
|
||||
if("interestrev".equals(prinfo.getString("operatype"))){
|
||||
sapReturnData = sendBlueVoucher(prinfo);//蓝单
|
||||
sapReturnData = sendBlueVoucher(prinfo,sapMap);//蓝单
|
||||
if(sapReturnData != null && "0".equals(sapReturnData.getString("code"))){
|
||||
//解析sap凭证接口返回值
|
||||
respdata = ApiUtils.getResponseData(sapReturnData);
|
||||
|
|
@ -176,7 +179,7 @@ public class RevenueBillOperation extends AbstractOperationServicePlugIn impleme
|
|||
return sapReturnData;
|
||||
}
|
||||
|
||||
private JSONObject sendBlueVoucher(DynamicObject prinfo){
|
||||
private JSONObject sendBlueVoucher(DynamicObject prinfo, Map<String, String> sapMap){
|
||||
//SAP预提收益凭证接口入参组装和调用
|
||||
JSONObject IS_HEADER = new JSONObject();//抬头
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//日期格式化工具
|
||||
|
|
@ -259,11 +262,39 @@ public class RevenueBillOperation extends AbstractOperationServicePlugIn impleme
|
|||
hsxminfo = QueryServiceHelper.queryOne(ccName, "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
item.put("KOSTL",hsxminfo.getString("number"));//成本中心_成本中心
|
||||
}else if("f000054".equals(asstype) || "f000014".equals(asstype)){
|
||||
//原因码 f000014
|
||||
//付款原因代码 f000054
|
||||
hsxminfo = QueryServiceHelper.queryOne("gl_cashflowitem", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
item.put("RSTGR",hsxminfo.getString("number"));
|
||||
}
|
||||
}
|
||||
gl_assist_bd = QueryServiceHelper.query("gl_assist_txt", "asstype,assval",
|
||||
new QFilter[]{new QFilter("hg.id", QCP.equals, assgrpinfo.getPkValue())});//核算项目组合纵表-文本
|
||||
for (int j = 0; j < gl_assist_bd.size(); j++) {
|
||||
glassistbd = gl_assist_bd.get(j);
|
||||
asstype = glassistbd.getString("asstype");//核算项目类型-对应核算维度的字段名
|
||||
if("f000054".equals(asstype)){
|
||||
//原因码 f000054
|
||||
item.put("RSTGR",glassistbd.getString("assval"));
|
||||
}else if("f000056".equals(asstype)){
|
||||
//分配编号 f000056
|
||||
item.put("ZUONR",glassistbd.getString("assval"));
|
||||
}else if("f000023".equals(asstype)){
|
||||
//税码 f000023
|
||||
item.put("MWSKZ",glassistbd.getString("assval"));
|
||||
}else if("f000031".equals(asstype)){
|
||||
//税基 f000031
|
||||
item.put("FWBAS",glassistbd.getString("assval"));
|
||||
}else if("f000060".equals(asstype)){
|
||||
//行项目的参考码
|
||||
item.put("XREF3",glassistbd.getString("assval"));
|
||||
}else if(sapMap.containsKey(asstype)){
|
||||
item.put(sapMap.get(asstype),glassistbd.getString("assval"));
|
||||
}
|
||||
}
|
||||
}
|
||||
// item.put("RSTGR", "014");//原因代码_原因码
|
||||
// item.put("SGTXT", SGTXT);//行项目文本_SAP会计科目行项目号
|
||||
IT_ITEM.add(item);
|
||||
}
|
||||
}else{
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ public class TransdownbillOperation extends AbstractOperationServicePlugIn imple
|
|||
private static final String glbdName = "gl_assist_bd";//核算项目组合纵表
|
||||
|
||||
private final static Log logger = LogFactory.getLog(TransdownbillOperation.class);
|
||||
|
||||
@Override
|
||||
public void beforeExecuteOperationTransaction(BeforeOperationArgs e) {
|
||||
super.beforeExecuteOperationTransaction(e);
|
||||
|
|
@ -73,11 +74,13 @@ public class TransdownbillOperation extends AbstractOperationServicePlugIn imple
|
|||
DynamicObject prinfo;//下拨处理单
|
||||
JSONObject sapReturnData;
|
||||
ResponseData respdata;
|
||||
//组装核算维度与sap凭证item字段对应关系map
|
||||
Map<String, String> sapMap = SapUtils.getAsstacttypeMap();
|
||||
for (int i = 0; i < dos.length; i++) {
|
||||
prinfo = BusinessDataServiceHelper.loadSingle(dos[i].getPkValue(), dos[i].getDataEntityType().getName());
|
||||
if(!prinfo.getBoolean("shjh_sendsap")){
|
||||
//如果下拨处理单需要生成凭证且未推送sap的才推送sap
|
||||
sapReturnData = sendBlueVoucher(prinfo);//蓝单
|
||||
sapReturnData = sendBlueVoucher(prinfo,sapMap);
|
||||
if(sapReturnData != null && "0".equals(sapReturnData.getString("code"))){
|
||||
//解析sap凭证接口返回值
|
||||
respdata = ApiUtils.getResponseData(sapReturnData);
|
||||
|
|
@ -97,7 +100,8 @@ public class TransdownbillOperation extends AbstractOperationServicePlugIn imple
|
|||
}
|
||||
}
|
||||
}
|
||||
private JSONObject sendBlueVoucher(DynamicObject prinfo){
|
||||
|
||||
private JSONObject sendBlueVoucher(DynamicObject prinfo, Map<String, String> sapMap){
|
||||
//SAP下拨处理单凭证接口入参组装和调用
|
||||
JSONObject IS_HEADER = new JSONObject();//抬头
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//日期格式化工具
|
||||
|
|
@ -139,8 +143,7 @@ public class TransdownbillOperation extends AbstractOperationServicePlugIn imple
|
|||
String asstype;
|
||||
DynamicObject glassistbd;
|
||||
DynamicObject hsxminfo;
|
||||
//组装核算维度map
|
||||
Map<String, String> sapMap = SapUtils.getAsstacttypeMap();
|
||||
|
||||
for (DynamicObject entry : entries) {
|
||||
item = new JSONObject();
|
||||
account = entry.getDynamicObject("account");//科目
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ public class TransupbillOperation extends AbstractOperationServicePlugIn impleme
|
|||
private static final String glbdName = "gl_assist_bd";//核算项目组合纵表
|
||||
|
||||
private final static Log logger = LogFactory.getLog(TransdownbillOperation.class);
|
||||
|
||||
@Override
|
||||
public void beforeExecuteOperationTransaction(BeforeOperationArgs e) {
|
||||
super.beforeExecuteOperationTransaction(e);
|
||||
|
|
@ -74,11 +75,13 @@ public class TransupbillOperation extends AbstractOperationServicePlugIn impleme
|
|||
DynamicObject prinfo;//上划处理单
|
||||
JSONObject sapReturnData;
|
||||
ResponseData respdata;
|
||||
//组装核算维度与sap凭证item字段对应关系map
|
||||
Map<String, String> sapMap = SapUtils.getAsstacttypeMap();
|
||||
for (int i = 0; i < dos.length; i++) {
|
||||
prinfo = BusinessDataServiceHelper.loadSingle(dos[i].getPkValue(), dos[i].getDataEntityType().getName());
|
||||
if(!prinfo.getBoolean("shjh_sendsap")){
|
||||
//如果上划处理单需要生成凭证且未推送sap的才推送sap
|
||||
sapReturnData = sendBlueVoucher(prinfo);
|
||||
sapReturnData = sendBlueVoucher(prinfo,sapMap);
|
||||
if(sapReturnData != null && "0".equals(sapReturnData.getString("code"))){
|
||||
//解析sap凭证接口返回值
|
||||
respdata = ApiUtils.getResponseData(sapReturnData);
|
||||
|
|
@ -99,7 +102,7 @@ public class TransupbillOperation extends AbstractOperationServicePlugIn impleme
|
|||
}
|
||||
}
|
||||
|
||||
private JSONObject sendBlueVoucher(DynamicObject prinfo){
|
||||
private JSONObject sendBlueVoucher(DynamicObject prinfo, Map<String, String> sapMap){
|
||||
//SAP上划处理单凭证接口入参组装和调用
|
||||
JSONObject IS_HEADER = new JSONObject();//抬头
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//日期格式化工具
|
||||
|
|
@ -141,8 +144,6 @@ public class TransupbillOperation extends AbstractOperationServicePlugIn impleme
|
|||
String asstype;
|
||||
DynamicObject glassistbd;
|
||||
DynamicObject hsxminfo;
|
||||
//组装核算维度map
|
||||
Map<String, String> sapMap = SapUtils.getAsstacttypeMap();
|
||||
for (DynamicObject entry : entries) {
|
||||
item = new JSONObject();
|
||||
account = entry.getDynamicObject("account");//科目
|
||||
|
|
|
|||
Loading…
Reference in New Issue