apzl_leasing/src_tenwa/quartz/AutoDistribute.java
2018-10-12 11:40:38 +08:00

352 lines
16 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package quartz;
import java.util.Arrays;
import java.util.HashMap;
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.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;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.BizObjectManager;
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{
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();
try {
JBOTransaction tx = JBOFactory.createJBOTransaction();
ownershipTransferSign(tx,arg0);
tx.commit();
QuartzUtil.insertLog(startime, "quartz.ContractInfoForNomalSettle", "success", "<EFBFBD>ɹ<EFBFBD>", curUserId);
} catch (Exception e) {
QuartzUtil.insertLog(startime, "quartz.ContractInfoForNomalSettle", "error", "ʧ<EFBFBD><EFBFBD>", curUserId);
e.printStackTrace();
}
}
@SuppressWarnings("unused")
public void ownershipTransferSign(JBOTransaction tx ,JobExecutionContext arg0) throws Exception{
Transaction Sqlca = null;
Sqlca = Transaction.createTransaction(tx);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5>û<EFBFBD>
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<Map<String, String>> dataListA = DataOperatorUtil.getDataBySql(Sqlca, Sql1, null);
String userA = new String();
for (Map<String, String> map : dataListA) {
String userid = map.get("userid");
userA += userid+"@";
}
String[] A =null;
A = userA.split("@");
//<2F>д<EFBFBD><D0B4><EFBFBD><EFBFBD>µ<EFBFBD><C2B5>û<EFBFBD>
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<Map<String, String>> dataListB = DataOperatorUtil.getDataBySql(Sqlca, Sql2, null);
String userB = new String();
for (Map<String, String> map : dataListB) {
String userid = map.get("userid");
userB += userid+"@";
}
String[] B =null;
B = userB.split("@");
//<2F>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>µ<EFBFBD><C2B5>û<EFBFBD>
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<Map<String, String>> dataListC = DataOperatorUtil.getDataBySql(Sqlca, Sql3, null);
String userC = new String();
for (Map<String, String> map : dataListC) {
String userid = map.get("userid");
userC += userid+"@";
}
String[] C =null;
C = userC.split("@");
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>յĺ<D5B5>ͬ<EFBFBD><CDAC>Ϣ
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];
int overDay = Integer.valueOf(overDays);
BizObject overdue = overdueManager.createQuery("contract_id=:contract_id").setParameter("contract_id", contract_id).getSingleResult(false);
if(overdue!=null){//<2F>޸<EFBFBD>
//<2F>߿<EFBFBD>Ա
String partDept = overdue.getAttribute("part_dept").toString();
if(overDay>3 && overDay<=15){
if(Arrays.asList(B).contains(partDept)){
//<2F>˴߿<CBB4>Ա<EFBFBD><D4B1><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κβ<CEBA><CEB2><EFBFBD>
}else{
//<2F>˴߿<CBB4>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>Ϊ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա
//<2F>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸڵĴ߿<C4B4>Ա
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) )";
//<2F><>Ȼֻ<C8BB>ò<EFBFBD><C3B2><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
List<Map<String, String>> dataListAN = DataOperatorUtil.getDataBySql(Sqlca, sqlN, null);
//<2F><>ʱ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ѷ<EFBFBD><D1B7>ѡ<E4A3AC><D1A1>Ŀǰ<C4BF><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٵ<EFBFBD><D9B5>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>ϸ<EFBFBD>
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')";
//<2F><>Ȼֻ<C8BB>ܲ<EFBFBD><DCB2><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
List<Map<String, String>> dataListAY = DataOperatorUtil.getDataBySql(Sqlca, sqlY, null);
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>
if(dataListAN !=null){
String useridAN = new String();
for (Map<String, String> 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<String, String> map : dataListAY) {
String userid = map.get("userid");
useridAY += userid+"@";
}
String[] AY =null;
AY = useridAY.split("@");
String AYY = AY[0];
//<2F>޸<EFBFBD>
overdueManager.createQuery("UPDATE O SET O.part_dept='"+AYY+"' WHERE contract_id='"+contract_id+"'").executeUpdate();
}else{
//<2F>޸<EFBFBD>
overdueManager.createQuery("UPDATE O SET O.part_dept='"+ANN+"' WHERE contract_id='"+contract_id+"'").executeUpdate();
}
}else{
String useridAY = new String();
for (Map<String, String> map : dataListAY) {
String userid = map.get("userid");
useridAY += userid+"@";
}
String[] AY =null;
AY = useridAY.split("@");
String AYY = AY[0];
//<2F>޸<EFBFBD>
overdueManager.createQuery("UPDATE O SET O.part_dept='"+AYY+"' WHERE contract_id='"+contract_id+"'").executeUpdate();
}
}
}else{
if(Arrays.asList(C).contains(partDept)){
//<2F>˴߿<CBB4>Ա<EFBFBD><D4B1><EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κβ<CEBA><CEB2><EFBFBD>
}else{
//<2F>˴߿<CBB4>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>Ϊ<EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա
//<2F>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD>
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) )";
//<2F><>Ȼֻ<C8BB>ò<EFBFBD><C3B2><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
List<Map<String, String>> dataListAN = DataOperatorUtil.getDataBySql(Sqlca, sqlN, null);
//<2F><>ʱ<EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ѷ<EFBFBD><D1B7>ѡ<E4A3AC><D1A1>Ŀǰ<C4BF><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٵ<EFBFBD><D9B5>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>ϸ<EFBFBD>
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')";
//<2F><>Ȼֻ<C8BB>ܲ<EFBFBD><DCB2><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
List<Map<String, String>> dataListAY = DataOperatorUtil.getDataBySql(Sqlca, sqlY, null);
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>
if(dataListAN !=null){
String useridAN = new String();
for (Map<String, String> 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<String, String> map : dataListAY) {
String userid = map.get("userid");
useridAY += userid+"@";
}
String[] AY =null;
AY = useridAY.split("@");
String AYY = AY[0];
//<2F>޸<EFBFBD>
overdueManager.createQuery("UPDATE O SET O.part_dept='"+AYY+"' WHERE contract_id='"+contract_id+"'").executeUpdate();
}else{
//<2F>޸<EFBFBD>
overdueManager.createQuery("UPDATE O SET O.part_dept='"+ANN+"' WHERE contract_id='"+contract_id+"'").executeUpdate();
}
}else{
String useridAY = new String();
for (Map<String, String> map : dataListAY) {
String userid = map.get("userid");
useridAY += userid+"@";
}
String[] AY =null;
AY = useridAY.split("@");
String AYY = AY[0];
//<2F>޸<EFBFBD>
overdueManager.createQuery("UPDATE O SET O.part_dept='"+AYY+"' WHERE contract_id='"+contract_id+"'").executeUpdate();
}
}
}
}else{//<2F><><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>ϸ<EFBFBD>
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) )";
//<2F><>Ȼֻ<C8BB>ò<EFBFBD><C3B2><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
List<Map<String, String>> dataListAN = DataOperatorUtil.getDataBySql(Sqlca, sqlN, null);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѷ<EFBFBD><D1B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>ϸ<EFBFBD>
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')";
//<2F><>Ȼֻ<C8BB>ܲ<EFBFBD><DCB2><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
List<Map<String, String>> dataListAY = DataOperatorUtil.getDataBySql(Sqlca, sqlY, null);
//<2F>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>
BizObject overdueBizObject = overdueManager.newObject();
String uuid = UUID.randomUUID().toString().replace("-", "");
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>
if(dataListAN !=null){
String useridAN = new String();
for (Map<String, String> 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<String, String> map : dataListAY) {
String userid = map.get("userid");
useridAY += userid+"@";
}
String[] AY =null;
AY = useridAY.split("@");
String AYY = AY[0];
//<2F><><EFBFBD><EFBFBD>
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);
//<2F><><EFBFBD><EFBFBD>
}else{
String useridAY = new String();
for (Map<String, String> map : dataListAY) {
String userid = map.get("userid");
useridAY += userid+"@";
}
String[] AY =null;
AY = useridAY.split("@");
String AYY = AY[0];
//<2F><><EFBFBD><EFBFBD>
overdueBizObject.setAttributeValue("id", uuid);
overdueBizObject.setAttributeValue("part_dept", AYY);
overdueBizObject.setAttributeValue("contract_id", contract_id);
overdueManager.saveObject(overdueBizObject);
}
}
}
}
}
/**
* <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>յĺ<D5B5>ͬ<EFBFBD><CDAC>Ϣ
* @param tx
* @return
* @throws Exception
*/
public String getContractId(JBOTransaction tx ) throws Exception{
/*BizObjectManager bom=JBOFactory.getBizObjectManager(LB_CONTRACT_INFO.CLASS_NAME,tx);
List<BizObject> 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);
*/
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>յĺ<D5B5>ͬ<EFBFBD><CDAC>Ϣ
BizObjectManager bom=JBOFactory.getBizObjectManager(VI_AUTODISTRIBUTE.CLASS_NAME,tx);
List<BizObject> 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")+",";
}
return conInfos;
}
}