From 53fda19d541117ceed161ec7c7f41e7d47f948c5 Mon Sep 17 00:00:00 2001 From: ljw Date: Thu, 12 Sep 2024 20:03:44 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=A4=96=E9=94=80=E5=90=88=E5=90=8C?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E6=95=88=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wm/es/salesorder/op/SalesOrderSaveOp.java | 16 +++++++ .../validator/SalesOrderSaveValidator.java | 48 +++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 src/main/java/com/yem/wm/es/salesorder/validator/SalesOrderSaveValidator.java diff --git a/src/main/java/com/yem/wm/es/salesorder/op/SalesOrderSaveOp.java b/src/main/java/com/yem/wm/es/salesorder/op/SalesOrderSaveOp.java index 7b985e00..2621ce0c 100644 --- a/src/main/java/com/yem/wm/es/salesorder/op/SalesOrderSaveOp.java +++ b/src/main/java/com/yem/wm/es/salesorder/op/SalesOrderSaveOp.java @@ -1,7 +1,11 @@ package com.yem.wm.es.salesorder.op; +import com.yem.wm.es.salesorder.validator.SalesOrderSaveValidator; +import com.yem.wm.es.salesorder.validator.SalesOrderUnAuditValidator; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.AddValidatorsEventArgs; +import kd.bos.entity.plugin.PreparePropertysEventArgs; import kd.bos.entity.plugin.args.EndOperationTransactionArgs; import kd.bos.i18n.mservice.I18nServiceHelper; import kd.bos.i18n.mservice.utils.AmountConvertResult; @@ -10,6 +14,7 @@ import kd.bos.servicehelper.operation.SaveServiceHelper; import java.math.BigDecimal; import java.math.RoundingMode; +import java.util.List; import java.util.Map; import static com.yem.wm.syn.cmmp.addnew.OrderProReqBillWMI.getDownList; @@ -21,6 +26,12 @@ import static com.yem.wm.syn.cmmp.addnew.OrderProReqBillWMI.getDownList; * 保存时贸易术语赋值 */ public class SalesOrderSaveOp extends AbstractOperationServicePlugIn { + @Override + public void onPreparePropertys(PreparePropertysEventArgs e) { + super.onPreparePropertys(e); + List fieldKeys = e.getFieldKeys(); + fieldKeys.addAll(this.billEntityType.getAllFields().keySet()); + } @Override public void endOperationTransaction(EndOperationTransactionArgs e) { @@ -42,4 +53,9 @@ public class SalesOrderSaveOp extends AbstractOperationServicePlugIn { } } } + @Override + public void onAddValidators(AddValidatorsEventArgs e) { + super.onAddValidators(e); + e.addValidator(new SalesOrderSaveValidator()); + } } diff --git a/src/main/java/com/yem/wm/es/salesorder/validator/SalesOrderSaveValidator.java b/src/main/java/com/yem/wm/es/salesorder/validator/SalesOrderSaveValidator.java new file mode 100644 index 00000000..4ae206f1 --- /dev/null +++ b/src/main/java/com/yem/wm/es/salesorder/validator/SalesOrderSaveValidator.java @@ -0,0 +1,48 @@ +package com.yem.wm.es.salesorder.validator; + +import com.grapecity.documents.excel.L; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.ExtendedDataEntity; +import kd.bos.entity.validate.AbstractValidator; +import scala.Int; + +import java.util.*; + +/** + * @author ljw + * @date 2024/9/12 19:01 + * @description SalesOrderSaveValidator + */ +public class SalesOrderSaveValidator extends AbstractValidator { + @Override + public void validate() { + ExtendedDataEntity[] dataEntities = this.getDataEntities(); + for (ExtendedDataEntity dataEntitie : dataEntities) { + DynamicObject dataEntity = dataEntitie.getDataEntity(); + DynamicObjectCollection yemEsMaterialinfo = dataEntity.getDynamicObjectCollection("yem_es_materialinfo"); + Map map = new HashMap<>(); + Map maps = new HashMap<>(); + for (DynamicObject dynamicObject : yemEsMaterialinfo) { + DynamicObject yemMateriel = dynamicObject.getDynamicObject("yem_materiel"); + if (yemMateriel != null) { + String seq = dynamicObject.getString("seq"); + Long aLong = yemMateriel.getLong("id"); + if (map.get(aLong) == null) { + map.put(aLong, seq); + } else { + if (maps.get(aLong) == null) { + maps.put(aLong, map.get(aLong) + "," + seq); + } else { + maps.put(aLong, maps.get(aLong) + "," + seq); + } + } + + } + } + for (Long key : maps.keySet()) { + this.addErrorMessage(dataEntitie, "商品明细:第" + maps.get(key) + "行物料编码重复"); + } + } + } +}