Ver Fonte

fix:差旅标准基础资料推送

sbtjtserver/gw-zhaojq01 há 3 dias atrás
pai
commit
c177baa82d

+ 18 - 1
base/nckd-base-common/src/main/java/nckd/base/common/utils/OperationUtils.java

@@ -9,7 +9,6 @@ import kd.bos.entity.operate.result.OperationResult;
 import kd.bos.exception.KDBizException;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.operation.OperationServiceHelper;
-import kd.fi.er.common.constant.page.ErTripReqBillConstant;
 import nckd.base.common.constant.BaseFieldConst;
 import nckd.base.common.constant.OperationKeyConst;
 import nckd.base.common.enums.BillStatusEnum;
@@ -231,4 +230,22 @@ public class OperationUtils {
             throw new KDBizException(errorPrefix + errorMsg);
         }
     }
+
+
+    /**
+     * 保存操作
+     *
+     * @param formBillId
+     * @param ids
+     */
+    public static void operationDoSave(String formBillId, List<Object> ids) {
+        DynamicObjectType type = EntityMetadataCache.getDataEntityType(formBillId);
+        OperationResult saveResult = OperationServiceHelper.executeOperate(
+                OperationKeyConst.SAVE,
+                formBillId,
+                ids.toArray(),
+                OperateOption.create()
+        );
+        validateOperationResult(saveResult, String.format("保存【%s】失败:", type.getDisplayName().toString()));
+    }
 }

+ 63 - 0
nckd-fi/src/main/java/nckd/fi/er/task/TravelStandardPushTask.java

@@ -0,0 +1,63 @@
+package nckd.fi.er.task;
+
+import kd.bos.context.RequestContext;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.exception.KDException;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.schedule.executor.AbstractTask;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import nckd.base.common.utils.OperationUtils;
+import org.apache.commons.lang3.ObjectUtils;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * Created with IntelliJ IDEA.
+ *
+ * @Author: 赵嘉琪
+ * @Date: 2026/01/08
+ * @Description:差旅标准基础资料推送
+ */
+public class TravelStandardPushTask extends AbstractTask {
+
+    @Override
+    public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
+        //单据状态 已审核
+        QFilter baseQFOne = new QFilter("status", QCP.equals, "C").and("enable", QCP.equals, "1");
+
+        //报销级别
+        DynamicObject[] reimburselevelCol = BusinessDataServiceHelper.load("er_reimburselevel", "id", baseQFOne.toArray());
+        if (ObjectUtils.isNotEmpty(reimburselevelCol)) {
+            List<Object> ids = Arrays.stream(reimburselevelCol).map(dynamicObject -> dynamicObject.getPkValue()).collect(Collectors.toList());
+            //调用后台操作推送
+            OperationUtils.operationDoSave("er_reimburselevel", ids);
+        }
+        //出差地域
+        DynamicObject[] tripareatListCol = BusinessDataServiceHelper.load("er_triparea", "id", baseQFOne.toArray());
+        if (ObjectUtils.isNotEmpty(tripareatListCol)) {
+            List<Object> ids = Arrays.stream(tripareatListCol).map(dynamicObject -> dynamicObject.getPkValue()).collect(Collectors.toList());
+            //调用后台操作推送
+            OperationUtils.operationDoSave("er_triparea", ids);
+        }
+
+        //交通工具标准
+        DynamicObject[] vehicleApplyBillCol = BusinessDataServiceHelper.load("er_tripstandard_vehicle", "id", baseQFOne.toArray());
+        if (ObjectUtils.isNotEmpty(vehicleApplyBillCol)) {
+            List<Object> ids = Arrays.stream(vehicleApplyBillCol).map(dynamicObject -> dynamicObject.getPkValue()).collect(Collectors.toList());
+            //调用后台操作推送
+            OperationUtils.operationDoSave("er_tripstandard_vehicle", ids);
+        }
+
+        //住宿补助标准
+        DynamicObject[] accmodationBillCol = BusinessDataServiceHelper.load("er_tripstand_accmodation", "id", baseQFOne.toArray());
+        if (ObjectUtils.isNotEmpty(accmodationBillCol)) {
+            List<Object> ids = Arrays.stream(accmodationBillCol).map(dynamicObject -> dynamicObject.getPkValue()).collect(Collectors.toList());
+            //调用后台操作推送
+            OperationUtils.operationDoSave("er_tripstand_accmodation", ids);
+        }
+    }
+}