员工借款单表单插件:加载部门可用借款额度数据
This commit is contained in:
		
							parent
							
								
									e6e4f559c0
								
							
						
					
					
						commit
						f2dd45b9fb
					
				| 
						 | 
					@ -13,6 +13,7 @@ import kd.bos.permission.model.UserParam;
 | 
				
			||||||
import kd.bos.schedule.executor.AbstractTask;
 | 
					import kd.bos.schedule.executor.AbstractTask;
 | 
				
			||||||
import kd.bos.service.ServiceFactory;
 | 
					import kd.bos.service.ServiceFactory;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
				
			||||||
import kd.bos.servicehelper.QueryServiceHelper;
 | 
					import kd.bos.servicehelper.QueryServiceHelper;
 | 
				
			||||||
import kd.bos.servicehelper.org.OrgUnitServiceHelper;
 | 
					import kd.bos.servicehelper.org.OrgUnitServiceHelper;
 | 
				
			||||||
import kd.bos.servicehelper.user.UserServiceHelper;
 | 
					import kd.bos.servicehelper.user.UserServiceHelper;
 | 
				
			||||||
| 
						 | 
					@ -112,7 +113,7 @@ public class UserTaskImpl extends AbstractTask {
 | 
				
			||||||
                        "id,number,shkd_oaid", null);//查询星瀚系统部门集合
 | 
					                        "id,number,shkd_oaid", null);//查询星瀚系统部门集合
 | 
				
			||||||
                userIds = new HashMap<Object, Long>();//存放系统中已经存在的用户id集合
 | 
					                userIds = new HashMap<Object, Long>();//存放系统中已经存在的用户id集合
 | 
				
			||||||
                for (DynamicObject queryUser : queryUsers) {
 | 
					                for (DynamicObject queryUser : queryUsers) {
 | 
				
			||||||
                    userIds.put(queryUser.getString("number"), queryUser.getLong("id"));//存放已经存在的人员的id以及number
 | 
					                    userIds.put(queryUser.getString("shkd_oaid"), queryUser.getLong("id"));//存放已经存在的人员的id以及number
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                for (int i = 1; i < pageNumber.intValue(); i++){//查询成功取第一轮数据同步
 | 
					                for (int i = 1; i < pageNumber.intValue(); i++){//查询成功取第一轮数据同步
 | 
				
			||||||
                    CURPAGE = i ;
 | 
					                    CURPAGE = i ;
 | 
				
			||||||
| 
						 | 
					@ -151,7 +152,7 @@ public class UserTaskImpl extends AbstractTask {
 | 
				
			||||||
        for (int i = 0; i < dataList.size(); i++) {
 | 
					        for (int i = 0; i < dataList.size(); i++) {
 | 
				
			||||||
            UserParam user = new UserParam();
 | 
					            UserParam user = new UserParam();
 | 
				
			||||||
            JSONObject userData = dataList.getJSONObject(i);
 | 
					            JSONObject userData = dataList.getJSONObject(i);
 | 
				
			||||||
            Long workid = userIds.get(userData.getString("workcode"));
 | 
					            Long workid = userIds.get(userData.getString("id"));
 | 
				
			||||||
            if (workid != null){
 | 
					            if (workid != null){
 | 
				
			||||||
                user.setId(workid);
 | 
					                user.setId(workid);
 | 
				
			||||||
                user.setCustomUserId(workid);
 | 
					                user.setCustomUserId(workid);
 | 
				
			||||||
| 
						 | 
					@ -170,29 +171,29 @@ public class UserTaskImpl extends AbstractTask {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // 职位分录
 | 
					            // 职位分录
 | 
				
			||||||
            if(workid == null){//若人不存在则更新部门
 | 
					            if(workid == null){//若人不存在则更新部门
 | 
				
			||||||
                List<Map<String, Object>> posList = new ArrayList<>();
 | 
					 | 
				
			||||||
                Map<String, Object> entryentity = new HashMap<>();
 | 
					 | 
				
			||||||
                // 通过编码设置部门
 | 
					 | 
				
			||||||
                Map<String, Object> dptNumMap = new HashMap<>();
 | 
					 | 
				
			||||||
                dptNumMap.put("number",  userData.getString("departmentcode"));
 | 
					 | 
				
			||||||
                entryentity.put("dpt",dptNumMap ); // 部门
 | 
					 | 
				
			||||||
                entryentity.put("position", userData.getString("jobactivityname")); // 职位
 | 
					 | 
				
			||||||
                entryentity.put("isincharge", false); //负责人
 | 
					 | 
				
			||||||
                entryentity.put("ispartjob", false); //兼职
 | 
					 | 
				
			||||||
                String managerId_oa = userData.getString("managerid");//获取上级人员id(oa)
 | 
					 | 
				
			||||||
                Long managerId = userIds.get(managerId_oa);//直接上级id
 | 
					 | 
				
			||||||
                if (managerId != null){
 | 
					 | 
				
			||||||
                    entryentity.put("superior", managerId); // 赋值直接上级
 | 
					 | 
				
			||||||
                }else {
 | 
					 | 
				
			||||||
                    if (!"".equals(managerId_oa)){//当上级人员id(oa)存在且未在星瀚系统检索成功时,修改参数flag,接口将重新构造人员类更新数据
 | 
					 | 
				
			||||||
                        flag = true;
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                entryentity.put("seq", 1);
 | 
					 | 
				
			||||||
                posList.add(entryentity);
 | 
					 | 
				
			||||||
                dataMap.put("entryentity", posList);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            List<Map<String, Object>> posList = new ArrayList<>();
 | 
				
			||||||
 | 
					            Map<String, Object> entryentity = new HashMap<>();
 | 
				
			||||||
 | 
					            // 通过编码设置部门
 | 
				
			||||||
 | 
					            Map<String, Object> dptNumMap = new HashMap<>();
 | 
				
			||||||
 | 
					            dptNumMap.put("number",  userData.getString("departmentcode"));
 | 
				
			||||||
 | 
					            entryentity.put("dpt",dptNumMap ); // 部门
 | 
				
			||||||
 | 
					            entryentity.put("position", userData.getString("jobactivityname")); // 职位
 | 
				
			||||||
 | 
					            entryentity.put("isincharge", false); //负责人
 | 
				
			||||||
 | 
					            entryentity.put("ispartjob", false); //兼职
 | 
				
			||||||
 | 
					            String managerId_oa = userData.getString("managerid");//获取上级人员id(oa)
 | 
				
			||||||
 | 
					            Long managerId = userIds.get(managerId_oa);//直接上级id
 | 
				
			||||||
 | 
					            if (managerId != null){
 | 
				
			||||||
 | 
					                entryentity.put("superior", managerId); // 赋值直接上级
 | 
				
			||||||
 | 
					            }else {
 | 
				
			||||||
 | 
					                if (!"".equals(managerId_oa)){//当上级人员id(oa)存在且未在星瀚系统检索成功时,修改参数flag,接口将重新构造人员类更新数据
 | 
				
			||||||
 | 
					                    flag = true;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            entryentity.put("seq", 1);
 | 
				
			||||||
 | 
					            posList.add(entryentity);
 | 
				
			||||||
 | 
					            dataMap.put("entryentity", posList);
 | 
				
			||||||
            user.setDataMap(dataMap);
 | 
					            user.setDataMap(dataMap);
 | 
				
			||||||
            paramList.add(user);
 | 
					            paramList.add(user);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,63 @@
 | 
				
			||||||
 | 
					package shkd.fi.er.plugin.formplugin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import kd.bos.dataentity.entity.DynamicObject;
 | 
				
			||||||
 | 
					import kd.bos.form.control.Label;
 | 
				
			||||||
 | 
					import kd.bos.form.plugin.AbstractFormPlugin;
 | 
				
			||||||
 | 
					import kd.bos.orm.query.QCP;
 | 
				
			||||||
 | 
					import kd.bos.orm.query.QFilter;
 | 
				
			||||||
 | 
					import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
				
			||||||
 | 
					import kd.sdk.plugin.Plugin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.math.BigDecimal;
 | 
				
			||||||
 | 
					import java.util.EventObject;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 员工借款单(借款单)表单插件
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class DailyLoanBillFormPlugin extends AbstractFormPlugin implements Plugin {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 打开界面加载数据
 | 
				
			||||||
 | 
					     * 计算部门可用借款额度
 | 
				
			||||||
 | 
					     * @param e
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void afterBindData(EventObject e) {
 | 
				
			||||||
 | 
					        super.afterBindData(e);
 | 
				
			||||||
 | 
					        DynamicObject dataEntity = this.getModel().getDataEntity();
 | 
				
			||||||
 | 
					        DynamicObject org = dataEntity.getDynamicObject("org");//获取当前部门
 | 
				
			||||||
 | 
					        if (org != null){//当部门不为空,开始核算该部门借款可用额度
 | 
				
			||||||
 | 
					            //1、获取本位币别
 | 
				
			||||||
 | 
					            DynamicObject currency = dataEntity.getDynamicObject("currency");//本位币别
 | 
				
			||||||
 | 
					            String sign = currency.getString("sign");
 | 
				
			||||||
 | 
					            //设置货币符号
 | 
				
			||||||
 | 
					            Label shkd_label_sign = this.getView().getControl("shkd_label_sign");
 | 
				
			||||||
 | 
					            shkd_label_sign.setText(sign);
 | 
				
			||||||
 | 
					            //2、计算借款可用额度
 | 
				
			||||||
 | 
					            BigDecimal bigDecimal = new BigDecimal(0);
 | 
				
			||||||
 | 
					            //查询审批未放款的当前部门的数据(已提交、审核中、审核通过、等待放款)
 | 
				
			||||||
 | 
					            QFilter qf = new QFilter("billstatus", QCP.in, new String[]{"B", "C", "E", "F"});
 | 
				
			||||||
 | 
					            DynamicObject[] bills = BusinessDataServiceHelper.load("er_dailyloanbill", "id.number,loanamount,balanceamount", qf.toArray());
 | 
				
			||||||
 | 
					            for (DynamicObject bill : bills) {
 | 
				
			||||||
 | 
					                BigDecimal loanamount = bill.getBigDecimal("loanamount");//获取借款金额
 | 
				
			||||||
 | 
					                bigDecimal = bigDecimal.add(loanamount);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            //查询审批已放款的当前部门的数据(已付款)
 | 
				
			||||||
 | 
					            QFilter aqf = new QFilter("billstatus", QCP.in, new String[]{"G"});
 | 
				
			||||||
 | 
					            DynamicObject[] abills = BusinessDataServiceHelper.load("er_dailyloanbill", "id.number,loanamount,balanceamount", aqf.toArray());
 | 
				
			||||||
 | 
					            for (DynamicObject abill : abills) {
 | 
				
			||||||
 | 
					                BigDecimal balanceamount = abill.getBigDecimal("balanceamount");//获取待还款金额
 | 
				
			||||||
 | 
					                bigDecimal = bigDecimal.add(balanceamount);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            //设置可借款金额
 | 
				
			||||||
 | 
					            Label shkd_borrowloanamount = this.getView().getControl("shkd_borrowloanamount");
 | 
				
			||||||
 | 
					            BigDecimal bigDecimal1 = new BigDecimal(300000);
 | 
				
			||||||
 | 
					            BigDecimal subtract = bigDecimal1.subtract(bigDecimal);
 | 
				
			||||||
 | 
					            subtract =   subtract.setScale(2);
 | 
				
			||||||
 | 
					            shkd_borrowloanamount.setText(subtract.toString());
 | 
				
			||||||
 | 
					        }else {
 | 
				
			||||||
 | 
					            //隐藏该部分标签数据 :借款可用额度、货币符号、0.00
 | 
				
			||||||
 | 
					            this.getView().setVisible(false, new String[]{"shkd_borrowloan", "shkd_label_sign", "shkd_borrowloanamount"});
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue