fix:订舱审核校验提示剩余额度不足校验问题
This commit is contained in:
parent
bd36c4ec3b
commit
b58d6c65f0
@ -429,5 +429,79 @@ public class StorageTransAuditOp extends AbstractOperationServicePlugIn {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
|
||||
super.afterExecuteOperationTransaction(e);
|
||||
DynamicObject[] entities = e.getDataEntities();
|
||||
for (DynamicObject dataEntitie : entities) {
|
||||
dataEntitie = BusinessDataServiceHelper.loadSingle(dataEntitie.getPkValue(), dataEntitie.getDynamicObjectType().getName());
|
||||
DynamicObject customer = dataEntitie.getDynamicObject("yem_customer");
|
||||
DynamicObjectCollection creditDetails = dataEntitie.getDynamicObjectCollection("yem_creditdetail");
|
||||
if (YEM.isNotEmpty(customer) && creditDetails.size() > 0) {
|
||||
DynamicObject method = TotalUtil.getSettlementMethod(dataEntitie);
|
||||
DynamicObject company = dataEntitie.getDynamicObject("yem_company.yem_erporg");
|
||||
String swiftCode = TotalUtil.getSwiftCode(dataEntitie);
|
||||
DynamicObject csrCreditLine = TotalUtil.getCsrCreditLine(customer, method, company, swiftCode);
|
||||
for (DynamicObject creditDetail : creditDetails) {
|
||||
DynamicObject salecontractno = creditDetail.getDynamicObject("yem_salecontractno");
|
||||
if (salecontractno == null) continue;
|
||||
salecontractno = BusinessDataServiceHelper.loadSingle(salecontractno.getPkValue(), salecontractno.getDynamicObjectType().getName());
|
||||
boolean issinosurecon = salecontractno.getBoolean("yem_issinosurecon");
|
||||
if (!issinosurecon) {
|
||||
continue;
|
||||
}
|
||||
if (YEM.isNotEmpty(csrCreditLine)) {
|
||||
DynamicObjectCollection infos = csrCreditLine.getDynamicObjectCollection("yem_im_info");
|
||||
DynamicObject addNew = infos.addNew();
|
||||
addNew.set("yem_storagetransno", dataEntitie);//储运托单号
|
||||
addNew.set("yem_salecontractno", creditDetail.get("yem_salecontractno"));//外销合同号
|
||||
addNew.set("yem_contractcurr", dataEntitie.get("yem_currency"));//结算币别
|
||||
addNew.set("yem_rapstyle", creditDetail.get("yem_quotation_cd"));//结算方式
|
||||
addNew.set("yem_reccondition", creditDetail.get("yem_reccondition_cd"));//收款条件
|
||||
addNew.set("yem_creditamt", creditDetail.get("yem_creditamt_cd"));//信保金额(合同)
|
||||
addNew.set("yem_creditamtuse", creditDetail.get("yem_usacreditamt_cd"));//信保金额(使用)
|
||||
addNew.set("yem_creditdeadline", creditDetail.get("yem_term_cd"));//信用期限
|
||||
addNew.set("yem_creditrate", creditDetail.get("yem_sinosurerate_cd"));//信保费率
|
||||
addNew.set("yem_premium", creditDetail.get("yem_insuranceamt_cd"));//保险费
|
||||
addNew.set("yem_creditamtbase", creditDetail.get("yem_creditamtbase"));//信保金额本位币
|
||||
addNew.set("yem_premiumbase", creditDetail.get("yem_insuranceamtbas_cd"));//保险费金额本位币
|
||||
addNew.set("yem_ladingdate", creditDetail.get("yem_ladingdate"));//提单日期
|
||||
addNew.set("yem_creditdate1_cd", creditDetail.get("yem_creditdate1_cd"));//信保天数1
|
||||
addNew.set("yem_paydate1", creditDetail.get("yem_paydate1"));//应收款日期1
|
||||
// zzs add 2024/1/25
|
||||
addNew.set("yem_countpayback", creditDetail.get("yem_countpayback"));//应回款倒计时
|
||||
addNew.set("yem_paymentamt1_cd", creditDetail.get("yem_paymentamt1_cd"));//收款金额1
|
||||
addNew.set("yem_paymentamt1_cdbase", creditDetail.get("yem_paymentamt1_cdbase"));//收款金额1
|
||||
addNew.set("yem_creditdate2_cd", creditDetail.get("yem_creditdate2_cd"));//信保天数2
|
||||
addNew.set("yem_paydate2", creditDetail.get("yem_paydate2"));//应收款日期2
|
||||
addNew.set("yem_paymentamt2_cd", creditDetail.get("yem_paymentamt2_cd"));//收款金额2
|
||||
addNew.set("yem_paymentamt2_cdbase", creditDetail.get("yem_paymentamt2_cdbase"));//收款金额2
|
||||
addNew.set("yem_actualsinkamt", creditDetail.get("yem_actualsinkamt_cd"));//实际收汇金额
|
||||
addNew.set("yem_actualsinkamtbase", creditDetail.get("yem_actualsinkamtba_cd"));//实际收汇金额本位币
|
||||
// zzs add 2024/1/25
|
||||
addNew.set("yem_amountowed", creditDetail.get("yem_amountowed"));//欠款金额
|
||||
addNew.set("yem_creditremark", creditDetail.getString("yem_creditremark"));//信保备注
|
||||
addNew.set("yem_storagetransid", dataEntitie.getPkValue());//储运托单Id
|
||||
addNew.set("yem_storagetranentryid", creditDetail.getPkValue());//储运托单分录行Id
|
||||
|
||||
addNew.set("yem_storagetransamt", creditDetail.get("yem_storagetransamt"));//订舱合同金额
|
||||
|
||||
addNew.set("yem_year_e", creditDetail.get("yem_year_e"));//年份
|
||||
addNew.set("yem_creditstatus_e", creditDetail.get("yem_creditstatus_e"));//投保状态
|
||||
} else {
|
||||
throw new KDBizException(String.format("找不到客户:%s的客户信保额度申请单", customer.getString("name")));
|
||||
}
|
||||
|
||||
}
|
||||
BigDecimal decimal = CreditBackFillUtils.calcRemainingAmount(csrCreditLine);
|
||||
csrCreditLine.set("yem_balance", decimal);
|
||||
// SaveServiceHelper.update(new DynamicObject[]{csrCreditLine});
|
||||
OperationResult Operate = OperationServiceHelper.executeOperate("save", csrCreditLine.getDynamicObjectType().getName(), new DynamicObject[]{csrCreditLine}, OperateOption.create());
|
||||
if (Operate.isSuccess()) {
|
||||
|
||||
}
|
||||
}
|
||||
dataEntitie.set("yem_whether", true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -32,83 +32,26 @@ public class StorageAuditValid extends AbstractValidator {
|
||||
DynamicObject dataEntitie = dataes.getDataEntity();
|
||||
dataEntitie = BusinessDataServiceHelper.loadSingle(dataEntitie.getPkValue(), dataEntitie.getDynamicObjectType().getName());
|
||||
DynamicObject customer = dataEntitie.getDynamicObject("yem_customer");
|
||||
DynamicObjectCollection creditDetails = dataEntitie.getDynamicObjectCollection("yem_creditdetail");
|
||||
DynamicObject method = TotalUtil.getSettlementMethod(dataEntitie);
|
||||
DynamicObject company = dataEntitie.getDynamicObject("yem_company.yem_erporg");
|
||||
String swiftCode = TotalUtil.getSwiftCode(dataEntitie);
|
||||
DynamicObject csrCreditLine = TotalUtil.getCsrCreditLine(customer, method, company, swiftCode);
|
||||
if (creditDetails.size() > 0) {
|
||||
for (DynamicObject creditDetail : creditDetails) {
|
||||
DynamicObject salecontractno = creditDetail.getDynamicObject("yem_salecontractno");
|
||||
if (salecontractno == null) continue;
|
||||
salecontractno = BusinessDataServiceHelper.loadSingle(salecontractno.getPkValue(), salecontractno.getDynamicObjectType().getName());
|
||||
boolean issinosurecon = salecontractno.getBoolean("yem_issinosurecon");
|
||||
if (!issinosurecon) {
|
||||
continue;
|
||||
}
|
||||
if (YEM.isNotEmpty(customer) && YEM.isNotEmpty(csrCreditLine)) {
|
||||
log.info("客户信保限额申请:[{}]", csrCreditLine.getString("billno"));
|
||||
BigDecimal decimal = CreditBackFillUtils.calcRemainingAmount(csrCreditLine);
|
||||
BigDecimal usacreditamt = dataEntitie.getBigDecimal("yem_usacreditamt");
|
||||
log.info("{} >= {}", decimal, usacreditamt);
|
||||
if (decimal.compareTo(usacreditamt) >= 0) {
|
||||
csrCreditLine.set("yem_balance", decimal);
|
||||
log.info("{} >= {} 不执行提示!", decimal, usacreditamt);
|
||||
} else {
|
||||
this.addMessage(dataes, String.format("当前客户对应的信保额度申请剩余额度小于0,请确认!剩余额度[%s] : 投保金额[%s]", decimal, usacreditamt));
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
this.addMessage(dataes, "找不到客户:"+customer.getString("name")+"的客户信保额度申请单");
|
||||
}
|
||||
if (YEM.isNotEmpty(csrCreditLine)) {
|
||||
DynamicObjectCollection infos = csrCreditLine.getDynamicObjectCollection("yem_im_info");
|
||||
DynamicObject addNew = infos.addNew();
|
||||
addNew.set("yem_storagetransno", dataEntitie);//储运托单号
|
||||
addNew.set("yem_salecontractno", creditDetail.get("yem_salecontractno"));//外销合同号
|
||||
addNew.set("yem_contractcurr", dataEntitie.get("yem_currency"));//结算币别
|
||||
addNew.set("yem_rapstyle", creditDetail.get("yem_quotation_cd"));//结算方式
|
||||
addNew.set("yem_reccondition", creditDetail.get("yem_reccondition_cd"));//收款条件
|
||||
addNew.set("yem_creditamt", creditDetail.get("yem_creditamt_cd"));//信保金额(合同)
|
||||
addNew.set("yem_creditamtuse", creditDetail.get("yem_usacreditamt_cd"));//信保金额(使用)
|
||||
addNew.set("yem_creditdeadline", creditDetail.get("yem_term_cd"));//信用期限
|
||||
addNew.set("yem_creditrate", creditDetail.get("yem_sinosurerate_cd"));//信保费率
|
||||
addNew.set("yem_premium", creditDetail.get("yem_insuranceamt_cd"));//保险费
|
||||
addNew.set("yem_creditamtbase", creditDetail.get("yem_creditamtbase"));//信保金额本位币
|
||||
addNew.set("yem_premiumbase", creditDetail.get("yem_insuranceamtbas_cd"));//保险费金额本位币
|
||||
addNew.set("yem_ladingdate", creditDetail.get("yem_ladingdate"));//提单日期
|
||||
addNew.set("yem_creditdate1_cd", creditDetail.get("yem_creditdate1_cd"));//信保天数1
|
||||
addNew.set("yem_paydate1", creditDetail.get("yem_paydate1"));//应收款日期1
|
||||
// zzs add 2024/1/25
|
||||
addNew.set("yem_countpayback", creditDetail.get("yem_countpayback"));//应回款倒计时
|
||||
addNew.set("yem_paymentamt1_cd", creditDetail.get("yem_paymentamt1_cd"));//收款金额1
|
||||
addNew.set("yem_paymentamt1_cdbase", creditDetail.get("yem_paymentamt1_cdbase"));//收款金额1
|
||||
addNew.set("yem_creditdate2_cd", creditDetail.get("yem_creditdate2_cd"));//信保天数2
|
||||
addNew.set("yem_paydate2", creditDetail.get("yem_paydate2"));//应收款日期2
|
||||
addNew.set("yem_paymentamt2_cd", creditDetail.get("yem_paymentamt2_cd"));//收款金额2
|
||||
addNew.set("yem_paymentamt2_cdbase", creditDetail.get("yem_paymentamt2_cdbase"));//收款金额2
|
||||
addNew.set("yem_actualsinkamt", creditDetail.get("yem_actualsinkamt_cd"));//实际收汇金额
|
||||
addNew.set("yem_actualsinkamtbase", creditDetail.get("yem_actualsinkamtba_cd"));//实际收汇金额本位币
|
||||
// zzs add 2024/1/25
|
||||
addNew.set("yem_amountowed", creditDetail.get("yem_amountowed"));//欠款金额
|
||||
addNew.set("yem_creditremark", creditDetail.getString("yem_creditremark"));//信保备注
|
||||
addNew.set("yem_storagetransid", dataEntitie.getPkValue());//储运托单Id
|
||||
addNew.set("yem_storagetranentryid", creditDetail.getPkValue());//储运托单分录行Id
|
||||
|
||||
addNew.set("yem_storagetransamt", creditDetail.get("yem_storagetransamt"));//订舱合同金额
|
||||
|
||||
addNew.set("yem_year_e", creditDetail.get("yem_year_e"));//年份
|
||||
addNew.set("yem_creditstatus_e", creditDetail.get("yem_creditstatus_e"));//投保状态
|
||||
}
|
||||
|
||||
}
|
||||
OperationResult Operate = OperationServiceHelper.executeOperate("save", csrCreditLine.getDynamicObjectType().getName(), new DynamicObject[]{csrCreditLine}, OperateOption.create());
|
||||
if (Operate.isSuccess()) {
|
||||
|
||||
if (YEM.isNotEmpty(customer) && YEM.isNotEmpty(csrCreditLine)) {
|
||||
log.info("客户信保限额申请:[{}]", csrCreditLine.getString("billno"));
|
||||
BigDecimal decimal = CreditBackFillUtils.calcRemainingAmount(csrCreditLine);
|
||||
BigDecimal usacreditamt = dataEntitie.getBigDecimal("yem_usacreditamt");
|
||||
log.info("{} >= {}", decimal, usacreditamt);
|
||||
if (decimal.compareTo(usacreditamt) >= 0) {
|
||||
csrCreditLine.set("yem_balance", decimal);
|
||||
log.info("{} >= {} 不执行提示!", decimal, usacreditamt);
|
||||
} else {
|
||||
this.addMessage(dataes, String.format("当前客户对应的信保额度申请剩余额度小于0,请确认!剩余额度[%s] : 投保金额[%s]", decimal, usacreditamt));
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
this.addMessage(dataes, "找不到客户:"+customer.getString("name")+"的客户信保额度申请单");
|
||||
}
|
||||
|
||||
dataEntitie.set("yem_whether", true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user