package grand; import foundation.action.ActionProvider; import foundation.data.entity.Entity; import foundation.data.entity.EntitySet; import foundation.data.object.DataObject; import foundation.data.object.EntitySaver; import foundation.icall.ICall; import foundation.icall.ICallCenter; import foundation.persist.NamedSQL; import foundation.persist.SQLRunner; public class HospitalHandler extends ActionProvider { private DataObject hospiatlObject; public HospitalHandler() { hospiatlObject = DataObject.getInstance("md_hospital"); } @Override protected void publishMethod() { //1. 同步医院 addMethod("syncHospital"); //2.同步DMS医院 addMethod("syncDmsHospital"); //3. 辖区医院更新渠道关系 addMethod("updateChannelStructure"); } public void syncHospital() throws Exception { ICallCenter iCallCenter = ICallCenter.getInstance(); //1.1 获取OA-医院 logger.debug("1.1 获取OA-医院---------->>"); ICall iCall = ICall.getInstance("oa_v_dms_hospital"); iCallCenter.callRemote(context, iCall); //2.1 同步DMS医院 logger.debug("2.1 同步DMS医院---------->>"); syncDmsHospital(); logger.debug("医院同步完成"); } public void syncDmsHospital() throws Exception { //1. 拿到需要更新的OA医院 NamedSQL namedSQL = NamedSQL.getInstance("getUpdateHospital"); EntitySet entitySet = SQLRunner.getEntitySet(namedSQL); //2. 遍历OA医院,更新医院(包含血缘关系表) for (Entity entity: entitySet) { String hospitalId = entity.getId(); EntitySaver saver = hospiatlObject.createEntitySaver(hospitalId); saver.set("code", entity.getString("YYBM")); saver.set("name", entity.getString("YYMC")); saver.set("province", entity.getString("SF")); saver.set("city", entity.getString("DQ")); saver.set("county", entity.getString("XS")); saver.set("address", entity.getString("DD")); saver.update(); } //3.插入新增医院 namedSQL = NamedSQL.getInstance("getAppendHospital"); entitySet = SQLRunner.getEntitySet(namedSQL); hospiatlObject.batchInsertEntitySet(entitySet); } public void updateChannelStructure() throws Exception { NamedSQL namedSQL = NamedSQL.getInstance("updateChannelStructurePosition"); namedSQL.execute(); } }