From c42909e38a26610434defc03437ed925fee13f48 Mon Sep 17 00:00:00 2001 From: liuzhao Date: Thu, 18 Oct 2018 19:51:04 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=88=86=E6=B4=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../overduedunning/DayDistribute.jsp | 2 +- src_tenwa/quartz/AutoDistribute.java | 689 ++++++++++-------- 2 files changed, 396 insertions(+), 295 deletions(-) diff --git a/WebContent/Tenwa/Lease/Flow/RentCollection/overduedunning/DayDistribute.jsp b/WebContent/Tenwa/Lease/Flow/RentCollection/overduedunning/DayDistribute.jsp index 8f4ae7efb..3a4f52f9e 100644 --- a/WebContent/Tenwa/Lease/Flow/RentCollection/overduedunning/DayDistribute.jsp +++ b/WebContent/Tenwa/Lease/Flow/RentCollection/overduedunning/DayDistribute.jsp @@ -16,7 +16,7 @@ String sButtons[][] = { //{"true","All","Button","新增","新增","newRecord()","","","","btn_icon_add",""}, //{"true","","Button","详情","详情","viewAndEdit()","","","","btn_icon_detail",""}, - {"true","All","Button","保存","保存所有修改","save()","","","",""}, + {"true","All","Button","保存","保存所有修改","as_Save()","","","",""}, //{"true","","Button","删除","删除","if(confirm('确实要删除吗?'))as_delete(0,'alert(getRowCount(0))')","","","","btn_icon_delete",""}, }; %><%@include file="/Frame/resources/include/ui/include_list.jspf"%> diff --git a/src_tenwa/quartz/AutoDistribute.java b/src_tenwa/quartz/AutoDistribute.java index f7dd7a21c..28a7bff1b 100644 --- a/src_tenwa/quartz/AutoDistribute.java +++ b/src_tenwa/quartz/AutoDistribute.java @@ -6,12 +6,8 @@ import java.util.List; import java.util.Map; import java.util.UUID; -import jbo.app.tenwa.calc.VI_NORMALSETTLE_CONTRACT; -import jbo.awe.USER_INFO; import jbo.com.tenwa.lease.comm.DAY_DISTRIBUTE; -import jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO; import jbo.com.tenwa.lease.comm.VI_AUTODISTRIBUTE; -import jbo.com.tenwa.lease.comm.VI_NORMALEND_CONTRACT; import jbo.sys.OVERDUE_DUNNING_INFO; import org.quartz.Job; @@ -20,129 +16,67 @@ import org.quartz.JobExecutionException; import com.amarsoft.are.jbo.BizObject; import com.amarsoft.are.jbo.BizObjectManager; +import com.amarsoft.are.jbo.JBOException; import com.amarsoft.are.jbo.JBOFactory; import com.amarsoft.are.jbo.JBOTransaction; import com.amarsoft.are.util.StringFunction; -import com.amarsoft.awe.util.ASResultSet; -import com.amarsoft.awe.util.SqlObject; -import com.amarsoft.awe.util.Transaction; -import com.amarsoft.context.ASUser; import com.base.util.QuartzUtil; //import com.tenwa.action.channelportal.ContractSignAction; //import com.tenwa.action.channelportal.comm.ContractTransferRightForEnd; import com.tenwa.comm.util.jboutil.DataOperatorUtil; -import com.tenwa.comm.util.jboutil.SaveBusinessStatus; import com.tenwa.lease.app.quartzmession.JobInitUserName; -import com.tenwa.officetempalte.action.CreateOfficeAction; //import com.tenwa.quartz.BeforeSerialTimingTask; //import com.tenwa.quartz.service.BeforeSerialTimingTaskService; //import com.tenwa.quartz.serviceImpl.BeforeSerialTimingTaskServiceImpl; -import com.tenwa.reckon.util.UUIDUtil; -import org.apache.log4j.Logger; - -public class AutoDistribute implements Job{ +public class AutoDistribute implements Job { private JobInitUserName jboName; + @Override public void execute(JobExecutionContext arg0) throws JobExecutionException { String startime = StringFunction.getTodayNow(); - + Object userId = arg0.getTrigger().getJobDataMap().get("CurUserId"); - String curUserId = userId == null? "system" : userId.toString(); - + String curUserId = userId == null ? "system" : userId.toString(); + try { JBOTransaction tx = JBOFactory.createJBOTransaction(); - ownershipTransferSign(tx,arg0); + ownershipTransferSign(tx, arg0); tx.commit(); - QuartzUtil.insertLog(startime, "quartz.AutoDistribute", "success", "成功", curUserId); + QuartzUtil.insertLog(startime, "quartz.AutoDistribute", "success","成功", curUserId); } catch (Exception e) { - QuartzUtil.insertLog(startime, "quartz.AutoDistribute", "error", "失败", curUserId); + QuartzUtil.insertLog(startime, "quartz.AutoDistribute", "error","失败", curUserId); e.printStackTrace(); } - } + } - @SuppressWarnings("unused") - public void ownershipTransferSign(JBOTransaction tx ,JobExecutionContext arg0) throws Exception{ - Transaction Sqlca = null; - Sqlca = Transaction.createTransaction(tx); - //int beginDay1 = 0; - //int endDay1 = 0; - int beginDay2 = 0; - int endDay2 = 0; - //int beginDay3 = 0; + + public void ownershipTransferSign(JBOTransaction tx,JobExecutionContext arg0) throws Exception{ //获取天数 - /*@SuppressWarnings("unchecked") - List dayDistribute = JBOFactory.createBizObjectQuery(DAY_DISTRIBUTE.CLASS_NAME, "select * from O").getResultList(false); - for (BizObject bizObject : dayDistribute) { - String role = bizObject.getAttribute("role").toString(); - int beginDay = bizObject.getAttribute("begin_day").getInt(); - int endDay = bizObject.getAttribute("end_day").getInt(); - if("轻催组".equals(role)){ - beginDay1 = beginDay; - endDay1 = endDay; - }else if("中催组".equals(role)){ - beginDay2 = beginDay; - endDay2 = endDay; - }else{ - beginDay3 = beginDay; - } - }*/ + Map dayMap = getDay(tx); + int beginDay1 = dayMap.get("beginDay1"); + int endDay1 = dayMap.get("endDay1"); + int beginDay2 = dayMap.get("beginDay2"); + int endDay2 = dayMap.get("endDay2"); + int beginDay3 = dayMap.get("beginDay3"); - BizObject dayDistribute = JBOFactory.createBizObjectQuery(DAY_DISTRIBUTE.CLASS_NAME, "role=:role").setParameter("role", "中催组").getSingleResult(false); - if(dayDistribute !=null){ - beginDay2 = dayDistribute.getAttribute("begin_day").getInt(); - endDay2 = dayDistribute.getAttribute("end_day").getInt(); - }else{ - return; - } - - //轻催组下的用户 - String Sql1="SELECT ur.roleid,O.userid AS userid,O.loginid,O.username FROM USER_INFO O LEFT JOIN USER_ROLE AS ur ON ur.USERID = O.USERID LEFT JOIN USER_TASK_INFO uti ON uti.userid=O.userid AND uti.roleid=ur.roleid WHERE O.status='1' AND ur.roleid='800R00000041'"; - - List> dataListA = DataOperatorUtil.getDataBySql(Sqlca, Sql1, null); - - String userA = new String(); - for (Map map : dataListA) { - String userid = map.get("userid"); - userA += userid+"@"; + //获取催款员角色下的用户 + Map userMap = getUser(tx); + String[] A = userMap.get("A");//轻催租 + String[] B = userMap.get("B");//中催组 + String[] C = userMap.get("C");//重催组 - } - String[] A =null; - A = userA.split("@"); - - //中催组下的用户 - String Sql2="SELECT ur.roleid,O.userid AS userid,O.loginid,O.username FROM USER_INFO O LEFT JOIN USER_ROLE AS ur ON ur.USERID = O.USERID LEFT JOIN USER_TASK_INFO uti ON uti.userid=O.userid AND uti.roleid=ur.roleid WHERE O.status='1' AND ur.roleid='800R00000042'"; - List> dataListB = DataOperatorUtil.getDataBySql(Sqlca, Sql2, null); - String userB = new String(); - for (Map map : dataListB) { - String userid = map.get("userid"); - userB += userid+"@"; - } - String[] B =null; - B = userB.split("@"); - - //重催组下的用户 - String Sql3="SELECT ur.roleid,O.userid,O.loginid,O.username FROM USER_INFO O LEFT JOIN USER_ROLE AS ur ON ur.USERID = O.USERID LEFT JOIN USER_TASK_INFO uti ON uti.userid=O.userid AND uti.roleid=ur.roleid WHERE O.status='1' AND ur.roleid='800R00000043'"; - List> dataListC = DataOperatorUtil.getDataBySql(Sqlca, Sql3, null); - String userC = new String(); - for (Map map : dataListC) { - String userid = map.get("userid"); - userC += userid+"@"; - } - String[] C =null; - C = userC.split("@"); + BizObjectManager overdueManager = JBOFactory.getBizObjectManager(OVERDUE_DUNNING_INFO.CLASS_NAME, tx); //获取所有逾期的需要催收的合同信息 String conInfo1 = getContractId(tx); - String overDays = ""; - BizObjectManager overdueManager = JBOFactory.getBizObjectManager(OVERDUE_DUNNING_INFO.CLASS_NAME, tx); if(!(conInfo1 == null || conInfo1.length() <= 0)){ String[] conInfos = conInfo1.split(","); for(String conInfo:conInfos){ - String contract_id = conInfo.split("@")[0]; - overDays = conInfo.split("@")[1]; + String contract_id = conInfo.split("@")[0];//合同id + String overDays = conInfo.split("@")[1];//逾期天数 int overDay = Integer.valueOf(overDays); - + //根据合同id查询表中数据,有则修改,无则新增 BizObject overdue = overdueManager.createQuery("contract_id=:contract_id").setParameter("contract_id", contract_id).getSingleResult(false); if(overdue!=null){//修改 //催款员 @@ -151,232 +85,399 @@ public class AutoDistribute implements Job{ if(overDay>=beginDay2 && overDay<=endDay2){ if(Arrays.asList(B).contains(partDept)){ //此催款员是中催组的人员,不做任何操作 - }else{ - //此催款员不是中催组的人员,则修改为中催组的人员 - - //中催组下未分配且上岗的催款员 - String sqlN = "SELECT MAX(O.userid) AS userid" - +" FROM USER_INFO O LEFT JOIN USER_ROLE AS ur ON ur.USERID = O.USERID" - +" LEFT JOIN USER_TASK_INFO uti ON uti.userid=O.userid AND uti.roleid=ur.roleid" - + " WHERE O.status='1' AND uti.induction_state='induction_state01' AND ur.roleid='800R00000042'" - + " AND O.userid NOT IN (SELECT o.part_dept FROM (SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) o WHERE o.number IN (SELECT MIN(t.number) FROM (SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) t) )"; - //虽然只让查出一条数据 - List> dataListAN = DataOperatorUtil.getDataBySql(Sqlca, sqlN, null); - //此时中催组的所有人员都已分配,选出目前任务最少的人,且上岗 - String sqlY = "SELECT MAX(o.part_dept) AS userid FROM (SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) o"+ - " WHERE o.number IN (SELECT MIN(t.number) FROM (SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) t)"+ - " AND o.part_dept IN"+ - " (SELECT O.userid FROM USER_INFO O"+ - " LEFT JOIN USER_ROLE AS ur ON ur.USERID = O.USERID "+ - " LEFT JOIN USER_TASK_INFO uti ON uti.userid=O.userid AND uti.roleid=ur.roleid"+ - " WHERE O.status='1' AND uti.induction_state='induction_state01' AND ur.roleid='800R00000042')"; - //虽然只能查出一条数据 - List> dataListAY = DataOperatorUtil.getDataBySql(Sqlca, sqlY, null); - //判断条件 - if(dataListAN !=null){ - String useridAN = new String(); - for (Map map : dataListAN) { - String userid = map.get("userid"); - useridAN += userid+"@"; - } - String[] AN =null; - AN = useridAN.split("@"); - String ANN = AN[0]; - - if(ANN==null || "".equals(ANN) || "null".equals(ANN)){ - String useridAY = new String(); - for (Map map : dataListAY) { - String userid = map.get("userid"); - useridAY += userid+"@"; - } - String[] AY =null; - AY = useridAY.split("@"); - String AYY = AY[0]; - //修改 - overdueManager.createQuery("UPDATE O SET O.part_dept='"+AYY+"' WHERE contract_id='"+contract_id+"'").executeUpdate(); - - }else{ - //修改 - overdueManager.createQuery("UPDATE O SET O.part_dept='"+ANN+"' WHERE contract_id='"+contract_id+"'").executeUpdate(); - } - }else{ - String useridAY = new String(); - for (Map map : dataListAY) { - String userid = map.get("userid"); - useridAY += userid+"@"; - } - String[] AY =null; - AY = useridAY.split("@"); - String AYY = AY[0]; - //修改 - overdueManager.createQuery("UPDATE O SET O.part_dept='"+AYY+"' WHERE contract_id='"+contract_id+"'").executeUpdate(); - } + }else{//此催款员不是中催组的人员,则修改为中催组的人员 + String person = getBPerson(tx); + updatePartDept(overdueManager, contract_id, person); } - }else{ + }else if(overDay>=beginDay3){ if(Arrays.asList(C).contains(partDept)){ //此催款员是重催组的人员,不做任何操作 }else{ //此催款员不是重催组的人员,则修改为重催组的人员 - //重催组下未分配的用户,且上岗 - String sqlN = "SELECT MAX(O.userid) AS userid" - +" FROM USER_INFO O LEFT JOIN USER_ROLE AS ur ON ur.USERID = O.USERID" - +" LEFT JOIN USER_TASK_INFO uti ON uti.userid=O.userid AND uti.roleid=ur.roleid" - + " WHERE O.status='1' AND uti.induction_state='induction_state01' AND ur.roleid='800R00000043'" - + " AND O.userid NOT IN (SELECT o.part_dept FROM (SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) o WHERE o.number IN (SELECT MIN(t.number) FROM (SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) t) )"; - //虽然只让查出一条数据 - List> dataListAN = DataOperatorUtil.getDataBySql(Sqlca, sqlN, null); - //此时重催组的所有人员都已分配,选出目前任务最少的人,且上岗 - String sqlY = "SELECT MAX(o.part_dept) AS userid FROM (SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) o"+ - " WHERE o.number IN (SELECT MIN(t.number) FROM (SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) t)"+ - " AND o.part_dept IN"+ - " (SELECT O.userid FROM USER_INFO O"+ - " LEFT JOIN USER_ROLE AS ur ON ur.USERID = O.USERID "+ - " LEFT JOIN USER_TASK_INFO uti ON uti.userid=O.userid AND uti.roleid=ur.roleid"+ - " WHERE O.status='1' AND uti.induction_state='induction_state01' AND ur.roleid='800R00000043')"; - //虽然只能查出一条数据 - List> dataListAY = DataOperatorUtil.getDataBySql(Sqlca, sqlY, null); - //判断条件 - if(dataListAN !=null){ - String useridAN = new String(); - for (Map map : dataListAN) { - String userid = map.get("userid"); - useridAN += userid+"@"; - } - String[] AN =null; - AN = useridAN.split("@"); - String ANN = AN[0]; - if(ANN==null || "".equals(ANN) || "null".equals(ANN)){ - String useridAY = new String(); - for (Map map : dataListAY) { - String userid = map.get("userid"); - useridAY += userid+"@"; - } - String[] AY =null; - AY = useridAY.split("@"); - String AYY = AY[0]; - //修改 - overdueManager.createQuery("UPDATE O SET O.part_dept='"+AYY+"' WHERE contract_id='"+contract_id+"'").executeUpdate(); - }else{ - //修改 - overdueManager.createQuery("UPDATE O SET O.part_dept='"+ANN+"' WHERE contract_id='"+contract_id+"'").executeUpdate(); - } - - }else{ - String useridAY = new String(); - for (Map map : dataListAY) { - String userid = map.get("userid"); - useridAY += userid+"@"; - } - String[] AY =null; - AY = useridAY.split("@"); - String AYY = AY[0]; - //修改 - overdueManager.createQuery("UPDATE O SET O.part_dept='"+AYY+"' WHERE contract_id='"+contract_id+"'").executeUpdate(); - } + String person = getCPerson(tx); + updatePartDept(overdueManager, contract_id, person); } + }else if(overDay>=beginDay1 && overDay<=endDay1){ + if(Arrays.asList(A).contains(partDept)){ + //此催款员是轻催组的人员,不做任何操作 + }else{ + //此催款员不是中催组的人员,则修改为轻催组的人员 + String person = getAPerson(tx); + updatePartDept(overdueManager, contract_id, person); + }//此催款员不是中催组的人员,则修改为轻催组的人员 } }else{//新增 - //轻催组下未分配的用户且上岗 - String sqlN = "SELECT MAX(O.userid) AS userid" - +" FROM USER_INFO O LEFT JOIN USER_ROLE AS ur ON ur.USERID = O.USERID" - +" LEFT JOIN USER_TASK_INFO uti ON uti.userid=O.userid AND uti.roleid=ur.roleid" - + " WHERE O.status='1' AND uti.induction_state='induction_state01' AND ur.roleid='800R00000041'" - + " AND O.userid NOT IN (SELECT o.part_dept FROM (SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) o WHERE o.number IN (SELECT MIN(t.number) FROM (SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) t) )"; - //虽然只让查出一条数据 - List> dataListAN = DataOperatorUtil.getDataBySql(Sqlca, sqlN, null); - //轻催组下已分配 但最少 的人,且上岗 - String sqlY = "SELECT MAX(o.part_dept) AS userid FROM (SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) o"+ - " WHERE o.number IN (SELECT MIN(t.number) FROM (SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) t)"+ - " AND o.part_dept IN"+ - " (SELECT O.userid FROM USER_INFO O"+ - " LEFT JOIN USER_ROLE AS ur ON ur.USERID = O.USERID "+ - " LEFT JOIN USER_TASK_INFO uti ON uti.userid=O.userid AND uti.roleid=ur.roleid"+ - " WHERE O.status='1' AND uti.induction_state='induction_state01' AND ur.roleid='800R00000041')"; - //虽然只能查出一条数据 - List> dataListAY = DataOperatorUtil.getDataBySql(Sqlca, sqlY, null); - - //新建对象 - BizObject overdueBizObject = overdueManager.newObject(); - String uuid = UUID.randomUUID().toString().replace("-", ""); - //判断条件 - if(dataListAN !=null){ - String useridAN = new String(); - for (Map map : dataListAN) { - String userid = map.get("userid"); - useridAN += userid+"@"; - } - String[] AN =null; - AN = useridAN.split("@"); - String ANN = AN[0]; - if(ANN==null || "".equals(ANN) || "null".equals(ANN)){ - String useridAY = new String(); - for (Map map : dataListAY) { - String userid = map.get("userid"); - useridAY += userid+"@"; - } - String[] AY =null; - AY = useridAY.split("@"); - String AYY = AY[0]; - - //新增 - overdueBizObject.setAttributeValue("id", uuid); - overdueBizObject.setAttributeValue("part_dept", AYY); - overdueBizObject.setAttributeValue("contract_id", contract_id); - overdueManager.saveObject(overdueBizObject); - - }else{ - - overdueBizObject.setAttributeValue("id", uuid); - overdueBizObject.setAttributeValue("part_dept", ANN); - overdueBizObject.setAttributeValue("contract_id", contract_id); - overdueManager.saveObject(overdueBizObject); - } - //System.out.println(ANN); - //新增 + if(overDay>=beginDay1 && overDay<=endDay1){ + String person = getAPerson(tx); + savePartDept(overdueManager, contract_id,person); + }else if(overDay>=beginDay2 && overDay<=endDay2){ + String person = getBPerson(tx); + savePartDept(overdueManager, contract_id ,person); + }else if(overDay>=beginDay3){ + String person = getCPerson(tx); + savePartDept(overdueManager, contract_id, person); - }else{ - String useridAY = new String(); - for (Map map : dataListAY) { - String userid = map.get("userid"); - useridAY += userid+"@"; - } - String[] AY =null; - AY = useridAY.split("@"); - String AYY = AY[0]; - - //新增 - overdueBizObject.setAttributeValue("id", uuid); - overdueBizObject.setAttributeValue("part_dept", AYY); - overdueBizObject.setAttributeValue("contract_id", contract_id); - overdueManager.saveObject(overdueBizObject); } } - } } } + + + + + /** + * 修改方法 + * @param overdueManager + * @param contract_id + * @param person + * @throws JBOException + */ + private void updatePartDept(BizObjectManager overdueManager, String contract_id, + String person) throws JBOException { + overdueManager.createQuery("UPDATE O SET O.part_dept='"+person+"' WHERE contract_id='"+contract_id+"'").executeUpdate(); + } + /** + * 保存方法 + * @param overdueManager + * @param contract_id + * @param overdueBizObject + * @param person + * @throws JBOException + */ + private void savePartDept(BizObjectManager overdueManager, String contract_id, String person) + throws JBOException { + BizObject overdueBizObject = overdueManager.newObject(); + String uuid = UUID.randomUUID().toString().replace("-", ""); + + overdueBizObject.setAttributeValue("id", uuid); + overdueBizObject.setAttributeValue("part_dept", person); + overdueBizObject.setAttributeValue("contract_id", contract_id); + overdueManager.saveObject(overdueBizObject); + } + + /** + * 获取催款员的天数配置 + * @param tx + * @return + * @throws JBOException + */ + public Map getDay(JBOTransaction tx) throws JBOException { + Map map = new HashMap(); + int beginDay1 = 0; + int endDay1 = 0; + int beginDay2 = 0; + int endDay2 = 0; + int beginDay3 = 0; + + // 获取天数 + @SuppressWarnings("unchecked") + List dayDistribute = JBOFactory.createBizObjectQuery(DAY_DISTRIBUTE.CLASS_NAME, "select * from O").getResultList(false); + for (BizObject bizObject : dayDistribute) { + String role = bizObject.getAttribute("role").toString(); + int beginDay = bizObject.getAttribute("begin_day").getInt(); + int endDay = bizObject.getAttribute("end_day") == null ? 0 : bizObject.getAttribute("end_day").getInt(); + if ("轻催组".equals(role)) { + beginDay1 = beginDay; + endDay1 = endDay; + } else if ("中催组".equals(role)) { + beginDay2 = beginDay; + endDay2 = endDay; + } else { + beginDay3 = beginDay; + } + } + map.put("beginDay1", beginDay1); + map.put("endDay1", endDay1); + map.put("beginDay2", beginDay2); + map.put("endDay2", endDay2); + map.put("beginDay3", beginDay3); + return map; + } + /** + * 获取催款员角色下的用户 + * @param tx + * @return + */ + public Map getUser(JBOTransaction tx){ + + Map usermap = new HashMap(); + try { + //轻催组下的用户 + String Sql1="SELECT ur.roleid,O.userid AS userid,O.loginid,O.username FROM USER_INFO O LEFT JOIN USER_ROLE AS ur ON ur.USERID = O.USERID LEFT JOIN USER_TASK_INFO uti ON uti.userid=O.userid AND uti.roleid=ur.roleid WHERE O.status='1' AND ur.roleid='800R00000041'"; + + List>dataListA = DataOperatorUtil.getDataBySql(tx, Sql1, null); + String userA = new String(); + for (Map map : dataListA) { + String userid = map.get("userid"); + userA += userid+"@"; + } + String[] A =null; + A = userA.split("@"); + usermap.put("A", A); + //中催组下的用户 + String Sql2="SELECT ur.roleid,O.userid AS userid,O.loginid,O.username FROM USER_INFO O LEFT JOIN USER_ROLE AS ur ON ur.USERID = O.USERID LEFT JOIN USER_TASK_INFO uti ON uti.userid=O.userid AND uti.roleid=ur.roleid WHERE O.status='1' AND ur.roleid='800R00000042'"; + List> dataListB = DataOperatorUtil.getDataBySql(tx, Sql2, null); + String userB = new String(); + for (Map map : dataListB) { + String userid = map.get("userid"); + userB += userid+"@"; + } + String[] B =null; + B = userB.split("@"); + usermap.put("B", B); + //重催组下的用户 + String Sql3="SELECT ur.roleid,O.userid,O.loginid,O.username FROM USER_INFO O LEFT JOIN USER_ROLE AS ur ON ur.USERID = O.USERID LEFT JOIN USER_TASK_INFO uti ON uti.userid=O.userid AND uti.roleid=ur.roleid WHERE O.status='1' AND ur.roleid='800R00000043'"; + List> dataListC = DataOperatorUtil.getDataBySql(tx, Sql3, null); + String userC = new String(); + for (Map map : dataListC) { + String userid = map.get("userid"); + userC += userid+"@"; + } + String[] C =null; + C = userC.split("@"); + usermap.put("C", C); + } catch (Exception e) { + e.printStackTrace(); + } + return usermap; + } + /** * 获取所有逾期的需要催收的合同信息 + * * @param tx * @return * @throws Exception */ - public String getContractId(JBOTransaction tx ) throws Exception{ - /*BizObjectManager bom=JBOFactory.getBizObjectManager(LB_CONTRACT_INFO.CLASS_NAME,tx); - List boList = bom.createQuery("SELECT O.id,vo.over_days FROM O LEFT JOIN jbo.com.tenwa.lease.comm.LB_UNION_LESSEE lul ON lul.contract_id = O.id LEFT JOIN jbo.sys.OVERDUE_DUNNING_INFO odi ON odi.contract_id = O.id LEFT JOIN jbo.sys.USER_INFO ui ON ui.userid = odi.part_dept LEFT JOIN jbo.app.tenwa.calc.VI_OVERDUE_RENT_PLAN_SUM vo ON vo.contract_id=O.id WHERE lul.is_main='Y' AND O.contract_status='31' AND vo.over_money>0").getResultList(true); - */ - //获取所有逾期的需要催收的合同信息 - BizObjectManager bom=JBOFactory.getBizObjectManager(VI_AUTODISTRIBUTE.CLASS_NAME,tx); + public String getContractId(JBOTransaction tx) throws Exception { + /* + * BizObjectManager + * bom=JBOFactory.getBizObjectManager(LB_CONTRACT_INFO.CLASS_NAME,tx); + * List boList = bom.createQuery( + * "SELECT O.id,vo.over_days FROM O LEFT JOIN jbo.com.tenwa.lease.comm.LB_UNION_LESSEE lul ON lul.contract_id = O.id LEFT JOIN jbo.sys.OVERDUE_DUNNING_INFO odi ON odi.contract_id = O.id LEFT JOIN jbo.sys.USER_INFO ui ON ui.userid = odi.part_dept LEFT JOIN jbo.app.tenwa.calc.VI_OVERDUE_RENT_PLAN_SUM vo ON vo.contract_id=O.id WHERE lul.is_main='Y' AND O.contract_status='31' AND vo.over_money>0" + * ).getResultList(true); + */ + // 获取所有逾期的需要催收的合同信息 + BizObjectManager bom = JBOFactory.getBizObjectManager(VI_AUTODISTRIBUTE.CLASS_NAME, tx); List boList = bom.createQuery("SELECT O.id,O.over_days FROM O ").getResultList(true); - + String conInfos = new String(); - for(BizObject bo : boList){ - conInfos += bo.getAttribute("id")+"@"; - conInfos += bo.getAttribute("over_days")+","; + for (BizObject bo : boList) { + conInfos += bo.getAttribute("id") + "@"; + conInfos += bo.getAttribute("over_days") + ","; } return conInfos; } - + /** + * 获取中催组的人员 + * @param tx + * @return + */ + public String getBPerson(JBOTransaction tx){ + String person = ""; + try { + //中催组下未分配且上岗的催款员 + String sqlN = "SELECT MAX(O.userid) AS userid" + +" FROM USER_INFO O LEFT JOIN USER_ROLE AS ur ON ur.USERID = O.USERID" + +" LEFT JOIN USER_TASK_INFO uti ON uti.userid=O.userid AND uti.roleid=ur.roleid" + + " WHERE O.status='1' AND uti.induction_state='induction_state01' AND ur.roleid='800R00000042'" + + " AND O.userid NOT IN " + + " (SELECT part_dept FROM OVERDUE_DUNNING_INFO)"; + //虽然只让查出一条数据 + List> dataListAN = DataOperatorUtil.getDataBySql(tx, sqlN, null); + //此时中催组的所有人员都已分配,选出目前任务最少的人,且上岗 + String sqlY = "SELECT MAX(o.part_dept) AS userid FROM " + + "(SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) o"+ + " LEFT JOIN USER_INFO ui ON ui.userid=o.part_dept"+ + " LEFT JOIN USER_ROLE AS ur ON ur.USERID = ui.USERID"+ + " LEFT JOIN USER_TASK_INFO uti ON uti.userid=ui.userid AND uti.roleid=ur.roleid"+ + " WHERE uti.roleid='800R00000042' AND "+ + " o.number IN (SELECT MIN(t.number) FROM"+ + " (SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) t"+ + " LEFT JOIN USER_INFO ui ON ui.userid=t.part_dept"+ + " LEFT JOIN USER_ROLE AS ur ON ur.USERID = ui.USERID"+ + " LEFT JOIN USER_TASK_INFO uti ON uti.userid=ui.userid AND uti.roleid=ur.roleid"+ + " WHERE uti.roleid='800R00000042' AND ui.status='1' AND uti.induction_state='induction_state01')"; + + //虽然只能查出一条数据 + List> dataListAY = DataOperatorUtil.getDataBySql(tx, sqlY, null); + + + if(dataListAN.size()>0){ + String useridAN = new String(); + for (Map map : dataListAN) { + String userid = map.get("userid"); + useridAN += userid+"@"; + } + String[] AN =null; + AN = useridAN.split("@"); + person = AN[0]; + + if(person==null || "".equals(person) || "null".equals(person)){ + String useridAY = new String(); + for (Map map : dataListAY) { + String userid = map.get("userid"); + useridAY += userid+"@"; + } + String[] AY =null; + AY = useridAY.split("@"); + person = AY[0]; + } + }else{ + String useridAY = new String(); + for (Map map : dataListAY) { + String userid = map.get("userid"); + useridAY += userid+"@"; + } + String[] AY =null; + AY = useridAY.split("@"); + person = AY[0]; + } + } catch (Exception e) { + e.printStackTrace(); + } + return person; + } + /** + * 获取重催组下的人员 + * @param tx + * @return + */ + public String getCPerson(JBOTransaction tx){ + + String person = ""; + try { + //重催组下未分配的用户,且上岗 + String sqlN = "SELECT MAX(O.userid) AS userid" + +" FROM USER_INFO O LEFT JOIN USER_ROLE AS ur ON ur.USERID = O.USERID" + +" LEFT JOIN USER_TASK_INFO uti ON uti.userid=O.userid AND uti.roleid=ur.roleid" + + " WHERE O.status='1' AND uti.induction_state='induction_state01' AND ur.roleid='800R00000043'" + + " AND O.userid NOT IN " + + " (SELECT part_dept FROM OVERDUE_DUNNING_INFO)"; + //虽然只让查出一条数据 + List> dataListAN = DataOperatorUtil.getDataBySql(tx, sqlN, null); + //此时重催组的所有人员都已分配,选出目前任务最少的人,且上岗 + String sqlY = "SELECT MAX(o.part_dept) AS userid FROM " + + "(SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) o"+ + " LEFT JOIN USER_INFO ui ON ui.userid=o.part_dept"+ + " LEFT JOIN USER_ROLE AS ur ON ur.USERID = ui.USERID"+ + " LEFT JOIN USER_TASK_INFO uti ON uti.userid=ui.userid AND uti.roleid=ur.roleid"+ + " WHERE uti.roleid='800R00000043' AND "+ + " o.number IN (SELECT MIN(t.number) FROM"+ + " (SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) t"+ + " LEFT JOIN USER_INFO ui ON ui.userid=t.part_dept"+ + " LEFT JOIN USER_ROLE AS ur ON ur.USERID = ui.USERID"+ + " LEFT JOIN USER_TASK_INFO uti ON uti.userid=ui.userid AND uti.roleid=ur.roleid"+ + " WHERE uti.roleid='800R00000043' AND ui.status='1' AND uti.induction_state='induction_state01')"; + + //虽然只能查出一条数据 + List> dataListAY = DataOperatorUtil.getDataBySql(tx, sqlY, null); + + + if(dataListAN.size()>0){ + String useridAN = new String(); + for (Map map : dataListAN) { + String userid = map.get("userid"); + useridAN += userid+"@"; + } + String[] AN =null; + AN = useridAN.split("@"); + person = AN[0]; + + if(person==null || "".equals(person) || "null".equals(person)){ + String useridAY = new String(); + for (Map map : dataListAY) { + String userid = map.get("userid"); + useridAY += userid+"@"; + } + String[] AY =null; + AY = useridAY.split("@"); + person = AY[0]; + } + }else{ + String useridAY = new String(); + for (Map map : dataListAY) { + String userid = map.get("userid"); + useridAY += userid+"@"; + } + String[] AY =null; + AY = useridAY.split("@"); + person = AY[0]; + } + } catch (Exception e) { + e.printStackTrace(); + } + return person; + } + /** + * 获取轻催组人员 + * @return + */ + public String getAPerson(JBOTransaction tx){ + String person = ""; + try { + //轻催组下未分配且上岗的催款员 + String sqlN = "SELECT MAX(O.userid) AS userid" + +" FROM USER_INFO O LEFT JOIN USER_ROLE AS ur ON ur.USERID = O.USERID" + +" LEFT JOIN USER_TASK_INFO uti ON uti.userid=O.userid AND uti.roleid=ur.roleid" + +" WHERE O.status='1' AND uti.induction_state='induction_state01' AND ur.roleid='800R00000041'" + +" AND O.userid NOT IN" + + " (SELECT part_dept FROM OVERDUE_DUNNING_INFO)"; + //虽然只让查出一条数据 + List> dataListAN = DataOperatorUtil.getDataBySql(tx, sqlN, null); + //此时轻催组的所有人员都已分配,选出目前任务最少的人,且上岗 + String sqlY = "SELECT MAX(o.part_dept) AS userid FROM " + + "(SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) o"+ + " LEFT JOIN USER_INFO ui ON ui.userid=o.part_dept"+ + " LEFT JOIN USER_ROLE AS ur ON ur.USERID = ui.USERID"+ + " LEFT JOIN USER_TASK_INFO uti ON uti.userid=ui.userid AND uti.roleid=ur.roleid"+ + " WHERE uti.roleid='800R00000041' AND "+ + " o.number IN (SELECT MIN(t.number) FROM"+ + " (SELECT COUNT(*) number,part_dept FROM OVERDUE_DUNNING_INFO GROUP BY part_dept) t"+ + " LEFT JOIN USER_INFO ui ON ui.userid=t.part_dept"+ + " LEFT JOIN USER_ROLE AS ur ON ur.USERID = ui.USERID"+ + " LEFT JOIN USER_TASK_INFO uti ON uti.userid=ui.userid AND uti.roleid=ur.roleid"+ + " WHERE uti.roleid='800R00000041' AND ui.status='1' AND uti.induction_state='induction_state01')"; + + //虽然只能查出一条数据 + List> dataListAY = DataOperatorUtil.getDataBySql(tx, sqlY, null);; + + if(dataListAN.size()>0){ + String useridAN = new String(); + for (Map map : dataListAN) { + String userid = map.get("userid"); + useridAN += userid+"@"; + } + String[] AN =null; + AN = useridAN.split("@"); + person = AN[0]; + if(person==null || "".equals(person) || "null".equals(person)){ + String useridAY = new String(); + for (Map map : dataListAY) { + String userid = map.get("userid"); + useridAY += userid+"@"; + } + String[] AY =null; + AY = useridAY.split("@"); + person = AY[0]; + } + }else{ + String useridAY = new String(); + for (Map map : dataListAY) { + String userid = map.get("userid"); + useridAY += userid+"@"; + } + String[] AY =null; + AY = useridAY.split("@"); + person = AY[0]; + } + } catch (Exception e) { + e.printStackTrace(); + } + + return person; + } }