From cef990730c07e7fcdbe015bdfb0f0e27f7e06e27 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期五, 01 八月 2025 16:52:56 +0800
Subject: [PATCH] 机床管理bug修复;勤哲对接完善

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/ProgramUploadVO.java                                 |   19 ++
 blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/utils/SnowflakeIdGenerator.java                |   45 ++++++
 blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/config/JdbcTemplateConfig.java                 |    4 
 doc/sql/mdm/mdm.mysql.all.create.sql                                                                                   |   16 +-
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/ProduceDivisionMapper.xml |    8 
 blade-service/blade-qinzhesync/pom.xml                                                                                 |   42 +++--
 blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/config/DataSourceConfig.java                   |    7 
 blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/controller/SyncController.java                 |   11 +
 blade-service/blade-qinzhesync/src/main/resources/application-dev.yml                                                  |   22 +++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java                        |    4 
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineQueryVO.java                   |    2 
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowProgramController.java                   |   79 +++++++++++
 blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/entity/ProduceDivision.java                    |   36 +++++
 blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/service/QinzheSyncService.java                 |   83 +++++++++--
 blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/QinzheSyncApplication.java                     |    2 
 blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/config/SnowConfig.java                         |   23 +++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/mapper/MachineMapper.xml                 |    1 
 17 files changed, 352 insertions(+), 52 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/mapper/MachineMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/mapper/MachineMapper.xml
index dcc1f4f..e72030a 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/mapper/MachineMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/mapper/MachineMapper.xml
@@ -24,6 +24,7 @@
         <if test="query.keyword!=null and query.keyword!=''">
             and (m.code like CONCAT('%', #{query.keyword,jdbcType=VARCHAR},'%') or m.name like CONCAT('%', #{query.keyword,jdbcType=VARCHAR},'%'))
         </if>
+        order by m.update_time desc,m.code asc
     </select>
 
 
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineQueryVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineQueryVO.java
index 08979db..b07b9ac 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineQueryVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineQueryVO.java
@@ -16,6 +16,6 @@
 	@Schema(description = "鍚嶇О鎴栫紪鐮�")
 	private String keyword;
 	@Schema(description = "鏈哄簥缁刢ode")
-	private Long machineGroupCode;
+	private String machineGroupCode;
 
 }
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/ProduceDivisionMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/ProduceDivisionMapper.xml
index becc1cd..e77bbd9 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/ProduceDivisionMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/ProduceDivisionMapper.xml
@@ -15,10 +15,10 @@
     </resultMap>-->
     <select id="pageQuery" resultType="org.springblade.mdm.basesetting.producedivision.vo.ProduceDivisionViewVO">
         select p.id,p.drawing_no,p.team_leader_id,p.programmer_id,p.checker_id,p.senior_id,l.name team_leader_name,pro.name  programmer_name,c.name checker_name,s.name seniorName
-        from mdm_produce_division p join blade_user l on p.team_leader_id=l.id and l.is_deleted=0
-                                join blade_user pro on p.programmer_id=pro.id and pro.is_deleted=0
-                                join blade_user c on p.checker_id=c.id and c.is_deleted=0
-                                join blade_user s on p.senior_id=s.id and c.is_deleted=0
+        from mdm_produce_division p left join blade_user l on p.team_leader_id=l.id and l.is_deleted=0
+                            left join blade_user pro on p.programmer_id=pro.id and pro.is_deleted=0
+        left join blade_user c on p.checker_id=c.id and c.is_deleted=0
+        left join blade_user s on p.senior_id=s.id and c.is_deleted=0
                                                          where p.is_deleted=0
         <if test="name != null and name != ''">
             AND (l.account like concat('%',#{name,jdbcType=VARCHAR},'%') or l.name like
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowProgramController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowProgramController.java
new file mode 100644
index 0000000..7532e33
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowProgramController.java
@@ -0,0 +1,79 @@
+
+package org.springblade.mdm.flow.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.mdm.flow.service.ApproveRecordService;
+import org.springblade.mdm.flow.vo.ApproveRecordVO;
+import org.springblade.mdm.flow.vo.ProgramUploadVO;
+import org.springblade.mdm.flow.vo.TaskTraceVO;
+import org.springblade.mdm.program.service.NcProgramService;
+import org.springblade.mdm.program.service.ProcessProgRefService;
+import org.springblade.mdm.program.vo.NcNodeProgramQueryVO;
+import org.springblade.mdm.program.vo.NcProgramUploadVO;
+import org.springblade.mdm.program.vo.NcProgramVO;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 绋嬪簭鑺傜偣
+ *
+ * @author yangys
+ */
+@NonDS
+@RestController
+@RequestMapping("/flow/mgr")
+@AllArgsConstructor
+@Tag(name = "娴佺▼绠$悊", description = "娴佺▼绠$悊")
+@Slf4j
+public class FlowProgramController {
+
+	private final NcProgramService ncProgramService;
+	private final ProcessProgRefService ncProcessProgRefService;
+
+	private final ApproveRecordService approveRecordService;
+
+	@PostMapping("/ncupload")
+	@Operation(summary = "涓婁紶绋嬪簭鏂囦欢", description = "涓婁紶绋嬪簭鏂囦欢")
+	public R<Boolean> upload(ProgramUploadVO uploadVO) {
+		try {
+
+		}catch(Exception e) {
+			log.error("绋嬪簭涓婁紶鎵ц閿欒",e);
+			return R.fail("涓婁紶澶辫触:" + e.getMessage());
+		}
+		return R.success();
+	}
+
+	@PostMapping("/remove")
+	@Operation(summary = "鍒犻櫎涓存椂绋嬪簭鏂囦欢", description = "")
+	public R<Boolean> removeFile(Long id) {
+		try {
+
+		}catch(Exception e) {
+			log.error("鍒犻櫎鏂囦欢澶辫触",e);
+			return R.fail(e.getMessage());
+		}
+		return R.success();
+	}
+
+	@GetMapping("/content")
+	@Operation(summary = "鑾峰彇鏂囦欢鍐呭", description = "浠呴檺鏂囨湰鏍煎紡鐨勫唴瀹癸紝浜岃繘鍒舵枃浠跺皢杩斿洖绌轰覆")
+	public R<String> fileContent(@Parameter(description = "绋嬪簭鏂囦欢id") Long id) {
+		try {
+			return R.data(ncProgramService.getFileContent(id));
+		}catch(Exception e) {
+			log.error("鍒犻櫎鏂囦欢澶辫触",e);
+			return R.fail(e.getMessage());
+		}
+	}
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java
index a2291e7..dc80708 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java
@@ -277,7 +277,7 @@
 
 		//List<Task> tasks = taskQuery.list();
 		long total = taskQuery.count();
-		Long firstResult = (currentPage-1)*pageSize+1;
+		Long firstResult = (currentPage-1)*pageSize;
 		List<Task> tasks = taskQuery.listPage(Func.toInt(firstResult), Func.toInt(pageSize));
 		tasks.forEach(task -> {
 			FlowVO flow = new FlowVO();
@@ -499,7 +499,7 @@
 		query.orderByProcessInstanceEndTime().desc(); // 鎸夌粨鏉熸椂闂撮檷搴忔帓鍒�
 		page.setTotal(query.count());
 
-		long firstResult = (page.getCurrent()-1) * page.getSize() + 1;
+		long firstResult = (page.getCurrent()-1) * page.getSize();
 		List<HistoricProcessInstance> processes = query
 			.listPage((int)firstResult, (int)page.getSize());
 
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/ProgramUploadVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/ProgramUploadVO.java
new file mode 100644
index 0000000..36015db
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/ProgramUploadVO.java
@@ -0,0 +1,19 @@
+package org.springblade.mdm.flow.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 娴佺▼涓璑C绋嬪簭涓婁紶VO
+ */
+@Setter
+@Getter
+public class ProgramUploadVO {
+	@Schema(description = "娴佺▼瀹炰緥id")
+	private String processInstanceId;
+	@Schema(description = "鏂囦欢闆嗗悎")
+	private MultipartFile[] files;
+
+}
diff --git a/blade-service/blade-qinzhesync/pom.xml b/blade-service/blade-qinzhesync/pom.xml
index 1361024..f5a4bed 100644
--- a/blade-service/blade-qinzhesync/pom.xml
+++ b/blade-service/blade-qinzhesync/pom.xml
@@ -18,12 +18,7 @@
         <dependency>
             <groupId>org.springblade</groupId>
             <artifactId>blade-core-boot</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.springblade</groupId>
-                    <artifactId>blade-starter-mybatis</artifactId>
-                </exclusion>
-            </exclusions>
+
         </dependency>
 
         <dependency>
@@ -34,17 +29,6 @@
         <dependency>
             <groupId>org.springblade</groupId>
             <artifactId>blade-system-api</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.springblade</groupId>
-                    <artifactId>blade-starter-tenant</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.springblade</groupId>
-                    <artifactId>blade-starter-mybatis</artifactId>
-                </exclusion>
-
-            </exclusions>
         </dependency>
 
         <dependency>
@@ -69,8 +53,32 @@
             <artifactId>blade-core-test</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>net.sourceforge.jtds</groupId>
+            <artifactId>jtds</artifactId>
+            <version>1.3.1</version>
+        </dependency>
     </dependencies>
 
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <mainClass>org.springblade.qinzhesync.QinzheSyncApplication</mainClass>
+                    <layout>ZIP</layout>
+                    <includes>
 
+                        <include>
+                            <groupId>nothing</groupId>
+                            <artifactId>nothing</artifactId>
+                        </include>
+
+                    </includes>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 
 </project>
diff --git a/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/QinzheSyncApplication.java b/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/QinzheSyncApplication.java
index 235d8b8..4204ad2 100644
--- a/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/QinzheSyncApplication.java
+++ b/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/QinzheSyncApplication.java
@@ -3,8 +3,6 @@
 
 import org.springblade.core.cloud.client.BladeCloudApplication;
 import org.springblade.core.launch.BladeApplication;
-import org.springblade.core.mp.config.MybatisPlusConfiguration;
-//import org.springblade.core.launch.constant.AppConstant;
 
 /**
  * 鍕ゅ摬鏁版嵁鍚屾妯″潡鍚姩鍣�
diff --git a/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/config/DataSourceConfig.java b/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/config/DataSourceConfig.java
index 29c117e..ab50ede 100644
--- a/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/config/DataSourceConfig.java
+++ b/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/config/DataSourceConfig.java
@@ -1,5 +1,7 @@
 package org.springblade.qinzhesync.config;
 
+import com.alibaba.druid.pool.DruidDataSource;
+import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceBuilder;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.jdbc.DataSourceBuilder;
 import org.springframework.context.annotation.Bean;
@@ -13,9 +15,12 @@
 
 	@Primary
 	@ConfigurationProperties(prefix="spring.datasource")
+	@Bean("dataSource")
 	public DataSource dataSource() {
-		return DataSourceBuilder.create().build();
+		return DruidDataSourceBuilder.create().build();
+		//return DataSourceBuilder.create().build();
 	}
+
 	@Bean("mdmDdataSource")
 	@ConfigurationProperties(prefix="spring.datasource.mdm")
 	public DataSource preDataSource() {
diff --git a/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/config/JdbcTemplateConfig.java b/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/config/JdbcTemplateConfig.java
index 6b90674..7ab18c7 100644
--- a/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/config/JdbcTemplateConfig.java
+++ b/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/config/JdbcTemplateConfig.java
@@ -14,6 +14,7 @@
 @Configuration
 public class JdbcTemplateConfig {
 	private String mapper = "classpath:org/springblade/qinzhesync/mapper/*Mapper.xml";   //xml鎵弿璺緞
+	//private String mapper = "org/springblade/qinzhesync/mapper/*Mapper.xml";   //xml鎵弿璺緞
 	@Primary
 	@Bean
 	public JdbcTemplate primaryJdbcTemplate(@Qualifier("mdmDdataSource") DataSource dataSource) {//
@@ -26,9 +27,10 @@
 	}
 
 	@Bean
-	public SqlSessionFactory sqlSessionFactory(@Qualifier("mdmDdataSource") DataSource dataSource) throws Exception {
+	public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception {
 		final SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
 		sqlSessionFactoryBean.setDataSource(dataSource);
+		sqlSessionFactoryBean.setTypeAliasesPackage("org.springblade.qinzhesync.entity");
 		//sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapper));
 		return sqlSessionFactoryBean.getObject();
 	}
diff --git a/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/config/SnowConfig.java b/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/config/SnowConfig.java
new file mode 100644
index 0000000..c4fd216
--- /dev/null
+++ b/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/config/SnowConfig.java
@@ -0,0 +1,23 @@
+package org.springblade.qinzhesync.config;
+
+import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceBuilder;
+import org.springblade.qinzhesync.utils.SnowflakeIdGenerator;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.jdbc.DataSourceBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+
+import javax.sql.DataSource;
+
+@Configuration
+public class SnowConfig {
+
+
+	@Bean
+	public SnowflakeIdGenerator snowflakeIdGenerator() {
+		return new SnowflakeIdGenerator(1,1);
+	}
+
+
+}
diff --git a/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/controller/SyncController.java b/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/controller/SyncController.java
index d63be03..5dcf9d1 100644
--- a/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/controller/SyncController.java
+++ b/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/controller/SyncController.java
@@ -32,4 +32,15 @@
 		return R.<Boolean>status(true);
 	}
 
+	@GetMapping("/exists")
+	@Operation(summary = "鍥惧彿瀛樺湪鍒ゆ柇", description = "鍥惧彿瀛樺湪鍒ゆ柇")
+	public R<Boolean> exists(String drawingNo) {
+		try {
+			return R.data(service.drawingNoExists(drawingNo));
+		}catch (Exception e) {
+			log.error("exist澶辫触", e);;
+			return R.fail(e.getMessage());
+		}
+
+	}
 }
diff --git a/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/entity/ProduceDivision.java b/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/entity/ProduceDivision.java
new file mode 100644
index 0000000..64630f5
--- /dev/null
+++ b/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/entity/ProduceDivision.java
@@ -0,0 +1,36 @@
+package org.springblade.qinzhesync.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+import org.springblade.core.mp.base.BizEntity;
+
+/**
+ * 涓诲埗鍒嗗伐琛�
+ */
+@Setter
+@Getter
+@TableName("mdm_produce_division")
+public class ProduceDivision extends BizEntity {
+	/**
+	 * 闆剁粍浠剁紪鍙�
+	 */
+	private String drawingNo;
+	/**
+	 * 涓撲笟缁勯暱id
+	 */
+	private Long teamLeaderId;
+	/**
+	 * 缂栧埗宸ヨ壓鍛榠d
+	 */
+	private Long programmerId;
+	/**
+	 * 鏍″宸ヨ壓鍛榠d
+	 */
+	private Long checkerId;
+
+	/**
+	 * 楂樺笀id
+	 */
+	private Long seniorId;
+}
diff --git a/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/service/QinzheSyncService.java b/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/service/QinzheSyncService.java
index 8fdd08e..e0bfb71 100644
--- a/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/service/QinzheSyncService.java
+++ b/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涓汉锛変篃閮芥病鏈�.鐩墠鍙尮閰嶄笓涓氱粍闀垮嵆鍙紝缂栧埗鏍″鍦╩dm涓淮鎶�
-	 * 鏇存柊mdm涓诲埗鍒嗗伐琛ㄦ暟鎹�,
+	 * 鍥惧彿鏄惁瀛樺湪浜嶮DM鍒嗗伐琛�
+	 * @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");
 	}
 	/**
 	 * 灏嗗嫟鍝茬郴缁熺殑鏁版嵁鍏堜竴娆℃�у鍏dm绯荤粺鏁版嵁搴撲复鏃惰〃
 	 */
-	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涓汉锛変篃閮芥病鏈�.鐩墠鍙尮閰嶄笓涓氱粍闀垮嵆鍙紝缂栧埗鏍″鍦╩dm涓淮鎶�
+	 * 鏇存柊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");
-
 	}
 
 	/**
diff --git a/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/utils/SnowflakeIdGenerator.java b/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/utils/SnowflakeIdGenerator.java
new file mode 100644
index 0000000..2d9a227
--- /dev/null
+++ b/blade-service/blade-qinzhesync/src/main/java/org/springblade/qinzhesync/utils/SnowflakeIdGenerator.java
@@ -0,0 +1,45 @@
+package org.springblade.qinzhesync.utils;
+
+public class SnowflakeIdGenerator {
+	private final long workerId;
+	private final long datacenterId;
+	private long sequence = 0L;
+	private long lastTimestamp = -1L;
+
+	public SnowflakeIdGenerator(long workerId, long datacenterId) {
+		this.workerId = workerId;
+		this.datacenterId = datacenterId;
+	}
+
+	public synchronized long nextId() {
+		long timestamp = System.currentTimeMillis();
+
+		if (timestamp < lastTimestamp) {
+			throw new RuntimeException("Clock moved backwards!");
+		}
+
+		if (lastTimestamp == timestamp) {
+			sequence = (sequence + 1) & 0xFFF;
+			if (sequence == 0) {
+				timestamp = tilNextMillis(lastTimestamp);
+			}
+		} else {
+			sequence = 0L;
+		}
+
+		lastTimestamp = timestamp;
+
+		return ((timestamp - 1288834974657L) << 22) |
+			(datacenterId << 17) |
+			(workerId << 12) |
+			sequence;
+	}
+
+	private long tilNextMillis(long lastTimestamp) {
+		long timestamp = System.currentTimeMillis();
+		while (timestamp <= lastTimestamp) {
+			timestamp = System.currentTimeMillis();
+		}
+		return timestamp;
+	}
+}
diff --git a/blade-service/blade-qinzhesync/src/main/resources/application-dev.yml b/blade-service/blade-qinzhesync/src/main/resources/application-dev.yml
index ef8eb13..74fbc98 100644
--- a/blade-service/blade-qinzhesync/src/main/resources/application-dev.yml
+++ b/blade-service/blade-qinzhesync/src/main/resources/application-dev.yml
@@ -2,6 +2,28 @@
 server:
   port: 8109
 
+wfg:
+  # 璇蜂竴瀹氭敞鎰忥紒 WorkerIdBitLength + SeqBitLength + DataCenterIdBitLength <= 22
+  # 1琛ㄧず闆姳婕傜Щ绠楁硶锛�2琛ㄧず浼犵粺闆姳绠楁硶
+  method: 1
+  # 鍩虹鏃堕棿锛屼负2023-07-01 00:00:00 id>0
+  baseTime: 1688140800000
+  # 鏁版嵁涓績id
+  dataCenterId: 0
+  # 鏁版嵁涓績id浣嶉暱锛岄粯璁や负0琛ㄧず涓嶅紑鍚暟鎹腑蹇僫d鍔熻兘
+  dataCenterIdBitLength: 0
+  # 鏈哄櫒鐮侊紙褰撳墠绯荤粺鐨勬満鍣ㄧ爜锛�
+  workerId: 0
+  # 鏈哄櫒鐮佷綅闀匡紙鑳借〃绀烘満鍣ㄧ爜鐨勬渶澶у�硷級
+  workerIdBitLength: 1
+  # 搴忓垪鏁颁綅闀匡紙鑳借〃绀烘満鍣ㄧ爜鐨勬渶澶у簭鍒楁暟锛�
+  seqBitLength: 6
+  # 鏈�澶у簭鍒楁暟锛堝惈锛�
+  maxSeqNumber: 0
+  # 鏈�灏忓簭鍒楁暟锛堝惈锛�
+  minSeqNumber: 5
+  # 鏈�澶ф紓绉绘鏁帮紝涓庤绠楄兘鍔涙湁鍏�
+  topOverCostCount: 2000
 #鏁版嵁婧愰厤缃�
 spring:
   datasource:
diff --git a/doc/sql/mdm/mdm.mysql.all.create.sql b/doc/sql/mdm/mdm.mysql.all.create.sql
index 3bf9113..f1fb379 100644
--- a/doc/sql/mdm/mdm.mysql.all.create.sql
+++ b/doc/sql/mdm/mdm.mysql.all.create.sql
@@ -59,7 +59,7 @@
 
 DROP TABLE IF EXISTS `mdm_qinzhe_fgb`;
 CREATE TABLE `mdm_qinzhe_fgb` (
-   `cph` varchar(40) NULL COMMENT '浜у搧鍙�',
+   `cph` varchar(80) NULL COMMENT '浜у搧鍙�',
    `ljh` varchar(80) NULL COMMENT '闆朵欢鍙�',
    `ljmc` varchar(100) NULL COMMENT '闆朵欢鍚嶇О',
    `zz` varchar(40) NULL COMMENT '涓诲埗',
@@ -96,12 +96,11 @@
 DROP TABLE IF EXISTS `mdm_produce_division`;
 CREATE TABLE `mdm_produce_division` (
     `id` bigint NOT NULL,
-    `drawing_no` varchar(100) NULL COMMENT '鍥惧彿锛岄浂缁勪欢鍙�',
-    `team_leader_id` bigint NOT NULL COMMENT '涓撲笟缁勯暱璐﹀彿',
-    `programmer_id` bigint NOT NULL COMMENT '缂栧埗鍛樿处鍙�',
-    `checker_id` bigint NOT NULL COMMENT '鏍″鍛樿处鍙凤紙宸ヨ壓鍛樿鑹诧級',
-    `senior_id` bigint NOT NULL COMMENT '瀹℃壒楂樺笀璐﹀彿',
-
+    `drawing_no` varchar(100) Not NULL COMMENT '鍥惧彿锛岄浂缁勪欢鍙�',
+    `team_leader_id` bigint  COMMENT '涓撲笟缁勯暱璐﹀彿',
+    `programmer_id` bigint  COMMENT '缂栧埗鍛樿处鍙�',
+    `checker_id` bigint COMMENT '鏍″鍛樿处鍙凤紙宸ヨ壓鍛樿鑹诧級',
+    `senior_id` bigint  COMMENT '瀹℃壒楂樺笀璐﹀彿',
     `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '绉熸埛ID',
     `status` int DEFAULT NULL COMMENT '涓氬姟鐘舵��',
     `create_dept` bigint DEFAULT NULL COMMENT '鍒涘缓鍗曚綅',
@@ -110,8 +109,7 @@
     `create_user` bigint DEFAULT NULL COMMENT '鍒涘缓浜�',
     `update_time` datetime DEFAULT NULL COMMENT '鏇存柊鏃堕棿',
     `update_user` bigint DEFAULT NULL COMMENT '鏇存柊浜�',
-    PRIMARY KEY (`id`) USING BTREE,
-    UNIQUE KEY `uniqueCheckIndex` (`team_leader_id`,`programmer_id`,`checker_id`,`senior_id`,`is_deleted`) USING BTREE
+    PRIMARY KEY (`id`) USING BTREE
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci  ROW_FORMAT=DYNAMIC COMMENT='涓诲埗鍒嗗伐琛�';
 
 

--
Gitblit v1.9.3