package com.dashitech.migration.task.uc; import com.dashitech.migration.BaseTask; import com.dashitech.migration.SqlTask; import com.dashitech.migration.core.DataMigrationter; import com.dashitech.migration.core.FieldMapper; import com.dashitech.migration.util.JdbcUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; /** * Created by CX on 2024/10/10. */ @Component public class GroupTask extends BaseTask { public static Log log = LogFactory.getLog(GroupTask.class); @Autowired SqlTask hospitalTask; @Override @Transactional public void start() { log.info(" *** 工作组group转换开始 *** "); StringBuffer sb = new StringBuffer(); sb.append(" select * from itsm_uc_groups "); List list = jdbcTemplateMdv2.queryForList(sb.toString()); //测试 FieldMapper mapper = new FieldMapper(); mapper.addOperationRemove("id").addOperationRemove("duty_id"); mapper.addOperationUpdate("_hospital_id", "branch_id"); mapper.addOperationAdd("type", 3); Map hosIdCache = hospitalTask.loadCache().getIdCache(); mapper.addOperationReplace("branch_id", hosIdCache); mapper.trans2JdbcRow(list); JdbcUtil jdbcUtil = new JdbcUtil(jdbcTemplateHsms); jdbcUtil.batchPageInsert("itsm_uc_groups", mapper.getRows()); //clear释放内存 mapper.clear(); } @Override public FieldMapper loadCache() { log.info(" *** 加载工作组group缓存 *** "); String sql = " select id,groupname,delete_flag from itsm_uc_groups "; List> list = jdbcTemplateHsms.queryForList(sql); sql = " select id,groupname,delete_flag from itsm_uc_groups "; List> list2 = jdbcTemplateMdv2.queryForList(sql); FieldMapper mapper = new FieldMapper(); mapper.addFieldMapper("groupname", "groupname"); mapper.addFieldMapper("delete_flag", "delete_flag"); DataMigrationter.loadCache(list, list2, mapper); return mapper; } }