From edbf2bf8d4a9bf26d555aa20bd0e459aa213ebe3 Mon Sep 17 00:00:00 2001 From: zzs Date: Tue, 21 Jan 2025 15:32:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=E8=AE=A2=E8=88=B1=E4=B8=8B=E6=8E=A8?= =?UTF-8?q?=E5=AF=84=E5=8D=95=E6=94=BE=E5=8D=95=E8=B6=85=E6=97=B6=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../convert/StorgeTransToExportPresentConvert.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/yem/wm/es/storagetrans/convert/StorgeTransToExportPresentConvert.java b/src/main/java/com/yem/wm/es/storagetrans/convert/StorgeTransToExportPresentConvert.java index 177947ee..41ef8da0 100644 --- a/src/main/java/com/yem/wm/es/storagetrans/convert/StorgeTransToExportPresentConvert.java +++ b/src/main/java/com/yem/wm/es/storagetrans/convert/StorgeTransToExportPresentConvert.java @@ -38,15 +38,21 @@ public class StorgeTransToExportPresentConvert extends AbstractConvertPlugIn List storageTrans = (List) findByEntityKey.getValue("ConvertSource"); Set shipIds = new HashSet(); Set saleIds = new HashSet(); + Set st_ids = new HashSet(); for (DynamicObject storageTran : storageTrans) { long id = storageTran.getLong("id"); - storageTran = BusinessDataServiceHelper.loadSingle(id, name); - DynamicObjectCollection materialInfos = storageTran.getDynamicObjectCollection("yem_es_materialinfo"); +// storageTran = BusinessDataServiceHelper.loadSingle(id, name); + st_ids.add(id); + } + DynamicObject[] st_load = BusinessDataServiceHelper.load(name, "yem_es_materialinfo.yem_sourcebillid_d, yem_es_materialinfo.yem_corebillid_d, id, billno", new QFilter[]{new QFilter("id", "in", st_ids)}); + for (DynamicObject st : st_load) { + DynamicObjectCollection materialInfos = st.getDynamicObjectCollection("yem_es_materialinfo"); for (DynamicObject materialInfo : materialInfos) { shipIds.add(materialInfo.getLong("yem_sourcebillid_d")); saleIds.add(materialInfo.getLong("yem_corebillid_d")); } } + Map saleMap = new HashMap(); String selectFields = DynamicObjectUtil.getSelectfields("yem_shippingdetails", false); DynamicObject[] shippingDetails = BusinessDataServiceHelper.load("yem_shippingdetails", selectFields, From d229a00ac4c2d7cc1273b3925820b031a887aec8 Mon Sep 17 00:00:00 2001 From: zzs Date: Tue, 21 Jan 2025 15:51:04 +0800 Subject: [PATCH 2/2] =?UTF-8?q?ci:=E5=8E=BB=E6=8E=89=E5=AF=84=E5=8D=95?= =?UTF-8?q?=E6=94=BE=E5=8D=95=E9=83=A8=E5=88=86=E6=8F=90=E4=BA=A4=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExportPresentSubmitValidator.java | 113 +++++++++++++++++- 1 file changed, 111 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/yem/wm/es/exportpresent/validator/ExportPresentSubmitValidator.java b/src/main/java/com/yem/wm/es/exportpresent/validator/ExportPresentSubmitValidator.java index 9b827d9a..398e9696 100644 --- a/src/main/java/com/yem/wm/es/exportpresent/validator/ExportPresentSubmitValidator.java +++ b/src/main/java/com/yem/wm/es/exportpresent/validator/ExportPresentSubmitValidator.java @@ -1,15 +1,21 @@ package com.yem.wm.es.exportpresent.validator; import com.yem.wm.es.shippingdetails.util.PaymentControlUtil; +import com.yem.wm.utils.DynamicObjectUtil; +import com.yem.wm.utils.YEM; 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.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.operation.SaveServiceHelper; import java.math.BigDecimal; import java.math.RoundingMode; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; import static com.yem.wm.es.contractamtlist.util.FunUtil.getPayBills; import static com.yem.wm.es.contractamtlist.util.FunUtil.getShipBills; @@ -20,8 +26,38 @@ import static com.yem.wm.es.contractamtlist.util.FunUtil.getShipBills; * @Created by ZZSLL */ -public class ExportPresentSubmitValidator extends AbstractValidator -{ +public class ExportPresentSubmitValidator extends AbstractValidator { +// @Override +// public void validate() { +// ExtendedDataEntity[] dataEntities = this.getDataEntities(); +// for (ExtendedDataEntity data : dataEntities) { +// DynamicObject dataEntity = data.getDataEntity(); +// // 款项类型 +// String paymenttype = dataEntity.getString("yem_paymenttype"); +// +// // 是否见提单 +// String isladingbill = dataEntity.getString("yem_isladingbill"); +// // 收汇信息 +// DynamicObjectCollection receiveC = dataEntity.getDynamicObjectCollection("yem_es_exportpre_erf"); +// DynamicObjectCollection detailC = dataEntity.getDynamicObjectCollection("yem_es_exportpre_el"); +// +// Set salesOrder = new HashSet<>(); +// for (DynamicObject d : detailC) { +// salesOrder.add(d.getString("yem_contractnum")); +// } +// String selectfields = DynamicObjectUtil.getSelectfields("yem_es_salesorder"); +// selectfields = DynamicObjectUtil.getEntrySelectfields(selectfields, "yem_es_salesorder", "yem_es_salescontrac_s"); +// Map orders = BusinessDataServiceHelper.loadFromCache("yem_es_salesorder", selectfields, new QFilter[]{new QFilter("billno", "in", salesOrder)}); +// +// if ("A".equals(paymenttype)) { +// +// if ("A".equals(isladingbill)) { +// prePayAmtValidator(data, orders, detailC, receiveC); +// } +// } +// } +// } + @Override public void validate() { @@ -36,6 +72,79 @@ public class ExportPresentSubmitValidator extends AbstractValidator } } + /** + * 0、见提单并且100%L/C,100%OA、100%DP、100%DA并且没有预收款:判断预收款项是否认领完成 + * 0、见提单并且100%L/C,100%OA、100%DP、100%DA并且有预收款:只判断预收款项是否认领完成 + * 通过或不进行1234校验 + * 1、见提单并且正常款项:判断合同是否认领完成 + * 2、见提单并且特殊款项:判断合同是否认领完成 + * 1或2通过不进行后续校验 + * 3、未件提单并且正常款项:判断合同是否认领完成 + * 4、未件提单并且特殊款项:判断合同是否认领完成 + * 3或4通过不进行后续校验 + * + */ +// private void prePayAmtValidator(ExtendedDataEntity data, Map orders, DynamicObjectCollection detailC, DynamicObjectCollection receiveC) { +// StringBuilder sb = new StringBuilder(); +// for (Map.Entry entry : orders.entrySet()) { +// DynamicObject order = entry.getValue(); +// BigDecimal shipPreRapRate = PaymentControlUtil.getShipPreRapRate(order); +// BigDecimal procPreRapRate = PaymentControlUtil.getProcPreRapRate(order); +// // 该合同是否包含预付 +// boolean isPre = shipPreRapRate.add(procPreRapRate).compareTo(BigDecimal.ZERO) > 0; +// DynamicObjectCollection collection = order.getDynamicObjectCollection("yem_es_salescontrac_s"); +// boolean isSpecialRapStyle = false; +// for (DynamicObject d : collection) { +// DynamicObject rapstyle = d.getDynamicObject("yem_rapstyle_c"); +// if (YEM.isNotEmpty(rapstyle) && "D/A JSFS08 L/C OA D/A".contains(rapstyle.getString("number"))) { +// isSpecialRapStyle = true; +// } +// } +// +// // 合同金额 +// BigDecimal offeramount = order.getBigDecimal("yem_offeramount"); +// String billno = order.getString("billno"); +// // 合同已认领金额 +// BigDecimal climeAmt = PaymentControlUtil.getContractClimeAmt(order, ""); +// // 只判断预付款是否认领完成 +// if (isSpecialRapStyle && isPre) { +// BigDecimal climeAmtShip = PaymentControlUtil.getContractClimeAmt(order, "D"); +// BigDecimal climeAmtProc = PaymentControlUtil.getContractClimeAmt(order, "E"); +// +// BigDecimal climePreAmt = climeAmtShip.add(climeAmtProc); +// +// BigDecimal shipAmt = PaymentControlUtil.getAdvancePayment(shipPreRapRate, offeramount); +// BigDecimal procAmt = PaymentControlUtil.getAdvancePayment(procPreRapRate, offeramount); +// +// BigDecimal orderPreAmt = shipAmt.add(procAmt); +// +// if (climePreAmt.compareTo(orderPreAmt) < 0) { +// sb.append(String.format("合同 [ %s ] ,合同预收金额 [ %s ], 合同预收已认领金额合计 [ %s ],合同预收款未认领完成,请核对后提交!(L/C、OA、DP、DA)", +// billno, +// orderPreAmt.setScale(4, RoundingMode.HALF_UP).toPlainString(), +// climePreAmt.setScale(4, RoundingMode.HALF_UP).toPlainString())).append("\r\n"); +// } +// } else { +// if (climeAmt.compareTo(offeramount) < 0) { +// boolean passed = arrearsVerification(data.getDataEntity(), data, receiveC); +// if (!passed) { +// sb.append(String.format("合同 [ %s ] ,合同金额 [ %s ], 合同已认领金额合计 [ %s ],合同未认领完成,请核对后提交!", +// billno, +// offeramount.setScale(4, RoundingMode.HALF_UP).toPlainString(), +// climeAmt.setScale(4, RoundingMode.HALF_UP).toPlainString())).append("\r\n"); +// } +// } +// } +// } +// +// if (sb.length() > 0) { +// this.addErrorMessage(data, String.valueOf(sb)); +// } +// } + + /** + * 走储备申请或者走欠条申请,但是款项未认领完成,不允许提交寄单放单 + */ private void arrearsVerification(DynamicObject dataEntity, ExtendedDataEntity data) { DynamicObjectCollection collection = dataEntity.getDynamicObjectCollection("yem_es_exportpre_erf");