sap生成付款申请单的会计科目过滤条件优化
This commit is contained in:
parent
d3e75f778e
commit
edc0c190d2
|
|
@ -21,6 +21,7 @@ import kd.bos.orm.query.QCP;
|
||||||
import kd.bos.orm.query.QFilter;
|
import kd.bos.orm.query.QFilter;
|
||||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
||||||
|
import shjh.jhzj7.fi.fi.utils.EsbUtils;
|
||||||
import shjh.jhzj7.fi.fi.utils.JhzjUtils;
|
import shjh.jhzj7.fi.fi.utils.JhzjUtils;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
@ -467,7 +468,14 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
||||||
String accountingsubject = (String) this.getModel().getValue("shjh_accountingsubject", selectRow);//会计科目
|
String accountingsubject = (String) this.getModel().getValue("shjh_accountingsubject", selectRow);//会计科目
|
||||||
if (accountingsubject != null && !accountingsubject.isEmpty()) {
|
if (accountingsubject != null && !accountingsubject.isEmpty()) {
|
||||||
QFilter Q8 = new QFilter("number", QCP.equals, accountingsubject);
|
QFilter Q8 = new QFilter("number", QCP.equals, accountingsubject);
|
||||||
DynamicObject accountview = BusinessDataServiceHelper.loadSingle(BD_ACCOUNTVIEW, new QFilter[]{Q8});
|
Q8.and("createorg.id", QCP.equals, org.getPkValue());//当前公司ID
|
||||||
|
//如果当前数据中心是测试的则使用测试库科目表ID,否则用正式的
|
||||||
|
if("2162562979827025920".equals(RequestContext.get().getAccountId())){
|
||||||
|
Q8.and("accounttable.id", QCP.equals, 2125524820924832768L);//测试科目表
|
||||||
|
}else{
|
||||||
|
Q8.and("accounttable.id", QCP.equals, EsbUtils.ACCTABLE);//正式科目表
|
||||||
|
}
|
||||||
|
DynamicObject accountview = BusinessDataServiceHelper.loadSingle(BD_ACCOUNTVIEW, Q8.toArray());
|
||||||
if (null == accountview) {
|
if (null == accountview) {
|
||||||
handleError("同步失败,凭证号:" + fkBillNum + "的会计科目不存在", fkBillNum, apimenthod, null);
|
handleError("同步失败,凭证号:" + fkBillNum + "的会计科目不存在", fkBillNum, apimenthod, null);
|
||||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的会计科目不存在");
|
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的会计科目不存在");
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ import kd.bos.orm.query.QFilter;
|
||||||
import kd.bos.schedule.executor.AbstractTask;
|
import kd.bos.schedule.executor.AbstractTask;
|
||||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
||||||
|
import shjh.jhzj7.fi.fi.utils.EsbUtils;
|
||||||
import shjh.jhzj7.fi.fi.utils.JhzjUtils;
|
import shjh.jhzj7.fi.fi.utils.JhzjUtils;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
@ -214,9 +215,25 @@ public class QuerySapCreatePayApplyTask extends AbstractTask {
|
||||||
|
|
||||||
//SAP会计科目
|
//SAP会计科目
|
||||||
if (accountingsubject != null && !accountingsubject.isEmpty()) {
|
if (accountingsubject != null && !accountingsubject.isEmpty()) {
|
||||||
QFilter Q8 = new QFilter("number", QCP.equals, accountingsubject);
|
QFilter Q8 = new QFilter("number", QCP.equals, accountingsubject);//会计科目编号
|
||||||
DynamicObject accountview = BusinessDataServiceHelper.loadSingle(BD_ACCOUNTVIEW, new QFilter[]{Q8});
|
Q8.and("createorg.id", QCP.equals, org.getPkValue());//当前公司ID
|
||||||
|
//如果当前数据中心是测试的则使用测试库科目表ID,否则用正式的
|
||||||
|
if("2162562979827025920".equals(RequestContext.get().getAccountId())){
|
||||||
|
Q8.and("accounttable.id", QCP.equals, 2125524820924832768L);//测试科目表
|
||||||
|
}else{
|
||||||
|
Q8.and("accounttable.id", QCP.equals, EsbUtils.ACCTABLE);//正式科目表
|
||||||
|
}
|
||||||
|
DynamicObject accountview = BusinessDataServiceHelper.loadSingle(BD_ACCOUNTVIEW, Q8.toArray());
|
||||||
|
if(accountview == null){
|
||||||
|
logger.error("同步失败,凭证号:" + fkBillNum + "的SAP会计科目在金蝶中未找到对应科目");
|
||||||
|
JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,SAP会计科目在金蝶中未找到对应科目", false, "API");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
ap_payapply.set("shjh_sapkjkm", accountview);
|
ap_payapply.set("shjh_sapkjkm", accountview);
|
||||||
|
}else{
|
||||||
|
logger.error("同步失败,凭证号:" + fkBillNum + "的SAP会计科目为空");
|
||||||
|
JhzjUtils.saveLog(fkBillNum, apimenthod, it_list.toJSONString(), "同步失败,SAP会计科目为空", false, "API");
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
//请款事由
|
//请款事由
|
||||||
|
|
@ -244,6 +261,7 @@ public class QuerySapCreatePayApplyTask extends AbstractTask {
|
||||||
KURSF = KURSF.setScale(5, RoundingMode.HALF_UP);
|
KURSF = KURSF.setScale(5, RoundingMode.HALF_UP);
|
||||||
ap_payapply.set("exchangerate", KURSF);
|
ap_payapply.set("exchangerate", KURSF);
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
|
logger.error("同步失败,凭证号:" + fkBillNum + "的汇率处理异常");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -252,6 +270,7 @@ public class QuerySapCreatePayApplyTask extends AbstractTask {
|
||||||
dmbtr = dmbtr.setScale(2, RoundingMode.HALF_UP);
|
dmbtr = dmbtr.setScale(2, RoundingMode.HALF_UP);
|
||||||
ap_payapply.set("appseleamount", dmbtr);
|
ap_payapply.set("appseleamount", dmbtr);
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
|
logger.error("同步失败,凭证号:" + fkBillNum + "的申请金额折结算币别处理异常");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONException;
|
import com.alibaba.fastjson.JSONException;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.drew.lang.annotations.NotNull;
|
import com.drew.lang.annotations.NotNull;
|
||||||
import kd.bos.api.client.ApiResult;
|
|
||||||
import kd.bos.context.RequestContext;
|
import kd.bos.context.RequestContext;
|
||||||
import kd.bos.dataentity.OperateOption;
|
import kd.bos.dataentity.OperateOption;
|
||||||
import kd.bos.dataentity.entity.DynamicObject;
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
|
@ -26,9 +25,9 @@ import kd.bos.orm.query.QCP;
|
||||||
import kd.bos.orm.query.QFilter;
|
import kd.bos.orm.query.QFilter;
|
||||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
||||||
|
import shjh.jhzj7.fi.fi.utils.EsbUtils;
|
||||||
import shjh.jhzj7.fi.fi.utils.JhzjUtils;
|
import shjh.jhzj7.fi.fi.utils.JhzjUtils;
|
||||||
import shjh.jhzj7.fi.fi.webapi.model.ApiResultPayAdjustExt;
|
import shjh.jhzj7.fi.fi.webapi.model.ApiResultPayAdjustExt;
|
||||||
import shjh.jhzj7.fi.fi.webapi.model.ApiResultPayApplyExt;
|
|
||||||
import shjh.jhzj7.fi.fi.webapi.model.ApplyAdjustBillModel;
|
import shjh.jhzj7.fi.fi.webapi.model.ApplyAdjustBillModel;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
|
@ -517,7 +516,7 @@ public class ApplyAdjustBillControler {
|
||||||
|
|
||||||
// 设置SAP会计科目
|
// 设置SAP会计科目
|
||||||
if (!accountingsubject.isEmpty()) {
|
if (!accountingsubject.isEmpty()) {
|
||||||
DynamicObject accountview = loadAccountViewByNumber(accountingsubject);
|
DynamicObject accountview = loadAccountViewByNumber(accountingsubject,org);
|
||||||
if (accountview == null) {
|
if (accountview == null) {
|
||||||
handleError("同步失败,调整单号:" + fkBillNum + "的会计科目不存在", fkBillNum, null);
|
handleError("同步失败,调整单号:" + fkBillNum + "的会计科目不存在", fkBillNum, null);
|
||||||
return "同步失败,调整单号:" + fkBillNum + "的会计科目不存在";
|
return "同步失败,调整单号:" + fkBillNum + "的会计科目不存在";
|
||||||
|
|
@ -598,9 +597,16 @@ public class ApplyAdjustBillControler {
|
||||||
* @param number 会计科目编号
|
* @param number 会计科目编号
|
||||||
* @return 会计科目信息的动态对象
|
* @return 会计科目信息的动态对象
|
||||||
*/
|
*/
|
||||||
private DynamicObject loadAccountViewByNumber(String number) {
|
private DynamicObject loadAccountViewByNumber(String number,DynamicObject org) {
|
||||||
QFilter Q9 = new QFilter("number", QCP.equals, number);
|
QFilter Q8 = new QFilter("number", QCP.equals, number);
|
||||||
return BusinessDataServiceHelper.loadSingle(BD_ACCOUNTVIEW, new QFilter[]{Q9});
|
Q8.and("createorg.id", QCP.equals, org.getPkValue());//当前公司ID
|
||||||
|
//如果当前数据中心是测试的则使用测试库科目表ID,否则用正式的
|
||||||
|
if("2162562979827025920".equals(RequestContext.get().getAccountId())){
|
||||||
|
Q8.and("accounttable.id", QCP.equals, 2125524820924832768L);//测试科目表
|
||||||
|
}else{
|
||||||
|
Q8.and("accounttable.id", QCP.equals, EsbUtils.ACCTABLE);//正式科目表
|
||||||
|
}
|
||||||
|
return BusinessDataServiceHelper.loadSingle(BD_ACCOUNTVIEW, Q8.toArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue