parent
b242e37fa2
commit
45645e3bdc
|
|
@ -378,7 +378,7 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
//汇率表
|
||||
DynamicObject exrate = BusinessDataServiceHelper.loadSingle(BD_EXRATETABLE,
|
||||
new QFilter[]{new QFilter("number", QCP.equals, "ERT-01")});
|
||||
|
||||
StringBuilder builder = new StringBuilder("失败原因:");
|
||||
for (int selectRow : selectRows) {
|
||||
String fkBillNum = (String) this.getModel().getValue("shjh_vouchernumber", selectRow);//凭证号
|
||||
|
||||
|
|
@ -386,15 +386,16 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
String companyNum = (String) this.getModel().getValue("shjh_orgnumber", selectRow);//公司编号
|
||||
if (companyNum == null || companyNum.isEmpty()) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的公司编号为空", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的公司编号为空");
|
||||
return;
|
||||
// this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的公司编号为空");
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的公司编号为空"+"\n");
|
||||
continue;
|
||||
}
|
||||
QFilter Q1 = new QFilter("number", QCP.equals, companyNum);
|
||||
DynamicObject org = BusinessDataServiceHelper.loadSingle(orgEntName, new QFilter[]{Q1});
|
||||
if (null == org) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的组织编码不存在", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的组织编码不存在");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的组织编码不存在"+"\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
// 申请金额 , 汇率 , 申请金额折结算币别
|
||||
|
|
@ -407,8 +408,8 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
} catch (NumberFormatException e) {
|
||||
// 处理数字格式异常
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的未清金额格式不正确", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的未清金额格式不正确");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的未清金额格式不正确"+"\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
// 往来类型
|
||||
|
|
@ -416,20 +417,20 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
// 检查往来类型是否为空或无效
|
||||
if (asstacttype == null || asstacttype.isEmpty()) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的往来类型为空", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的往来类型为空");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的往来类型为空"+"\n");
|
||||
continue;
|
||||
} else if (!asstactTypeMap.containsKey(asstacttype)) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的往来类型不存在", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的往来类型不存在");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的往来类型不存在"+"\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
// 往来户
|
||||
String asstact = (String) this.getModel().getValue("shjh_payeebanknum", selectRow);//往来户名称
|
||||
if (asstact == null || asstact.isEmpty()) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的往来户为空", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的往来户为空");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的往来户为空"+"\n");
|
||||
continue;
|
||||
}
|
||||
QFilter Q3 = new QFilter("number", QCP.equals, asstact);
|
||||
DynamicObject party = "供应商".equals(asstacttype)
|
||||
|
|
@ -438,8 +439,8 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
if (party == null) {
|
||||
String errorMessage = "同步失败,凭证号:" + fkBillNum + "的" + ("供应商".equals(asstacttype) ? "供应商" : "客户") + "不存在";
|
||||
handleError(errorMessage, fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage(errorMessage);
|
||||
return;
|
||||
builder.append(errorMessage+"\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
// 新增应付付款申请单
|
||||
|
|
@ -459,8 +460,8 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
boolean shjhSapwhetherlocking = ap_payapplys.getBoolean("shjh_sapwhetherlocking");//SAP是否锁定
|
||||
if (shjhSapwhetherlocking) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "已锁定", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "已锁定");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "已锁定"+"\n");
|
||||
continue;
|
||||
} else {
|
||||
//存在且单据中SAP锁定状态为未锁定,更新数据
|
||||
ap_payapply = ap_payapplys;
|
||||
|
|
@ -476,8 +477,8 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
Date bizDate = (Date) this.getModel().getValue("shjh_bookkeepingdate", selectRow);//记账日期
|
||||
if (null == bizDate) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的记账日期为空", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的记账日期为空");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的记账日期为空"+"\n");
|
||||
continue;
|
||||
}
|
||||
ap_payapply.set("applydate", bizDate);
|
||||
|
||||
|
|
@ -495,8 +496,8 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
DynamicObject accountview = BusinessDataServiceHelper.loadSingle(BD_ACCOUNTVIEW, Q8.toArray());
|
||||
if (null == accountview) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的会计科目不存在", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的会计科目不存在");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的会计科目不存在"+"\n");
|
||||
continue;
|
||||
}
|
||||
ap_payapply.set("shjh_sapkjkm", accountview);
|
||||
}
|
||||
|
|
@ -517,8 +518,8 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
// 检查币别编号是否为空
|
||||
if (currencyNumber == null || currencyNumber.trim().isEmpty()) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的" + currencyTypeName + "为空", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的" + currencyTypeName + "为空");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的" + currencyTypeName + "为空"+"\n");
|
||||
continue;
|
||||
}
|
||||
if ("RMB".equals(currencyNumber)) {
|
||||
currencyNumber = "CNY";
|
||||
|
|
@ -528,8 +529,8 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
// 检查 currency 是否为空
|
||||
if (currency == null) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的" + currencyTypeName + "不存在", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的" + currencyTypeName + "不存在");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的" + currencyTypeName + "不存在"+"\n");
|
||||
continue;
|
||||
}
|
||||
ap_payapply.set(currencyType, currency);
|
||||
}
|
||||
|
|
@ -542,8 +543,8 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
} catch (NumberFormatException e) {
|
||||
// 处理数字格式异常
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的汇率格式不正确", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的汇率格式不正确");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的汇率格式不正确"+"\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
//申请金额折结算币别
|
||||
|
|
@ -554,8 +555,8 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
} catch (NumberFormatException e) {
|
||||
// 处理数字格式异常
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的申请金额折结算币别格式不正确", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的申请金额折结算币别格式不正确");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的申请金额折结算币别格式不正确"+"\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
DynamicObjectCollection entry = ap_payapply.getDynamicObjectCollection("entry");//明细
|
||||
|
|
@ -590,18 +591,18 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
// 检查银行账号,开户银行,账户名称是否为空
|
||||
if (bankaccount == null || bankaccount.trim().isEmpty()) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)"+"\n");
|
||||
continue;
|
||||
}
|
||||
if (null == bank) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)"+"\n");
|
||||
continue;
|
||||
}
|
||||
if (accountname == null || accountname.trim().isEmpty()) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"+"\n");
|
||||
continue;
|
||||
}
|
||||
ap_payapply_entry.set("e_assacct", bankaccount);//银行账号
|
||||
ap_payapply_entry.set("e_bebank", bank);//开户银行
|
||||
|
|
@ -616,18 +617,18 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
// 检查银行账号,开户银行,账户名称是否为空
|
||||
if (bankaccount == null || bankaccount.trim().isEmpty()) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的银行账号为空(供应商)"+"\n");
|
||||
continue;
|
||||
}
|
||||
if (null == bank) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的开户银行为空(供应商)"+"\n");
|
||||
continue;
|
||||
}
|
||||
if (accountname == null || accountname.trim().isEmpty()) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的账户名称为空(供应商)"+"\n");
|
||||
continue;
|
||||
}
|
||||
ap_payapply_entry.set("e_assacct", bankaccount);//银行账号
|
||||
ap_payapply_entry.set("e_bebank", bank);//开户银行
|
||||
|
|
@ -640,13 +641,13 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
|
||||
if (!ispp) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的合作银行类型无匹配数据(供应商)", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的合作银行类型无匹配数据(供应商)");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的合作银行类型无匹配数据(供应商)"+"\n");
|
||||
continue;
|
||||
}
|
||||
}else {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的供应商不存在银行信息", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的供应商不存在银行信息");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的供应商不存在银行信息"+"\n");
|
||||
continue;
|
||||
}
|
||||
}else {
|
||||
//客户
|
||||
|
|
@ -831,8 +832,8 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
DynamicObject cause = BusinessDataServiceHelper.loadSingle(GL_CASHFLOWITEM, new QFilter[]{Q11});
|
||||
if (null == cause) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的原因码不存在", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的原因码不存在");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的原因码不存在"+"\n");
|
||||
continue;
|
||||
}
|
||||
ap_payapply.set("shjh_yym", cause);
|
||||
}
|
||||
|
|
@ -854,8 +855,8 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
DynamicObject vouchertypes = BusinessDataServiceHelper.loadSingle("gl_vouchertype", new QFilter[]{Q11});
|
||||
if (null == vouchertypes) {
|
||||
handleError("同步失败,凭证号:" + fkBillNum + "的凭证类型不存在", fkBillNum, apimenthod, null);
|
||||
this.getView().showMessage("同步失败,凭证号:" + fkBillNum + "的凭证类型不存在");
|
||||
return;
|
||||
builder.append("同步失败,凭证号:" + fkBillNum + "的凭证类型不存在"+"\n");
|
||||
continue;
|
||||
}
|
||||
ap_payapply.set("shjh_documenttype", vouchertypes);
|
||||
}
|
||||
|
|
@ -887,6 +888,8 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
OperateOption option = OperateOption.create();
|
||||
option.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(false)); //不执行警告级别校验器
|
||||
String fkBillNum;
|
||||
Integer successCount = 0;
|
||||
StringBuilder successStr = new StringBuilder("成功凭证号:");
|
||||
for (DynamicObject ap_payapply : bills.values()) {
|
||||
fkBillNum = ap_payapply.getString("shjh_vouchernum");
|
||||
// 新增数据
|
||||
|
|
@ -894,8 +897,8 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
if (!saveResult.isSuccess()) {
|
||||
handleAndLogError(saveResult, "保存失败", apimenthod, fkBillNum, null);
|
||||
String errorMessage = getFirstErrorMessage(saveResult);
|
||||
this.getView().showErrorNotification(errorMessage);
|
||||
return;
|
||||
builder.append(errorMessage+"\n");
|
||||
continue;
|
||||
}
|
||||
OperationResult submitResult = OperationServiceHelper.executeOperate("submit", AP_PAYAPPLY, new DynamicObject[]{ap_payapply}, option);
|
||||
if (!submitResult.isSuccess()) {
|
||||
|
|
@ -903,20 +906,32 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
OperationServiceHelper.executeOperate("delete", AP_PAYAPPLY, new DynamicObject[]{ap_payapply}, option);
|
||||
handleAndLogError(submitResult, "提交失败", apimenthod, fkBillNum, null);
|
||||
String errorMessage = getFirstErrorMessage(submitResult);
|
||||
this.getView().showErrorNotification(errorMessage);
|
||||
return;
|
||||
builder.append(errorMessage+"\n");
|
||||
continue;
|
||||
}
|
||||
OperationResult auditResult = OperationServiceHelper.executeOperate("audit", AP_PAYAPPLY, new DynamicObject[]{ap_payapply}, option);
|
||||
if (!auditResult.isSuccess()) {
|
||||
handleAndLogError(auditResult, "审核失败", apimenthod, fkBillNum, null);
|
||||
String errorMessage = getFirstErrorMessage(auditResult);
|
||||
this.getView().showErrorNotification(errorMessage);
|
||||
return;
|
||||
builder.append(errorMessage+"\n");
|
||||
continue;
|
||||
}
|
||||
log.info("审核成功,凭证号:" + fkBillNum);
|
||||
JhzjUtils.saveLog(fkBillNum, apimenthod, ap_payapply.getString("shjh_sapuniquevalue"), "审核成功", true, "API");
|
||||
successCount = successCount +1;
|
||||
successStr.append(fkBillNum).append(",");
|
||||
}
|
||||
|
||||
int length = selectRows.length;
|
||||
int errorCount = length - successCount;
|
||||
if (errorCount > 0) {
|
||||
String error = "同步总数量:" + length + "\n" + "成功数量:" + successCount + "(" + successStr + ")" + "\n" +
|
||||
"失败数量:" + errorCount + "\n" + builder.toString();
|
||||
this.getView().showMessage(error);
|
||||
JhzjUtils.saveLog(apimenthod, apimenthod, apimenthod, error, false, "API");
|
||||
}else {
|
||||
this.getView().showSuccessNotification("同步成功");
|
||||
}
|
||||
this.getView().showSuccessNotification("同步成功");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
Loading…
Reference in New Issue