yangys
2025-08-14 33e6270d2d3a40591e58d45fd8435d2f3eaf66b2
blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/service/QinzheSyncService.java
@@ -2,9 +2,12 @@
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;
@@ -34,6 +37,10 @@
   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";
@@ -50,33 +57,36 @@
      log.info("qingzhe:{}",qinzheData);
      */
      cleanLocalTable();
      saveQinzheFgbToLocalTable();
      updateProduceDivision();
      cleanQinzheDataInDivision();
      saveQinzheFgb();
   }
   /**
    * //qingzhe  - mdm
    *    主管工艺 - 专业组长
    *    编制,校对,高师(目前高师总共6个人)也都没有.目前只匹配专业组长即可,编制校对在mdm中维护
    * 更新mdm主制分工表数据,
    * 图号是否存在于MDM分工表
    * @param drawingNo
    * @return 存在与否
    */
   void updateProduceDivision(){
      mdmJdbcTemplate.update("delete from mdm_produce_division where create_user=-1 and update_user=-1");
   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分工表内所有从勤哲导入的数据
    * 清除mdm分工表内从勤哲导入的、且未经过修改的数据
    */
   void cleanQinzheDataInDivision(){
      //update_user =-1 此标志为勤哲同步数据且未修改过。
      mdmJdbcTemplate.update("delete from mdm_produce_division where create_user=-1 and update_user=-1");
   }
   /**
    * 将勤哲系统的数据先一次性导入mdm系统数据库临时表
    */
   public void saveQinzheFgbToLocalTable(){
   public void saveQinzheFgb(){
      List<QinzheZzFgb> fgbList = this.qinzheJdbcTemplate.query(this.getQuerySql(),new RowMapper<QinzheZzFgb>(){
         @Override
@@ -97,14 +107,57 @@
      });
      insertToLocalTable(fgbList);
      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());
   /*
         ProduceDivision pd = new ProduceDivision();
         pd.setDrawingNo(fgb.getLjh());
         pd.setTeamLeaderId(zuzhangId);
         pd.setUpdateUser(-1L);
         pd.setCreateUser(-1L);
   */
         //Long id = ;
         mdmJdbcTemplate.update(sql, new Object[]{idGen.nextId(),fgb.getLjh(),zuzhangId});
         //produceDivisionService.save(pd);
      }
   }
   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);
      }
   }
   /**
    * 清除本地临时表数据
    */
   private void cleanLocalTable(){
      this.mdmJdbcTemplate.update("delete from mdm_qinzhe_fgb");
   }
   /**