WIP:寄单放单提交校验
This commit is contained in:
parent
9bc2063f98
commit
91bb471d10
@ -12,10 +12,9 @@ import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.*;
|
||||
|
||||
import static com.yem.wm.fm.gathering.dynamic.GatheringClaimFormPlugin.getPercentagePeriod;
|
||||
|
||||
/**
|
||||
* @author ljw
|
||||
* @date 2024/9/24 19:04
|
||||
@ -44,22 +43,31 @@ public class ExportPresentSubmitsValidator extends AbstractValidator {
|
||||
|
||||
String selectfields = DynamicObjectUtil.getSelectfields("yem_es_salesorder");
|
||||
selectfields = DynamicObjectUtil.getEntrySelectfields(selectfields, "yem_es_salesorder", "yem_es_salescontrac_s");
|
||||
Map<Object, DynamicObject> map = BusinessDataServiceHelper.loadFromCache("yem_es_salesorder", selectfields,new QFilter[]{new QFilter("billno", "in", salesorder)});
|
||||
Map<Object, DynamicObject> map = BusinessDataServiceHelper.loadFromCache("yem_es_salesorder", selectfields, new QFilter[]{new QFilter("billno", "in", salesorder)});
|
||||
// 100%L/C,100%OA、100%DP、100%DA
|
||||
boolean isRequireValidator = false;
|
||||
for (Map.Entry<Object, DynamicObject> salesoerderEntry : map.entrySet()) {
|
||||
DynamicObject order = salesoerderEntry.getValue();
|
||||
DynamicObjectCollection salescontrac = order.getDynamicObjectCollection("yem_es_salescontrac_s");
|
||||
BigDecimal preAmt = BigDecimal.ZERO;//预收金额合计
|
||||
for (DynamicObject d : salescontrac) {
|
||||
DynamicObject rapstyle = d.getDynamicObject("yem_rapstyle_c");
|
||||
BigDecimal raprate = d.getBigDecimal("yem_raprate");
|
||||
boolean ispre = d.getBoolean("yem_ispre");
|
||||
BigDecimal rapamt = d.getBigDecimal("yem_rapamt");
|
||||
if (YEM.isNotEmpty(rapstyle)) {
|
||||
String number = rapstyle.getString("number");
|
||||
if ("D/A JSFS08 L/C OA D/A".contains(number) && raprate.compareTo(new BigDecimal("100")) == 0) {
|
||||
isRequireValidator = true;
|
||||
if ("D/A JSFS08 L/C OA D/A".contains(number)) {
|
||||
if (raprate.compareTo(new BigDecimal("100")) == 0) {
|
||||
isRequireValidator = true;
|
||||
} else if (ispre) {
|
||||
preAmt = preAmt.add(rapamt);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
validatorPreAmtClaimFinished(preAmt, order, data);
|
||||
}
|
||||
|
||||
if ("A".equals(paymenttype) && ("A".equals(isladingbill) || isRequireValidator)) {
|
||||
@ -68,6 +76,27 @@ public class ExportPresentSubmitsValidator extends AbstractValidator {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验合同预收部分金额是否认领完成
|
||||
*
|
||||
* @param preAmt 预收金额
|
||||
* @param order 合同
|
||||
* @param data
|
||||
*/
|
||||
private void validatorPreAmtClaimFinished(BigDecimal preAmt, DynamicObject order, ExtendedDataEntity data) {
|
||||
if (preAmt.compareTo(BigDecimal.ZERO) == 0) {
|
||||
return;
|
||||
}
|
||||
BigDecimal orderAmt = PaymentControlUtil.getContractClimeAmt(order, "D");
|
||||
BigDecimal shipAmt = PaymentControlUtil.getContractClimeAmt(order, "F");
|
||||
if (orderAmt.add(shipAmt).compareTo(preAmt) < 0) {
|
||||
this.addMessage(data, String.format("合同 [ %s ] 预收合计 [ %s ] ,已经认领金额合计 [ %s ],未认领完成,请确认!",
|
||||
order.getString("billno"),
|
||||
preAmt.setScale(4, RoundingMode.HALF_UP).toPlainString(),
|
||||
orderAmt.add(shipAmt).setScale(4, RoundingMode.HALF_UP).toPlainString()));
|
||||
}
|
||||
}
|
||||
|
||||
private void arrearsVerification(DynamicObject dataEntity, ExtendedDataEntity data) {
|
||||
DynamicObject yemCustomer = dataEntity.getDynamicObject("yem_customer");
|
||||
if (yemCustomer != null) {
|
||||
|
Loading…
Reference in New Issue
Block a user