diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/controller/HuahengBaseController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/controller/HuahengBaseController.java
index ef758e7..d313b3b 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/controller/HuahengBaseController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/controller/HuahengBaseController.java
@@ -4,14 +4,10 @@ import java.util.concurrent.TimeUnit;
 
 import javax.annotation.Nonnull;
 
-import org.apache.poi.ss.formula.functions.T;
 import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.utils.RedissonDistributedLocker;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import com.baomidou.mybatisplus.extension.service.IService;
-
 import cn.hutool.core.date.SystemClock;
 import cn.hutool.core.util.StrUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -26,7 +22,7 @@ public class HuahengBaseController {
     private RedissonDistributedLocker redissonDistributedLocker;
 
     public interface MultiProcessListener {
-        Result<?> doProcess();
+        Result<?> doProcess() throws Exception;
     }
 
     /** 等待时间 */
@@ -69,17 +65,20 @@ public class HuahengBaseController {
         final boolean tryLock = redissonDistributedLocker.tryLock(fullLockKey, TimeUnit.SECONDS, WAIT_TIME, LEASE_TIME);
         final long endTime = SystemClock.now();
         if (!tryLock) {
-            log.error("[{}]获取分布式锁失败,lockKey = {},耗时 {}ms", taskName, fullLockKey, endTime - startTime);
-            throw new RuntimeException(StrUtil.format("[{}]获取分布式锁失败,lockKey = {},等待时间超出10秒", taskName, fullLockKey));
+            log.error("[{}] 获取分布式锁失败 lockKey = {},等待锁耗时:{}ms", taskName, fullLockKey, endTime - startTime);
+            throw new RuntimeException(StrUtil.format("[{}] 获取分布式锁失败 lockKey = {},等待时间超出10秒", taskName, fullLockKey));
         }
         // 注意:一定是获取锁成功后,才进行try{}finally{释放锁}
         try {
-            log.info("[{}]获取分布式锁成功,lockKey = {},耗时 {}ms", taskName, fullLockKey, endTime - startTime);
+            log.info("[{}] 开始分布式事务 lockKey = {},获取锁耗时: {}ms", taskName, fullLockKey, endTime - startTime);
             result = multiProcessListener.doProcess();
         } catch (Exception e) {
-            throw new RuntimeException(StrUtil.format("[{}]执行分布式事务失败,lockKey = {}", taskName, fullLockKey), e);
+            final long finishTime = SystemClock.now();
+            throw new RuntimeException(StrUtil.format("[{}] 执行分布式事务失败 lockKey = {},事务耗时:{}ms", taskName, fullLockKey, finishTime - endTime), e);
         } finally {
             redissonDistributedLocker.unlock(fullLockKey);
+            final long finishTime = SystemClock.now();
+            log.info("[{}] 结束分布式事务 lockKey = {},事务耗时:{}ms", taskName, fullLockKey, finishTime - endTime);
         }
 
         return result;
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/controller/TestController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/controller/TestController.java
index 3578cfa..b9508c7 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/controller/TestController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/controller/TestController.java
@@ -1,15 +1,19 @@
 package org.jeecg.modules.wms.framework.controller;
 
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+import java.util.Date;
 import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
 
 import javax.servlet.http.HttpServletRequest;
 
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
-import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader;
+import org.jeecg.modules.system.entity.SysDataLog;
+import org.jeecg.modules.system.service.ISysDataLogService;
 import org.jeecg.utils.HuahengRedisUtil;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -17,7 +21,8 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.TypeReference;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -34,43 +39,51 @@ public class TestController extends HuahengBaseController {
     @Autowired
     private HuahengRedisUtil redisUtil;
 
+    @Autowired
+    private ISysDataLogService sysDataLogService;
+
     @AutoLog(value = "TestController-testRedis")
     @ResponseBody
     @PostMapping(value = "/testRedis")
-    public Result<?> testRedis(@RequestBody Map<String, String> paramMap, HttpServletRequest request) throws InterruptedException {
-
-//        log.info(JSON.toJSONString(paramMap));
-        String key = "testKey";
-        Map<String, ReceiptHeader> receiptHeaderMap = new ConcurrentHashMap<String, ReceiptHeader>();
-        ReceiptHeader value = new ReceiptHeader();
-        value.setCode("001");
-        receiptHeaderMap.put("receiptHeader1", value);
-        redisUtil.set(key, receiptHeaderMap);
-//        Map<String, ReceiptHeader> result = redisUtil.get(key, new TypeReference<Map<String, ReceiptHeader>>() {});
-//        log.info("redisUtil.get -> " + JSON.toJSONString(result));
+    public Result<?> testRedis(@RequestBody Map<String, String> paramMap, HttpServletRequest request) {
+
+//        log.info("testRedis in paramMap:{}", JSON.toJSONString(paramMap));
+//        String key = "testKey";
+//        Map<String, ReceiptHeader> receiptHeaderMap = new ConcurrentHashMap<String, ReceiptHeader>();
+//        ReceiptHeader receiptHeader = new ReceiptHeader();
+//        receiptHeader.setCode("001");
+//        receiptHeaderMap.put("receiptHeaderKey", receiptHeader);
+//        Map<String, ReceiptHeader> value = redisUtil.getAndSet(key, receiptHeaderMap, new TypeReference<Map<String, ReceiptHeader>>() {}, 10);
 //        Long rxpireTime = redisUtil.getExpire(key);
-//        log.info("rxpireTime -> " + rxpireTime);
-//        redisUtil.expire(key, 100);
+//        log.info("redisUtil.getAndSet {} -> {} rxpireTime -> {}", key, JSON.toJSONString(value), rxpireTime);
+//
+//        Thread.sleep(2000l);
+//        receiptHeaderMap = redisUtil.get(key, new TypeReference<Map<String, ReceiptHeader>>() {});
 //        rxpireTime = redisUtil.getExpire(key);
-//        log.info("rxpireTime -> " + rxpireTime);
-//        value.setCode("2222222222222222");
-        redisUtil.delete(key);
-        Map<String, ReceiptHeader> result = redisUtil.getAndSet(key, receiptHeaderMap, new TypeReference<Map<String, ReceiptHeader>>() {}, 10);
-        Long rxpireTime = redisUtil.getExpire(key);
-        log.info("redisUtil.get -> {} rxpireTime -> {}", JSON.toJSONString(result), rxpireTime);
-        
-        Thread.sleep(2000l);
-        result = redisUtil.get(key, new TypeReference<Map<String, ReceiptHeader>>() {});
-        rxpireTime = redisUtil.getExpire(key);
-        log.info("redisUtil.get sleep 2s -> {} rxpireTime -> {}", JSON.toJSONString(result), rxpireTime);
-
-        Long count = redisUtil.decr("countKey", 10);
-         rxpireTime = redisUtil.getExpire("countKey");
-        log.info("countKey decr count -> {} rxpireTime -> {}", count, rxpireTime);
-        count = redisUtil.decr("countKey", 100);
-        rxpireTime = redisUtil.getExpire("countKey");
-        log.info("countKey decr count -> {} rxpireTime -> {}", count, rxpireTime);
-        
+//        log.info("redisUtil.get {} sleep 2s -> {} rxpireTime -> {}", key, JSON.toJSONString(value), rxpireTime);
+
+        Result result = handleMultiProcess("testRedis", paramMap.get("username"), new MultiProcessListener() {
+
+            @Override
+            @Transactional(timeout = 10)
+            public Result<?> doProcess() throws Exception {
+                LambdaUpdateWrapper<SysDataLog> updateWrapper = new UpdateWrapper().lambda();
+                updateWrapper.set(SysDataLog::getUpdateTime, new Date());
+                updateWrapper.eq(SysDataLog::getId, 10);
+                Thread.sleep(1000);
+                sysDataLogService.update(updateWrapper);
+                return new Result<>();
+            }
+
+        });
+
+//        Long count = redisUtil.decr("countKey", 10);
+//        rxpireTime = redisUtil.getExpire("countKey");
+//        log.info("countKey decr count -> {} rxpireTime -> {}", count, rxpireTime);
+//        count = redisUtil.decr("countKey", 100);
+//        rxpireTime = redisUtil.getExpire("countKey");
+//        log.info("countKey decr count -> {} rxpireTime -> {}", count, rxpireTime);
+
 //        Thread.sleep(2000l);
 //        count = redisUtil.get("countKey", Long.class);
 //        rxpireTime = redisUtil.getExpire("countKey");
@@ -95,8 +108,11 @@ public class TestController extends HuahengBaseController {
 //        rxpireTime = redisUtil.getExpire("countKey");
 //        log.info("countKey sleep 10s get -> {} rxpireTime -> {}", count, rxpireTime);
 //        log.info("countKey hasKey -> {}",redisUtil.hasKey("countKey"));
-        
 
-        return Result.OK(count);
+        return result;
+    }
+
+    private int generateInt(int min, int max) throws NoSuchAlgorithmException {
+        return (int)(min + SecureRandom.getInstanceStrong().nextDouble() * (max - min + 1));
     }
 }
diff --git a/huaheng-wms-core/src/main/resources/application-dev.yml b/huaheng-wms-core/src/main/resources/application-dev.yml
index fd71308..ff37593 100644
--- a/huaheng-wms-core/src/main/resources/application-dev.yml
+++ b/huaheng-wms-core/src/main/resources/application-dev.yml
@@ -47,7 +47,7 @@ spring:
       org:
         quartz:
           scheduler:
-            instanceName: Scheduler_Dev
+            instanceName: dev
             instanceId: AUTO
           jobStore:
             class: org.quartz.impl.jdbcjobstore.JobStoreTX
diff --git a/huaheng-wms-core/src/main/resources/application-prod.yml b/huaheng-wms-core/src/main/resources/application-prod.yml
index 12cec0e..701a2a6 100644
--- a/huaheng-wms-core/src/main/resources/application-prod.yml
+++ b/huaheng-wms-core/src/main/resources/application-prod.yml
@@ -47,7 +47,7 @@ spring:
       org:
         quartz:
           scheduler:
-            instanceName: Scheduler_Prod
+            instanceName: prod
             instanceId: AUTO
           jobStore:
             class: org.quartz.impl.jdbcjobstore.JobStoreTX
diff --git a/huaheng-wms-core/src/main/resources/application-test.yml b/huaheng-wms-core/src/main/resources/application-test.yml
index 8ac15fb..fe4ff8d 100644
--- a/huaheng-wms-core/src/main/resources/application-test.yml
+++ b/huaheng-wms-core/src/main/resources/application-test.yml
@@ -47,7 +47,7 @@ spring:
       org:
         quartz:
           scheduler:
-            instanceName: Scheduler_Test
+            instanceName: test
             instanceId: AUTO
           jobStore:
             class: org.quartz.impl.jdbcjobstore.JobStoreTX