yangys
2025-09-18 a3048fa6fa72fa3cc5da2c43c59bd000e00c9599
blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/service/QinzheSyncService.java
@@ -2,22 +2,19 @@
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.api.R;
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.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;
/**
 * 勤哲主制分工表数据同步的服务
@@ -34,14 +31,19 @@
   private JdbcTemplate qinzheJdbcTemplate;
   @Autowired
   private ISysClient sysClient;
   @Autowired
   private SnowflakeIdGenerator idGen;
   private static final String DEFAULT_QUERY_SQL = "select 产品号 cph,零件号 ljh,零件名称 ljmc,主制 zz,主制工段 zzgd,主管工艺 zggy,副管 fg,车间计划员 cjjhy,计划员 jhy from v_张立虎_2厂主制分工表";
   private static final String QINZHE_QUERY_KEY = "QINZHE_QUERY";
   /**
    * 批量插入数据数量
    */
   static final int BATCH_SIZE = 4;//5000;
   static final int BATCH_SIZE = 2000;//5000;
   @Transactional
   public void syncData(){
      /*
      Map mmdData = mdmJdbcTemplate.queryForMap("select count(*) n from mdm_machine");
@@ -50,33 +52,14 @@
      log.info("qingzhe:{}",qinzheData);
      */
      cleanLocalTable();
      saveQinzheFgbToLocalTable();
      updateProduceDivision();
      //cleanQinzheDataInDivision();
      saveQinzheFgb();
   }
   /**
    * //qingzhe  - mdm
    *    主管工艺 - 专业组长
    *    编制,校对,高师(目前高师总共6个人)也都没有.目前只匹配专业组长即可,编制校对在mdm中维护
    * 更新mdm主制分工表数据,
    */
   void updateProduceDivision(){
      mdmJdbcTemplate.update("delete from mdm_produce_division where create_user=-1 and update_user=-1");
   }
   /**
    * 清除mdm分工表内所有从勤哲导入的数据
    */
   void cleanQinzheDataInDivision(){
   }
   /**
    * 将勤哲系统的数据先一次性导入mdm系统数据库临时表
    */
   public void saveQinzheFgbToLocalTable(){
   public void saveQinzheFgb(){
      List<QinzheZzFgb> fgbList = this.qinzheJdbcTemplate.query(this.getQuerySql(),new RowMapper<QinzheZzFgb>(){
         @Override
@@ -97,6 +80,8 @@
      });
      insertToLocalTable(fgbList);
      //updateProduceDivision(fgbList);
   }
   /**
@@ -104,7 +89,6 @@
    */
   private void cleanLocalTable(){
      this.mdmJdbcTemplate.update("delete from mdm_qinzhe_fgb");
   }
   /**
@@ -112,7 +96,7 @@
    * @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<>();
@@ -132,6 +116,10 @@
      }
   }
   /**
    * 根据配置获取勤哲查询sql(参数管理里可配置)
    * @return
    */
   String getQuerySql(){
      String querySql = DEFAULT_QUERY_SQL;
      R<String> sqlResult = sysClient.getParamValue(QINZHE_QUERY_KEY);