| | |
| | | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.qinzhesync.entity.ProduceDivision; |
| | | import org.springblade.qinzhesync.utils.SnowflakeIdGenerator; |
| | | import org.springblade.system.feign.ISysClient; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Qualifier; |
| | | import org.springframework.cloud.commons.util.IdUtils; |
| | | import org.springframework.dao.DataAccessException; |
| | | import org.springframework.jdbc.core.BatchPreparedStatementSetter; |
| | | import org.springframework.jdbc.core.JdbcTemplate; |
| | | import org.springframework.jdbc.core.ResultSetExtractor; |
| | | import org.springframework.jdbc.core.RowMapper; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.sql.PreparedStatement; |
| | | import java.sql.ResultSet; |
| | | import java.sql.SQLException; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 勤哲主制分工表数据同步的服务 |
| | |
| | | /** |
| | | * 批量插入数据数量 |
| | | */ |
| | | static final int BATCH_SIZE = 4;//5000; |
| | | static final int BATCH_SIZE = 2000;//5000; |
| | | |
| | | @Transactional |
| | | public void syncData(){ |
| | |
| | | saveQinzheFgb(); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 图号是否存在于MDM分工表 |
| | | * @param drawingNo |
| | | * @return 存在与否 |
| | | */ |
| | | public boolean drawingNoExists(String drawingNo){ |
| | | Long cnt = mdmJdbcTemplate.queryForObject("select count(*) from mdm_produce_division where drawing_no=?",Long.class,drawingNo); |
| | | return cnt > 0; |
| | | } |
| | | /** |
| | | * 清除mdm分工表内从勤哲导入的、且未经过修改的数据 |
| | | */ |
| | | void cleanQinzheDataInDivision(){ |
| | | //update_user =-1 此标志为勤哲同步数据且未修改过。 |
| | | mdmJdbcTemplate.update("delete from mdm_produce_division where create_user=-1 and update_user=-1"); |
| | | } |
| | | /** |
| | | * 将勤哲系统的数据先一次性导入mdm系统数据库临时表 |
| | | */ |
| | |
| | | |
| | | //updateProduceDivision(fgbList); |
| | | } |
| | | /** |
| | | * //qingzhe - mdm |
| | | * 主管工艺 - 专业组长 |
| | | * 编制,校对,高师(目前高师总共6个人)也都没有.目前只匹配专业组长即可,编制校对在mdm中维护 |
| | | * 更新mdm主制分工表数据, |
| | | */ |
| | | void updateProduceDivision(List<QinzheZzFgb> fgbList){ |
| | | String sql = "insert into mdm_produce_division (id,drawing_no,team_leader_id,create_user,update_user,create_time,update_time,status,is_deleted) values (?,?,?,-1,-1,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,1,0)"; |
| | | String ljh,zggy; |
| | | for(QinzheZzFgb fgb : fgbList){ |
| | | if(drawingNoExists(fgb.getLjh())){ |
| | | //图号已存在,说明mdm系统中已经录入过了 |
| | | continue; |
| | | } |
| | | |
| | | Long zuzhangId = getUserIdByName(fgb.getZggy()); |
| | | |
| | | mdmJdbcTemplate.update(sql, new Object[]{idGen.nextId(),fgb.getLjh(),zuzhangId}); |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | void insertProduceDivision(String drawingNo,Long zuzhangId){ |
| | | String sql = "insert into mdm_produce_division () values "; |
| | | } |
| | | |
| | | Long getUserIdByName(String zuzhangName){ |
| | | String sql = "select id from blade_user where name=? and is_deleted=0 order by update_time limit 1"; |
| | | List<Long> idList = this.mdmJdbcTemplate.queryForList(sql,Long.class,zuzhangName); |
| | | if(idList.isEmpty()){ |
| | | return null; |
| | | }else{ |
| | | return idList.get(0); |
| | | } |
| | | } |
| | | /** |
| | | * 清除本地临时表数据 |
| | | */ |
| | |
| | | * @param fgbList |
| | | */ |
| | | private void insertToLocalTable(List<QinzheZzFgb> fgbList) { |
| | | String insSql = "insert into mdm_qinzhe_fgb (cph,ljh,ljmc,zz,zzgd,zggy,fg,cjjhy,jhy,update_time) values (?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP)"; |
| | | String insSql = "insert into mdm_qinzhe_fgb (cph,ljh,ljmc,zz,zzgd,zggy,fg,cjjhy,jhy,source,update_time) values (?,?,?,?,?,?,?,?,?,'QZ',CURRENT_TIMESTAMP)"; |
| | | |
| | | QinzheZzFgb fgb; |
| | | List<Object[]> args = new ArrayList<>(); |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 根据配置获取勤哲查询sql(参数管理里可配置) |
| | | * @return |
| | | */ |
| | | String getQuerySql(){ |
| | | String querySql = DEFAULT_QUERY_SQL; |
| | | R<String> sqlResult = sysClient.getParamValue(QINZHE_QUERY_KEY); |