From 3f5368b44b0b26885354f5a8ea56d587e326b079 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=9D=96?= Date: Wed, 15 May 2024 14:14:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=B7=AE=E7=94=B3=E8=AF=B7=E5=8D=95?= =?UTF-8?q?=E4=BF=9D=E5=AD=980.2,=20=E8=8E=B7=E5=8F=96=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E4=BA=BA=E7=9A=84=E9=BB=98=E8=AE=A4=E9=83=A8=E9=97=A8=E4=BD=9C?= =?UTF-8?q?=E4=B8=BA=E7=94=B3=E8=AF=B7=E9=83=A8=E9=97=A8=E5=92=8C=E8=B4=B9?= =?UTF-8?q?=E7=94=A8=E6=89=BF=E6=8B=85=E9=83=A8=E9=97=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/SaveTripBaseBillApiSavePlugin.java | 68 +++++++++++++++---- 1 file changed, 54 insertions(+), 14 deletions(-) diff --git a/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/SaveTripBaseBillApiSavePlugin.java b/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/SaveTripBaseBillApiSavePlugin.java index 84ed819..cfe074c 100644 --- a/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/SaveTripBaseBillApiSavePlugin.java +++ b/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/SaveTripBaseBillApiSavePlugin.java @@ -1,6 +1,13 @@ package shkd.fi.er.plugin; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.openapi.api.plugin.ApiSavePlugin; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.QueryServiceHelper; +import kd.bos.servicehelper.user.UserServiceHelper; +import kd.bos.servicehelper.BusinessDataServiceHelper; import java.math.BigDecimal; import java.util.HashMap; @@ -8,21 +15,43 @@ import java.util.List; import java.util.Map; public class SaveTripBaseBillApiSavePlugin implements ApiSavePlugin { + private QFilter[] qList; + + private String getUserDeptNumber(String userNumber) { + QFilter filter = new QFilter("number", QCP.equals, userNumber); + QFilter[] qList = {filter}; + // DynamicObject queryOrg = BusinessDataServiceHelper.loadSingle("bos_user", qList); + DynamicObjectCollection list = QueryServiceHelper + .query("bos_user","id, entryentity.*, entryentity.dpt.*", qList); + for(DynamicObject queryOrg : list) { + long id = (long)queryOrg.get("id"); + long dptId = (long)queryOrg.get("entryentity.dpt.id"); + String dptNumber = queryOrg.getString("entryentity.dpt.number"); + boolean isPartJob = queryOrg.getBoolean("entryentity.ispartjob"); + // 返回不是兼职的部门 + if(!isPartJob){ + return dptNumber ; + } + } + return null; + } + @Override public List> preHandleRequestData(List> reqData) { - for(Map temp1 : reqData) { + Map tempMap = null; + for (Map temp1 : reqData) { Object multitravelers = temp1.get("multitravelers"); - if(temp1.containsKey("tripentry")){ - List> tripentryList = (List>)temp1.get("tripentry"); + if (temp1.containsKey("tripentry")) { + List> tripentryList = (List>) temp1.get("tripentry"); BigDecimal amount = BigDecimal.ZERO; - for(Map tripentry : tripentryList) { - amount = amount.add((BigDecimal)tripentry.get("triporiamount")); + for (Map tripentry : tripentryList) { + amount = amount.add((BigDecimal) tripentry.get("triporiamount")); tripentry.put("travelers", multitravelers); - if(!tripentry.containsKey("tripexpenseitem")){ - Map tripexpenseitem = new HashMap(); + if (!tripentry.containsKey("tripexpenseitem")) { + tempMap = new HashMap(); //费用项目默认《差旅费》FYXM0015 - tripexpenseitem.put("number", "FYXM0015"); - tripentry.put("tripexpenseitem", tripexpenseitem); + tempMap.put("number", "FYXM0015"); + tripentry.put("tripexpenseitem", tempMap); //交通工具默认《其它工具》 [1:飞机, 2:火车, 3:汽车, 4:轮船, 5:其他工具] tripentry.put("vehicles", "5"); } @@ -30,14 +59,25 @@ public class SaveTripBaseBillApiSavePlugin implements ApiSavePlugin { temp1.put("amount", amount); temp1.put("approveamount", amount); } - if(!temp1.containsKey("triptype")){ - Map triptype = new HashMap(); + if (!temp1.containsKey("triptype")) { + tempMap = new HashMap(); //出差类型默认值《普通出差》001 - triptype.put("number", "001"); - temp1.put("triptype", triptype); + tempMap.put("number", "001"); + temp1.put("triptype", tempMap); } temp1.put("istravelers", true); - // temp1.put("billstatus", "C"); + Map applierMap = (Map)temp1.get("applier"); + String deptNumber = getUserDeptNumber(String.valueOf(applierMap.get("number")));//10000872 + if (!temp1.containsKey("org")) { + tempMap = new HashMap(); + tempMap.put("number", deptNumber); + temp1.put("org", tempMap); + } + if (!temp1.containsKey("costdept")) { + tempMap = new HashMap(); + tempMap.put("number", deptNumber); + temp1.put("costdept", tempMap); + } } return reqData; }