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; }