From b6c4121c66b811ac56c960ad0f640158351edb8b Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 18 八月 2025 15:00:04 +0800
Subject: [PATCH] 增加log配置

---
 blade-service/blade-mdm/src/main/resources/rebel.xml           |   16 +++
 /dev/null                                                      |   54 ----------
 blade-service/blade-mdm/src/main/resources/application-dev.yml |    5 +
 blade-service/blade-mdm/src/main/resources/log/logback-dev.xml |  140 ++++++++++++++++++++++++++++
 blade-service/blade-mdm/src/main/resources/logback-spring.xml  |   43 ++++++++
 doc/sql/mdm/mdm.mysql.all.create.sql                           |   31 +++++
 6 files changed, 231 insertions(+), 58 deletions(-)

diff --git a/blade-ops/blade-flow/src/main/resources/processes/LeaveProcess.bpmn20.xml b/blade-ops/blade-flow/src/main/resources/processes/LeaveProcess.bpmn20.xml
deleted file mode 100644
index 4d86c05..0000000
--- a/blade-ops/blade-flow/src/main/resources/processes/LeaveProcess.bpmn20.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.flowable.org/processdef">
-    <process id="Leave" name="璇峰亣娴佺▼" isExecutable="true">
-        <documentation>璇峰亣娴佺▼</documentation>
-        <startEvent id="start" name="寮�濮�" flowable:initiator="applyUser"></startEvent>
-        <userTask id="hrTask" name="浜轰簨瀹℃壒" flowable:assignee="${taskUser}">
-            <extensionElements>
-                <modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
-            </extensionElements>
-        </userTask>
-        <exclusiveGateway id="judgeTask"></exclusiveGateway>
-        <userTask id="managerTak" name="缁忕悊瀹℃壒" flowable:candidateGroups="manager"></userTask>
-        <userTask id="bossTask" name="鑰佹澘瀹℃壒" flowable:candidateGroups="boss"></userTask>
-        <endEvent id="end" name="缁撴潫"></endEvent>
-        <sequenceFlow id="flow1" sourceRef="start" targetRef="hrTask"></sequenceFlow>
-        <sequenceFlow id="managerPassFlow" name="閫氳繃" sourceRef="managerTak" targetRef="end">
-            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass}]]></conditionExpression>
-        </sequenceFlow>
-        <userTask id="userTask" name="璋冩暣鐢宠" flowable:assignee="${applyUser}">
-            <extensionElements>
-                <modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
-            </extensionElements>
-        </userTask>
-        <sequenceFlow id="bossPassFlow" name="閫氳繃" sourceRef="bossTask" targetRef="end">
-            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass}]]></conditionExpression>
-        </sequenceFlow>
-        <sequenceFlow id="judgeMore" name="澶т簬3澶�" sourceRef="judgeTask" targetRef="bossTask">
-            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${days > 3}]]></conditionExpression>
-        </sequenceFlow>
-        <sequenceFlow id="managerNotPassFlow" name="椹冲洖" sourceRef="managerTak" targetRef="userTask">
-            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!pass}]]></conditionExpression>
-        </sequenceFlow>
-        <sequenceFlow id="bossNotPassFlow" name="椹冲洖" sourceRef="bossTask" targetRef="userTask">
-            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!pass}]]></conditionExpression>
-        </sequenceFlow>
-        <sequenceFlow id="hrPassFlow" name="鍚屾剰" sourceRef="hrTask" targetRef="judgeTask">
-            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass}]]></conditionExpression>
-        </sequenceFlow>
-        <sequenceFlow id="hrNotPassFlow" name="椹冲洖" sourceRef="hrTask" targetRef="userTask">
-            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!pass}]]></conditionExpression>
-        </sequenceFlow>
-        <sequenceFlow id="judgeLess" name="灏忎簬3澶�" sourceRef="judgeTask" targetRef="managerTak">
-            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${days <= 3}]]></conditionExpression>
-        </sequenceFlow>
-        <sequenceFlow id="userPassFlow" name="閲嶆柊鐢宠" sourceRef="userTask" targetRef="hrTask">
-            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass}]]></conditionExpression>
-        </sequenceFlow>
-        <sequenceFlow id="userNotPassFlow" name="鍏抽棴鐢宠" sourceRef="userTask" targetRef="end">
-            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!pass}]]></conditionExpression>
-        </sequenceFlow>
-    </process>
-    <bpmndi:BPMNDiagram id="BPMNDiagram_Leave">
-        <bpmndi:BPMNPlane bpmnElement="Leave" id="BPMNPlane_Leave">
-            <bpmndi:BPMNShape bpmnElement="start" id="BPMNShape_start">
-                <omgdc:Bounds height="30.0" width="30.0" x="300.0" y="135.0"></omgdc:Bounds>
-            </bpmndi:BPMNShape>
-            <bpmndi:BPMNShape bpmnElement="hrTask" id="BPMNShape_hrTask">
-                <omgdc:Bounds height="80.0" width="100.0" x="360.0" y="165.0"></omgdc:Bounds>
-            </bpmndi:BPMNShape>
-            <bpmndi:BPMNShape bpmnElement="judgeTask" id="BPMNShape_judgeTask">
-                <omgdc:Bounds height="40.0" width="40.0" x="255.0" y="300.0"></omgdc:Bounds>
-            </bpmndi:BPMNShape>
-            <bpmndi:BPMNShape bpmnElement="managerTak" id="BPMNShape_managerTak">
-                <omgdc:Bounds height="80.0" width="100.0" x="555.0" y="75.0"></omgdc:Bounds>
-            </bpmndi:BPMNShape>
-            <bpmndi:BPMNShape bpmnElement="bossTask" id="BPMNShape_bossTask">
-                <omgdc:Bounds height="80.0" width="100.0" x="450.0" y="420.0"></omgdc:Bounds>
-            </bpmndi:BPMNShape>
-            <bpmndi:BPMNShape bpmnElement="end" id="BPMNShape_end">
-                <omgdc:Bounds height="28.0" width="28.0" x="705.0" y="390.0"></omgdc:Bounds>
-            </bpmndi:BPMNShape>
-            <bpmndi:BPMNShape bpmnElement="userTask" id="BPMNShape_userTask">
-                <omgdc:Bounds height="80.0" width="100.0" x="510.0" y="270.0"></omgdc:Bounds>
-            </bpmndi:BPMNShape>
-            <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
-                <omgdi:waypoint x="327.9390183144677" y="157.4917313275668"></omgdi:waypoint>
-                <omgdi:waypoint x="360.0" y="176.05263157894737"></omgdi:waypoint>
-            </bpmndi:BPMNEdge>
-            <bpmndi:BPMNEdge bpmnElement="hrPassFlow" id="BPMNEdge_hrPassFlow">
-                <omgdi:waypoint x="363.04347826086956" y="244.95000000000002"></omgdi:waypoint>
-                <omgdi:waypoint x="285.77299999999997" y="310.79999999999995"></omgdi:waypoint>
-            </bpmndi:BPMNEdge>
-            <bpmndi:BPMNEdge bpmnElement="hrNotPassFlow" id="BPMNEdge_hrNotPassFlow">
-                <omgdi:waypoint x="459.95" y="236.21875000000006"></omgdi:waypoint>
-                <omgdi:waypoint x="513.9794844818516" y="270.0"></omgdi:waypoint>
-            </bpmndi:BPMNEdge>
-            <bpmndi:BPMNEdge bpmnElement="judgeLess" id="BPMNEdge_judgeLess">
-                <omgdi:waypoint x="274.3359375" y="300.66397214564284"></omgdi:waypoint>
-                <omgdi:waypoint x="274.3359375" y="115.0"></omgdi:waypoint>
-                <omgdi:waypoint x="554.9999999999982" y="115.0"></omgdi:waypoint>
-            </bpmndi:BPMNEdge>
-            <bpmndi:BPMNEdge bpmnElement="userPassFlow" id="BPMNEdge_userPassFlow">
-                <omgdi:waypoint x="510.0" y="310.0"></omgdi:waypoint>
-                <omgdi:waypoint x="411.0" y="310.0"></omgdi:waypoint>
-                <omgdi:waypoint x="411.0" y="244.95000000000002"></omgdi:waypoint>
-            </bpmndi:BPMNEdge>
-            <bpmndi:BPMNEdge bpmnElement="bossPassFlow" id="BPMNEdge_bossPassFlow">
-                <omgdi:waypoint x="549.9499999999998" y="447.2146118721461"></omgdi:waypoint>
-                <omgdi:waypoint x="705.4331577666419" y="407.4567570622598"></omgdi:waypoint>
-            </bpmndi:BPMNEdge>
-            <bpmndi:BPMNEdge bpmnElement="judgeMore" id="BPMNEdge_judgeMore">
-                <omgdi:waypoint x="287.29730895645025" y="327.65205479452055"></omgdi:waypoint>
-                <omgdi:waypoint x="450.0" y="428.8888888888889"></omgdi:waypoint>
-            </bpmndi:BPMNEdge>
-            <bpmndi:BPMNEdge bpmnElement="managerPassFlow" id="BPMNEdge_managerPassFlow">
-                <omgdi:waypoint x="620.7588235294118" y="154.95"></omgdi:waypoint>
-                <omgdi:waypoint x="713.8613704477151" y="390.96328050279476"></omgdi:waypoint>
-            </bpmndi:BPMNEdge>
-            <bpmndi:BPMNEdge bpmnElement="userNotPassFlow" id="BPMNEdge_userNotPassFlow">
-                <omgdi:waypoint x="609.95" y="339.5301886792453"></omgdi:waypoint>
-                <omgdi:waypoint x="706.9383699359797" y="396.87411962686997"></omgdi:waypoint>
-            </bpmndi:BPMNEdge>
-            <bpmndi:BPMNEdge bpmnElement="bossNotPassFlow" id="BPMNEdge_bossNotPassFlow">
-                <omgdi:waypoint x="515.98" y="420.0"></omgdi:waypoint>
-                <omgdi:waypoint x="544.0" y="349.95000000000005"></omgdi:waypoint>
-            </bpmndi:BPMNEdge>
-            <bpmndi:BPMNEdge bpmnElement="managerNotPassFlow" id="BPMNEdge_managerNotPassFlow">
-                <omgdi:waypoint x="595.438344721373" y="154.95"></omgdi:waypoint>
-                <omgdi:waypoint x="567.9366337262223" y="270.0"></omgdi:waypoint>
-            </bpmndi:BPMNEdge>
-        </bpmndi:BPMNPlane>
-    </bpmndi:BPMNDiagram>
-</definitions>
diff --git "a/blade-service/blade-desk/$\173project.build.directory\175/classes/org/springblade/desk/mapper/NoticeMapper.xml" "b/blade-service/blade-desk/$\173project.build.directory\175/classes/org/springblade/desk/mapper/NoticeMapper.xml"
deleted file mode 100644
index 93c6a73..0000000
--- "a/blade-service/blade-desk/$\173project.build.directory\175/classes/org/springblade/desk/mapper/NoticeMapper.xml"
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.springblade.desk.mapper.NoticeMapper">
-
-    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
-    <resultMap id="noticeResultMap" type="org.springblade.desk.pojo.entity.Notice">
-        <result column="id" property="id"/>
-        <result column="create_user" property="createUser"/>
-        <result column="create_time" property="createTime"/>
-        <result column="update_user" property="updateUser"/>
-        <result column="update_time" property="updateTime"/>
-        <result column="status" property="status"/>
-        <result column="is_deleted" property="isDeleted"/>
-        <result column="release_time" property="releaseTime"/>
-        <result column="title" property="title"/>
-        <result column="content" property="content"/>
-    </resultMap>
-
-    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
-    <resultMap id="noticeVOResultMap" type="org.springblade.desk.pojo.vo.NoticeVO">
-        <result column="id" property="id"/>
-        <result column="create_user" property="createUser"/>
-        <result column="create_time" property="createTime"/>
-        <result column="update_user" property="updateUser"/>
-        <result column="update_time" property="updateTime"/>
-        <result column="status" property="status"/>
-        <result column="is_deleted" property="isDeleted"/>
-        <result column="release_time" property="releaseTime"/>
-        <result column="title" property="title"/>
-        <result column="content" property="content"/>
-    </resultMap>
-
-    <select id="topList" resultMap="noticeResultMap">
-        select * from blade_notice limit #{number}
-    </select>
-
-    <select id="selectNoticePage" resultMap="noticeVOResultMap">
-        SELECT
-        n.*,
-        d.dict_value AS categoryName
-        FROM
-        blade_notice n
-        LEFT JOIN ( SELECT * FROM blade_dict WHERE CODE = 'notice' ) d ON n.category = d.dict_key
-        WHERE
-        n.is_deleted = 0 and n.tenant_id = #{notice.tenantId}
-        <if test="notice.title!=null">
-            and n.title like concat(concat('%', #{notice.title}), '%')
-        </if>
-        <if test="notice.category!=null">
-            and n.category = #{notice.category}
-        </if>
-    </select>
-
-</mapper>
diff --git a/blade-service/blade-mdm/src/main/resources/application-dev.yml b/blade-service/blade-mdm/src/main/resources/application-dev.yml
index 732fb67..882c9ab 100644
--- a/blade-service/blade-mdm/src/main/resources/application-dev.yml
+++ b/blade-service/blade-mdm/src/main/resources/application-dev.yml
@@ -9,3 +9,8 @@
     username: ${blade.datasource.dev.username}
     password: ${blade.datasource.dev.password}
 
+logging:
+  level:
+    root: WARN
+    org.springblade.mdm: INFO
+    org.springframework.web: INFO
diff --git a/blade-service/blade-mdm/src/main/resources/log/logback-dev.xml b/blade-service/blade-mdm/src/main/resources/log/logback-dev.xml
new file mode 100644
index 0000000..58a6e3f
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/resources/log/logback-dev.xml
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="60 seconds">
+
+    <!--鍖呭惈etl tool 鐨刲ogback鏂囦欢-->
+    <include resource="logback/logback.xml"/>
+
+    <!-- 鑷畾涔夊弬鏁扮洃鍚� -->
+    <contextListener class="org.springblade.core.log.listener.LoggerStartupListener"/>
+    <springProperty scope="context" name="springAppName" source="spring.application.name"/>
+
+    <!-- 褰╄壊鏃ュ織渚濊禆鐨勬覆鏌撶被 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
+    <conversionRule conversionWord="wex"
+                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
+    <conversionRule conversionWord="wEx"
+                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+    <!-- 褰╄壊鏃ュ織鏍煎紡 -->
+    <property name="CONSOLE_LOG_PATTERN"
+              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+    <!-- 鎺у埗鍙拌緭鍑� -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+            <charset>utf8</charset>
+        </encoder>
+    </appender>
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_FILE}</file>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
+        </encoder>
+        <!-- 婊氬姩绛栫暐 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <!-- 鎸夋棩鏈熷拰澶у皬婊氬姩 -->
+            <fileNamePattern>${LOG_PATH}/mdm-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <!-- 鍗曚釜鏂囦欢鏈�澶уぇ灏� -->
+            <maxFileSize>100MB</maxFileSize>
+            <!-- 淇濈暀鏈�澶�30澶╃殑鏃ュ織 -->
+            <maxHistory>30</maxHistory>
+            <!-- 鎵�鏈夋棩蹇楁枃浠舵�诲ぇ灏忛檺鍒� -->
+            <totalSizeCap>2GB</totalSizeCap>
+        </rollingPolicy>
+    </appender>
+    <if condition='property("ELK_MODE").toUpperCase().contains("TRUE")'>
+        <then>
+            <!-- 鎺ㄩ�佹棩蹇楄嚦elk -->
+            <appender name="STDOUT_LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
+                <destination>${DESTINATION}</destination>
+                <!-- 鏃ュ織杈撳嚭缂栫爜 -->
+                <encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
+                    <providers>
+                        <timestamp>
+                            <timeZone>UTC</timeZone>
+                        </timestamp>
+                        <pattern>
+                            <pattern>
+                                {
+                                "traceId": "%X{traceId}",
+                                "requestId": "%X{requestId}",
+                                "accountId": "%X{accountId}",
+                                "tenantId": "%X{tenantId}",
+                                "logLevel": "%level",
+                                "serviceName": "${springAppName:-SpringApp}",
+                                "pid": "${PID:-}",
+                                "thread": "%thread",
+                                "class": "%logger{40}",
+                                "line":"%L",
+                                "message": "%message"
+                                }
+                            </pattern>
+                        </pattern>
+                        <mdc/>
+                        <stackTrace/>
+                    </providers>
+                </encoder>
+            </appender>
+        </then>
+    </if>
+
+    <!-- 鏃ュ織杈撳嚭绾у埆 -->
+    <root level="INFO">
+        <appender-ref ref="STDOUT"/>
+        <appender-ref ref="FILE"/>
+
+        <appender-ref ref="${STDOUT_APPENDER}"/>
+    </root>
+
+    <logger name="net.sf.ehcache" level="INFO"/>
+    <logger name="druid.sql" level="INFO"/>
+
+
+    <!-- MyBatis log configure -->
+    <logger name="com.apache.ibatis" level="INFO"/>
+    <logger name="org.mybatis.spring" level="INFO"/>
+    <logger name="java.sql.Connection" level="INFO"/>
+    <logger name="java.sql.Statement" level="INFO"/>
+    <logger name="java.sql.PreparedStatement" level="INFO"/>
+
+    <!-- 鍑忓皯閮ㄥ垎debug鏃ュ織 -->
+    <logger name="druid.sql" level="INFO"/>
+    <logger name="org.apache.shiro" level="INFO"/>
+    <logger name="org.mybatis.spring" level="INFO"/>
+    <logger name="org.springframework" level="INFO"/>
+    <logger name="org.springframework.context" level="WARN"/>
+    <logger name="org.springframework.beans" level="WARN"/>
+    <logger name="com.baomidou.mybatisplus" level="INFO"/>
+    <logger name="org.apache.ibatis.io" level="INFO"/>
+    <logger name="org.apache.velocity" level="INFO"/>
+    <logger name="org.eclipse.jetty" level="INFO"/>
+    <logger name="io.undertow" level="INFO"/>
+    <logger name="org.xnio.nio" level="INFO"/>
+    <logger name="org.thymeleaf" level="INFO"/>
+    <logger name="springfox.documentation" level="INFO"/>
+    <logger name="org.hibernate.validator" level="INFO"/>
+    <logger name="com.netflix.loadbalancer" level="INFO"/>
+    <logger name="com.netflix.hystrix" level="INFO"/>
+    <logger name="com.netflix.zuul" level="INFO"/>
+    <logger name="de.codecentric" level="INFO"/>
+    <!-- cache INFO -->
+    <logger name="net.sf.ehcache" level="INFO"/>
+    <logger name="org.springframework.cache" level="INFO"/>
+    <!-- cloud -->
+    <logger name="org.apache.http" level="INFO"/>
+    <logger name="com.netflix.discovery" level="INFO"/>
+    <logger name="com.netflix.eureka" level="INFO"/>
+    <!-- 涓氬姟鏃ュ織 -->
+    <Logger name="org.springblade.mdm" level="INFO"/>
+    <Logger name="org.springblade.core.tenant" level="INFO"/>
+    <Logger name="org.springblade.core.version" level="INFO"/>
+
+    <!-- 鍑忓皯nacos鏃ュ織 -->
+    <logger name="com.alibaba.nacos" level="ERROR"/>
+
+
+
+    <logger name="RocketmqClient" additivity="false">
+        <level value="ERROR" />
+        <appender-ref ref="STDOUT"/>
+    </logger>
+</configuration>
diff --git a/blade-service/blade-mdm/src/main/resources/logback-spring.xml b/blade-service/blade-mdm/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..50ace4e
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/resources/logback-spring.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
+
+    <!-- 瀹氫箟搴旂敤鍚嶇О锛岀敤浜庢棩蹇楁枃浠跺悕 -->
+    <property name="APP_NAME" value="mdm"/>
+
+    <!-- 瀹氫箟鏃ュ織鏂囦欢瀛樺偍璺緞 -->
+    <property name="LOG_PATH" value="d:/mdmnew/logs/${APP_NAME}"/>
+    <property name="LOG_FILE" value="${LOG_PATH}/mdm.log"/>
+
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 鏂囦欢杈撳嚭appender -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_FILE}</file>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
+        </encoder>
+        <!-- 婊氬姩绛栫暐 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <!-- 鎸夋棩鏈熷拰澶у皬婊氬姩 -->
+            <fileNamePattern>${LOG_PATH}/mdm-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <!-- 鍗曚釜鏂囦欢鏈�澶уぇ灏� -->
+            <maxFileSize>100MB</maxFileSize>
+            <!-- 淇濈暀鏈�澶�30澶╃殑鏃ュ織 -->
+            <maxHistory>30</maxHistory>
+            <!-- 鎵�鏈夋棩蹇楁枃浠舵�诲ぇ灏忛檺鍒� -->
+            <totalSizeCap>2GB</totalSizeCap>
+        </rollingPolicy>
+    </appender>
+
+    <!-- 璁剧疆鏃ュ織绾у埆 -->
+    <root level="INFO">
+        <appender-ref ref="CONSOLE"/>
+        <appender-ref ref="FILE"/>
+    </root>
+<!--
+    <logger name="org.spingblade.mdm" level="INFO"/>-->
+</configuration>
diff --git a/blade-service/blade-mdm/src/main/resources/rebel.xml b/blade-service/blade-mdm/src/main/resources/rebel.xml
new file mode 100644
index 0000000..1fffa35
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/resources/rebel.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  This is the JRebel configuration file. It maps the running application to your IDE workspace, enabling JRebel reloading for this project.
+  Refer to https://manuals.jrebel.com/jrebel/standalone/config.html for more information.
+-->
+<application generated-by="intellij" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://update.zeroturnaround.com/jrebel/rebel-2_3.xsd">
+
+	<id>blade-mdm</id>
+
+	<classpath>
+		<dir name="D:/yangys/搴嗗畨mdm/src/BladeX/blade-service/blade-mdm/target/classes">
+		</dir>
+	</classpath>
+
+</application>
diff --git a/doc/sql/mdm/mdm.mysql.all.create.sql b/doc/sql/mdm/mdm.mysql.all.create.sql
index 7ea64e4..538e48d 100644
--- a/doc/sql/mdm/mdm.mysql.all.create.sql
+++ b/doc/sql/mdm/mdm.mysql.all.create.sql
@@ -99,7 +99,6 @@
 DROP TABLE IF EXISTS `mdm_produce_division`;
 CREATE TABLE `mdm_produce_division` (
     `id` bigint NOT NULL,
-    `drawing_no` varchar(100) Not NULL COMMENT '鍥惧彿锛岄浂缁勪欢鍙�',
     `team_leader_id` bigint  COMMENT '涓撲笟缁勯暱璐﹀彿',
     `programmer_id` bigint  COMMENT '缂栧埗鍛樿处鍙�',
     `checker_id` bigint COMMENT '鏍″鍛樿处鍙凤紙宸ヨ壓鍛樿鑹诧級',
@@ -224,6 +223,7 @@
     `name` varchar(100) DEFAULT NULL COMMENT '鏂囦欢鍚�',
     `program_name` varchar(100) DEFAULT NULL COMMENT '绋嬪簭鍚�/绋嬪簭鍖呭悕',
     `oss_name` varchar(400) DEFAULT NULL COMMENT 'oss鏂囦欢鍚�',
+    `file_type` varchar(10) DEFAULT NULL COMMENT '鏂囦欢绫诲瀷(program/other)',
     `is_cured` int DEFAULT 0 COMMENT '鏄惁鍥哄寲鐨�,1鏄�;0鍚︼紝娴佺▼鍙戣捣鏃跺彂鐜板浐鍖栫▼搴忚嚜鍔ㄦ彃鍏ョ殑涓哄浐鍖�1',
     `status` int DEFAULT NULL COMMENT '涓氬姟鐘舵��',
     `create_dept` bigint DEFAULT NULL COMMENT '鍒涘缓鍗曚綅',
@@ -308,6 +308,7 @@
    `id` bigint NOT NULL,
    `tenant_id` varchar(6) DEFAULT NULL COMMENT '鎵�灞炵鎴�',
    `nc_node_id` bigint NOT NULL COMMENT '绋嬪簭鍖呭悕瀵瑰簲鐨刵odeid',
+   `programmer_id` bigint NOT NULL COMMENT '缂栫▼鍛樼敤鎴稩D',
    `title` varchar(200) NOT NULL COMMENT '娴佺▼鏍囬',
    `program_name` varchar(100) NOT NULL COMMENT '绋嬪簭鍚嶇О',
    `status` int DEFAULT NULL COMMENT '涓氬姟鐘舵��',
@@ -341,8 +342,8 @@
 
 
 
-DROP TABLE IF EXISTS `mdm_dnc_back_file`;
-CREATE TABLE `mdm_dnc_back_file` (
+DROP TABLE IF EXISTS `mdm_dnc_back_fileold`;
+CREATE TABLE `mdm_dnc_back_fileold` (
      `id` bigint NOT NULL,
      `tenant_id` varchar(6) DEFAULT NULL COMMENT '鎵�灞炵鎴�',
      `nc_node_id` bigint NOT NULL COMMENT '绋嬪簭鍖呭悕 鑺傜偣id',
@@ -360,6 +361,26 @@
      PRIMARY KEY (`id`) USING BTREE
 
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='DNC鍥炰紶鏂囦欢璁板綍';
+
+
+DROP TABLE IF EXISTS `mdm_dnc_back_file`;
+CREATE TABLE `mdm_dnc_back_file` (
+    `id` bigint NOT NULL,
+    `tenant_id` varchar(6) DEFAULT NULL COMMENT '鎵�灞炵鎴�',
+    `nc_node_id` bigint NOT NULL COMMENT '绋嬪簭鍖呭悕 鑺傜偣id',
+    `oss_name` varchar(100) NULL COMMENT 'oss涓殑鏂囦欢鍚嶅洖浼犵殑zip鏂囦欢鍚�',
+    `status` int DEFAULT NULL COMMENT '涓氬姟鐘舵��',
+    `create_dept` bigint DEFAULT NULL COMMENT '鍒涘缓鍗曚綅',
+    `is_deleted` int DEFAULT NULL,
+
+    `create_time` datetime DEFAULT NULL COMMENT '鍒涘缓鏃堕棿',
+    `create_user` bigint DEFAULT NULL COMMENT '鍒涘缓浜�',
+    `update_time` datetime DEFAULT NULL COMMENT '鏇存柊鏃堕棿',
+    `update_user` bigint DEFAULT NULL COMMENT '鏇存柊浜�',
+    PRIMARY KEY (`id`) USING BTREE
+
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='DNC鍥炰紶鏂囦欢璁板綍鏂�';
+
 
 
 DROP TABLE IF EXISTS `mdm_file_locks`;
@@ -417,9 +438,10 @@
     `dir_type` varchar(5) DEFAULT NULL COMMENT '鐩綍绫诲瀷锛歋END/REC/TEMP',
     `machine_code` varchar(100) DEFAULT NULL COMMENT '鏈哄簥缂栫爜',
     `file_create_time` datetime DEFAULT NULL COMMENT '鏂囦欢鍒涘缓鏃堕棿',
-    `file_modify_date` datetime DEFAULT NULL COMMENT '鏂囦欢鍒涘缓鏃堕棿',
+    `file_modify_time` datetime DEFAULT NULL COMMENT '鏂囦欢鍒涘缓鏃堕棿',
     `md5` varchar(32) DEFAULT NULL COMMENT 'md5 hex',
     `file_size` bigint DEFAULT NULL COMMENT '鏂囦欢瀛楄妭鏁�',
+    `determine_time` datetime DEFAULT NULL COMMENT '鎺ュ彈/鎷掔粷鐨勬椂闂�',
     `status` int DEFAULT NULL COMMENT '涓氬姟鐘舵��',
     `create_dept` bigint DEFAULT NULL COMMENT '鍒涘缓鍗曚綅',
     `is_deleted` int DEFAULT NULL,
@@ -429,3 +451,4 @@
     `update_user` bigint DEFAULT NULL COMMENT '鏇存柊浜�',
     PRIMARY KEY (`id`) USING BTREE
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='宸ユ帶缃戞満搴婃枃浠�';
+

--
Gitblit v1.9.3