fix:报错处理

This commit is contained in:
ljw 2024-09-24 21:16:37 +08:00
parent 1d4466e3e5
commit a9b0deebb5

View File

@ -0,0 +1,72 @@
package com.yem.wm.es.exportpresent.validator;
import com.yem.wm.utils.DynamicObjectUtil;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.ExtendedDataEntity;
import kd.bos.entity.validate.AbstractValidator;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* @author ljw
* @date 2024/9/24 19:04
* @description ExportPresentSubmitsValidator
*/
public class ExportPresentSubmitsValidator extends AbstractValidator {
@Override
public void validate()
{
ExtendedDataEntity[] dataEntities = this.getDataEntities();
for (ExtendedDataEntity data : dataEntities) {
DynamicObject dataEntity = data.getDataEntity();
// 款项类型
String paymenttype = dataEntity.getString("yem_paymenttype");
if ("A".equals(paymenttype)) {
arrearsVerification(dataEntity,data);
}
}
}
private void arrearsVerification(DynamicObject dataEntity,ExtendedDataEntity data) {
DynamicObject yemCustomer = dataEntity.getDynamicObject("yem_customer");
if (yemCustomer!=null){
long aLong = yemCustomer.getLong("id");
String selectfield = DynamicObjectUtil.getSelectfields("yem_es_storagetrans_xbs", false);
String selectfields = DynamicObjectUtil.getEntrySelectfields(selectfield, "yem_es_storagetrans_xbs", "yem_creditdetail", false);
DynamicObject[] load = BusinessDataServiceHelper.load("yem_es_storagetrans_xbs", selectfields
, new QFilter[]{new QFilter("yem_customer.id", QCP.equals, aLong)});
if (load.length>0){
List<String> list = new ArrayList<>();
for (DynamicObject dynamicObject : load) {
DynamicObjectCollection yemCreditdetail = dynamicObject.getDynamicObjectCollection("yem_creditdetail");
String dynamicObjectString = dynamicObject.getString("billno");
for (DynamicObject object : yemCreditdetail) {
BigDecimal yemCountpayback = object.getBigDecimal("yem_countpayback");
BigDecimal yemActualsinkamtCd = object.getBigDecimal("yem_actualsinkamt_cd");
BigDecimal yemPaymentamt1Cd = object.getBigDecimal("yem_paymentamt1_cd");
if (yemCountpayback.compareTo(BigDecimal.ZERO)<0&&yemActualsinkamtCd.compareTo(yemPaymentamt1Cd)<0){
DynamicObject yemSalecontractno = object.getDynamicObject("yem_salecontractno");
if (yemSalecontractno!=null){
String billno = yemSalecontractno.getString("billno");
list.add("当前寄单放单客户存在历史合同:["+billno+"],订舱通知单:["+dynamicObjectString+"],逾期未收款,请确认!!!\n");
}
}
}
}
if (list.size()>0){
this.addMessage(data, list.toString());
}
}
}
}
}