Эх сурвалжийг харах

feat(outdata): 调整导出服务数据验证逻辑

- 修改数据验证规则,允许输入列表外的文本
- 设置允许空值输入
- 添加输入提示框,提升用户体验
- 优化验证提示显示逻辑

fix(coordination): 完善协同操作异常处理机制

- 补充事务结束后的回调处理
- 增强操作执行后的异常捕获逻辑
- 添加详细的错误信息记录与抛出
- 优化业务流程执行结果检查机制
Tyx 7 цаг өмнө
parent
commit
41dc8a238e

+ 20 - 11
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/sit/hcsi/opplugin/web/coordination/SinsurEmpCoordSplitOp.java

@@ -8,12 +8,15 @@ import kd.bos.entity.plugin.PreparePropertysEventArgs;
 import kd.bos.entity.plugin.args.AfterOperationArgs;
 import kd.bos.entity.plugin.args.AfterOperationArgs;
 import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
 import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
 import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
 import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
+import kd.bos.exception.KDBizException;
 import kd.bos.logging.Log;
 import kd.bos.logging.Log;
 import kd.bos.logging.LogFactory;
 import kd.bos.logging.LogFactory;
 import kd.bos.servicehelper.operation.OperationServiceHelper;
 import kd.bos.servicehelper.operation.OperationServiceHelper;
 import kd.sdk.plugin.Plugin;
 import kd.sdk.plugin.Plugin;
 import nckd.jxccl.sit.hcsi.business.coordination.SinsurCoordSplitService;
 import nckd.jxccl.sit.hcsi.business.coordination.SinsurCoordSplitService;
 
 
+import java.util.stream.Collectors;
+
 /**
 /**
  * 单据操作插件
  * 单据操作插件
  */
  */
@@ -30,6 +33,16 @@ public class SinsurEmpCoordSplitOp extends AbstractOperationServicePlugIn implem
     @Override
     @Override
     public void beginOperationTransaction(BeginOperationTransactionArgs e) {
     public void beginOperationTransaction(BeginOperationTransactionArgs e) {
         super.beginOperationTransaction(e);
         super.beginOperationTransaction(e);
+    }
+
+    @Override
+    public void endOperationTransaction(EndOperationTransactionArgs e) {
+        super.endOperationTransaction(e);
+    }
+
+    @Override
+    public void afterExecuteOperationTransaction(AfterOperationArgs e) {
+        super.afterExecuteOperationTransaction(e);
         DynamicObject[] bills = e.getDataEntities();
         DynamicObject[] bills = e.getDataEntities();
         for(DynamicObject bill : bills) {
         for(DynamicObject bill : bills) {
             SinsurCoordSplitService service = new SinsurCoordSplitService(bill.getLong("id"), bill);
             SinsurCoordSplitService service = new SinsurCoordSplitService(bill.getLong("id"), bill);
@@ -40,18 +53,14 @@ public class SinsurEmpCoordSplitOp extends AbstractOperationServicePlugIn implem
                 OperateOption option = OperateOption.create();
                 OperateOption option = OperateOption.create();
                 OperationResult result = OperationServiceHelper.executeOperate("confirmeffect", "hpdi_empcoordverifbill3", new DynamicObject[]{bill}, option);
                 OperationResult result = OperationServiceHelper.executeOperate("confirmeffect", "hpdi_empcoordverifbill3", new DynamicObject[]{bill}, option);
                 logger.info("标品提交生效结果:" + result.isSuccess());
                 logger.info("标品提交生效结果:" + result.isSuccess());
-
+                if (!result.isSuccess()) {
+                    String errorMessage = result.getAllErrorInfo().stream()
+                            .map(dyx -> dyx.getMessage())
+                            .collect(Collectors.joining(", "));
+                    logger.info("标品提交生效错误:" + errorMessage);
+                    throw new KDBizException(errorMessage);
+                }
             }
             }
         }
         }
     }
     }
-
-    @Override
-    public void endOperationTransaction(EndOperationTransactionArgs e) {
-        super.endOperationTransaction(e);
-    }
-
-    @Override
-    public void afterExecuteOperationTransaction(AfterOperationArgs e) {
-        super.afterExecuteOperationTransaction(e);
-    }
 }
 }

+ 8 - 2
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/hsas/business/outdata/OutImportTaskGuideExportService.java

@@ -239,8 +239,14 @@ public class OutImportTaskGuideExportService {
 
 
         // 创建数据验证
         // 创建数据验证
         DataValidation validation = validationHelper.createValidation(constraint, addressList);
         DataValidation validation = validationHelper.createValidation(constraint, addressList);
-        validation.setSuppressDropDownArrow(true);
-        validation.setShowErrorBox(true);
+
+        // 允许输入列表外的文本
+        validation.setShowErrorBox(false);  // 不显示错误框
+        validation.setEmptyCellAllowed(true); // 允许空值
+
+        // 可选:添加输入提示
+        validation.setShowPromptBox(true);
+        validation.createPromptBox("输入提示", "可选择下拉选项或输入自定义值");
 
 
         // 添加到工作表
         // 添加到工作表
         sheet.addValidationData(validation);
         sheet.addValidationData(validation);