package com.vci.server.bof.server.create; import javax.xml.rpc.holders.LongHolder; import com.vci.corba.common.data.VCIInvocationInfo; import com.vci.corba.omd.data.BusinessObject; import com.vci.corba.omd.data.LinkObject; import com.vci.server.base.persistence.dao.HibernateSessionFactory; import com.vci.server.bof.server.ServiceFacadeExecuteHelper; import com.vci.server.bof.service.BOFactoryServices; import com.vci.server.bof.service.LOFactoryService; public class BatchCreateDeleteBOLO extends ServiceFacadeExecuteHelper { private static ServiceFacadeExecuteHelper instance = null; public static ServiceFacadeExecuteHelper getInstance() { if(instance == null) { instance = new BatchCreateDeleteBOLO(); } return instance; } @Override protected Object doAction() throws Throwable { BusinessObject[] deleteBOs = params.getDeleteBos(); BusinessObject[] createBOs = params.getCreateBos(); LinkObject[] deleteLOs = params.getDeleteLos(); LinkObject[] createLOs = params.getCreateLos(); boolean rs = false; VCIInvocationInfo info = HibernateSessionFactory.getVciSessionInfo(); String ip = "127.0.0.1"; if(info!=null){ ip = info.clientIPInfo == null||"".equals(info.clientIPInfo) ?"127.0.0.1":info.clientIPInfo; } if(deleteLOs != null && deleteLOs.length > 0) { LOFactoryService services = LOFactoryService.getInstance(); rs = services.batchDeleteLinkObject(deleteLOs); if (!rs) { return rs; } } if(deleteBOs != null && deleteBOs.length > 0) { BOFactoryServices services = BOFactoryServices.getInstance(); rs = services.batchDeleteBusinessObject(deleteBOs, 1); if (!rs) { batchFailRecordLog(deleteBOs, ip, "删除"); return rs; } batchRecordLog(deleteBOs, ip, "删除"); } if((createBOs != null && createBOs.length > 0) || (createLOs != null && createLOs.length > 0)) { LongHolder ts = new LongHolder(); BOFactoryServices services = BOFactoryServices.getInstance(); rs = services.batchCreateBusinessObjectWithLink(createBOs, createLOs, ts); if (!rs) { batchFailRecordLog(createBOs, ip, "增加"); return rs; } batchRecordLog(createBOs, ip, "增加"); } return rs; } }