From f2833c7f3e01c997e94a66bd5dd9be738b5c6cc7 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 26 六月 2025 13:31:08 +0800
Subject: [PATCH] 波次任务下发功能优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaveItem.java               |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveItemController.java |    6 +-
 rsf-admin/src/page/orders/wave/WaveItemList.jsx                                            |   19 +++--
 rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java          |    7 ++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java  |   62 +++++++++++---------
 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/WaveItemExceStatus.java      |    6 +-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/WaveExceStatus.java          |    6 +-
 rsf-server/src/main/resources/application.yml                                              |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Wave.java                   |   27 +++++----
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/WaveSchedules.java       |   38 +++++++-----
 10 files changed, 100 insertions(+), 75 deletions(-)

diff --git a/rsf-admin/src/page/orders/wave/WaveItemList.jsx b/rsf-admin/src/page/orders/wave/WaveItemList.jsx
index 7dfda50..0439bed 100644
--- a/rsf-admin/src/page/orders/wave/WaveItemList.jsx
+++ b/rsf-admin/src/page/orders/wave/WaveItemList.jsx
@@ -37,6 +37,7 @@
 } from 'react-admin';
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
 import PauseCircleOutlineIcon from '@mui/icons-material/PauseCircleOutline';
+import StopCircleOutlinedIcon from '@mui/icons-material/StopCircleOutlined';
 import PlayArrowOutlinedIcon from '@mui/icons-material/PlayArrowOutlined';
 import { Box, Typography, Card, Stack } from '@mui/material';
 import ContentCreate from '@mui/icons-material/Create';
@@ -150,7 +151,7 @@
                     <TextField source="memo" label="common.field.memo" sortable={false} />
                     <TextField source="exceStatus$" label="table.field.waveItem.exceStatus" />
                     <WrapperField cellClassName="opt" label="common.field.opt">
-                        <BulkPauseButton />
+                        <PauseButton />
                         <ContinueButton />
                     </WrapperField>
                 </StyledDatagrid>
@@ -209,36 +210,38 @@
     )
 }
 
-const BulkPauseButton = () => {
-    const { data, selectedIds, onUnselectItems } = useListContext();
+const PauseButton = () => {
     const notify = useNotify()
+    const refresh = useRefresh();
     const record = useRecordContext();
     const pauseClick = async () => {
-        const { data: { code, data, msg } } = await request.post('/waveItem/pause/pub', { wave: waveId, waveItem: selectedIds });
+        const { data: { code, data, msg } } = await request.post('/waveItem/pause/pub/' + record?.id);
         if (code === 200) {
             notify(msg);
         } else {
             notify(msg);
         }
+        refresh()
     }
     return (
-        record?.exceStatus == 1 ? <Button label="toolbar.pause" onClick={pauseClick} startIcon={<PauseCircleOutlineIcon />} /> : <></>
+        record?.exceStatus == 1 ? <Button label="toolbar.pause" onClick={pauseClick} startIcon={<StopCircleOutlinedIcon />} /> : <></>
     )
 }
 
 const ContinueButton = () => {
-    const { data, selectedIds, onUnselectItems } = useListContext();
     const notify = useNotify()
+    const refresh = useRefresh();
     const record = useRecordContext();
     const continueClick = async () => {
-        const { data: { code, data, msg } } = await request.post('/waveItem/continue/pub', { wave: waveId, waveItem: selectedIds });
+        const { data: { code, data, msg } } = await request.post('/waveItem/continue/pub/' + record?.id);
         if (code === 200) {
             notify(msg);
         } else {
             notify(msg);
         }
+        refresh()
     }
     return (
-        record?.exceStatus == 4 ? <Button label="toolbar.continuePub" onClick={continueClick} startIcon={<PauseCircleOutlineIcon />} /> : <></>
+        record?.exceStatus == 2 ? <Button label="toolbar.continuePub" onClick={continueClick} startIcon={<PauseCircleOutlineIcon />} /> : <></>
     )
 }
\ No newline at end of file
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveItemController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveItemController.java
index e99ef55..79ecc2a 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveItemController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveItemController.java
@@ -113,7 +113,7 @@
 
     @PreAuthorize("hasAuthority('manager:waveItem:update')")
     @ApiOperation("鏆傚仠涓嬪彂浠诲姟")
-    @PostMapping("/waveItem/pause/pub")
+    @PostMapping("/waveItem/pause/pub/{id}")
     public R pausePublicTask(@PathVariable Long id) {
          waveItemService.update(new LambdaUpdateWrapper<WaveItem>()
                  .eq(WaveItem::getId, id)
@@ -123,11 +123,11 @@
 
     @PreAuthorize("hasAuthority('manager:waveItem:update')")
     @ApiOperation("缁х画涓嬪彂浠诲姟")
-    @PostMapping("/waveItem/continue/pub")
+    @PostMapping("/waveItem/continue/pub/{id}")
     public R continuePublicTask(@PathVariable Long id) {
         waveItemService.update(new LambdaUpdateWrapper<WaveItem>()
                 .eq(WaveItem::getId, id)
-                .set(WaveItem::getExceStatus, WaveItemExceStatus.WAVE_ITEM_EXCE_STATUS_UN.val));
+                .set(WaveItem::getExceStatus, WaveItemExceStatus.WAVE_EXCE_STATUS_ING.val));
         return R.ok();
     }
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Wave.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Wave.java
index cfd4a73..0572776 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Wave.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Wave.java
@@ -3,7 +3,11 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.vincent.rsf.server.system.constant.DictTypeCode;
+import com.vincent.rsf.server.system.entity.DictData;
+import com.vincent.rsf.server.system.service.DictDataService;
 import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.text.SimpleDateFormat;
@@ -23,6 +27,7 @@
 import com.vincent.rsf.server.system.entity.User;
 import java.io.Serializable;
 import java.util.Date;
+import java.util.Objects;
 
 @Data
 @TableName("man_wave")
@@ -185,19 +190,17 @@
     }
 
     public String getExceStatus$(){
-        if (null == this.exceStatus){ return null; }
-        switch (this.exceStatus){
-            case 0:
-                return "鍒濆鍖�";
-            case 1:
-                return "鐢熸垚浠诲姟";
-            case 2:
-                return "浠诲姟鎾";
-            case 3:
-                return "瀹屾垚";
-            default:
-                return String.valueOf(this.exceStatus);
+        if (Cools.isEmpty(this.exceStatus)) {
+            return null;
         }
+        DictDataService dictDataService = SpringUtils.getBean(DictDataService.class);
+        DictData dictDatas = dictDataService.getOne(new LambdaQueryWrapper<DictData>()
+                .eq(DictData::getDictTypeCode, DictTypeCode.SYS_WAVE_EXCE_STATUS)
+                .eq(DictData::getValue, this.exceStatus));
+        if (Objects.isNull(dictDatas) || Objects.isNull(dictDatas.getLabel())) {
+            return null;
+        }
+        return dictDatas.getValue() + "." + dictDatas.getLabel();
     }
 
     public String getStatus$(){
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaveItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaveItem.java
index 971ec72..23c85fb 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaveItem.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaveItem.java
@@ -270,7 +270,7 @@
         }
         DictDataService dictDataService = SpringUtils.getBean(DictDataService.class);
         DictData dictDatas = dictDataService.getOne(new LambdaQueryWrapper<DictData>()
-                .eq(DictData::getDictTypeCode, DictTypeCode.SYS_WAVE_EXCE_STATUS)
+                .eq(DictData::getDictTypeCode, DictTypeCode.SYS_WAVE_ITEM_EXCE_STATUS)
                 .eq(DictData::getValue, this.exceStatus));
         if (Objects.isNull(dictDatas) || Objects.isNull(dictDatas.getLabel())) {
             return null;
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/WaveExceStatus.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/WaveExceStatus.java
index a590c90..eb60648 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/WaveExceStatus.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/WaveExceStatus.java
@@ -11,9 +11,9 @@
 
     //娉㈡鎵ц鐘舵��
     WAVE_EXCE_STATUS_INIT("0", "鍒濆鍖�"),
-    WAVE_EXCE_STATUS_TASK("1", "鐢熸垚浠诲姟"),
-    WAVE_EXCE_STATUS_SPEED("2", "鎾浠诲姟"),
-    WAVE_EXCE_STATUS_DONE("3", "瀹屾垚"),
+    WAVE_EXCE_STATUS_EXCING("1", "鎵ц涓�"),
+    WAVE_EXCE_STATUS_TASK("2", "鐢熸垚浠诲姟"),
+    WAVE_EXCE_STATUS_DONE("3", "浠诲姟瀹屾垚"),
     ;
 
     WaveExceStatus(String val, String desc) {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/WaveItemExceStatus.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/WaveItemExceStatus.java
index 328b013..98d7303 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/WaveItemExceStatus.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/WaveItemExceStatus.java
@@ -13,9 +13,9 @@
     //娉㈡鎵ц鐘舵��
     WAVE_ITEM_EXCE_STATUS_UN("0", "鏈墽琛�"),
     WAVE_EXCE_STATUS_ING("1", "鎵ц涓�"),
-    WAVE_EXCE_STATUS_SEED("2", "宸蹭笅鍙�"),
-    WAVE_ITEM_EXCE_PAUSE("4", "鏆傚仠"),
-    WAVE_EXCE_STATUS_DONE("3", "涓嬪彂瀹屾垚"),
+    WAVE_ITEM_EXCE_PAUSE("2", "鏆傚仠"),
+    WAVE_EXCE_STATUS_PUBD("3", "宸蹭笅鍙�"),
+    WAVE_EXCE_STATUS_DONE("4", "浠诲姟瀹屾垚"),
     ;
 
     WaveItemExceStatus(String val, String desc) {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/WaveSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/WaveSchedules.java
index 165262d..a571ee6 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/WaveSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/WaveSchedules.java
@@ -2,6 +2,7 @@
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.vincent.rsf.framework.exception.CoolException;
 import com.vincent.rsf.server.common.constant.Constants;
 import com.vincent.rsf.server.manager.entity.Wave;
@@ -10,6 +11,7 @@
 import com.vincent.rsf.server.manager.enums.WaveItemExceStatus;
 import com.vincent.rsf.server.manager.service.WaveItemService;
 import com.vincent.rsf.server.manager.service.WaveService;
+import com.vincent.rsf.server.manager.service.impl.TaskItemServiceImpl;
 import com.vincent.rsf.server.system.constant.GlobalConfigCode;
 import com.vincent.rsf.server.system.entity.Config;
 import com.vincent.rsf.server.system.service.ConfigService;
@@ -19,10 +21,7 @@
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -44,7 +43,8 @@
 
     @Autowired
     private ConfigService configService;
-
+    @Autowired
+    private TaskItemServiceImpl taskItemService;
 
 
     /**
@@ -55,23 +55,30 @@
     * @time 2025/6/23 13:52
     */
     @Scheduled(cron = "0/15 * * * * ?")
-    @Transactional(rollbackFor = Exception.class)
+//    @Transactional(rollbackFor = Exception.class)
     public void autoGenerateTask() {
         Config config = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.WAVE_AUTO_EXCE_TASK));
         if (Objects.isNull(config) || !Boolean.parseBoolean(config.getVal())) {
             return;
         }
-        List<Wave> list = waveService.list(new LambdaQueryWrapper<Wave>()
-                        .select(Wave::getId)
-                        .eq(Wave::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_INIT.val));
-        if (list.isEmpty()) {
-            return;
-        }
-        List<Long> longs = list.stream().map(Wave::getId).collect(Collectors.toList());
+//        List<Wave> list = waveService.list(new LambdaQueryWrapper<Wave>()
+//                        .select(Wave::getId)
+//                        .in(Wave::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_INIT.val
+//                                , WaveExceStatus.WAVE_EXCE_STATUS_EXCING.val));
+//        if (list.isEmpty()) {
+//            return;
+//        }
+//        List<Long> longs = list.stream().map(Wave::getId).collect(Collectors.toList());
 
         List<WaveItem> waveItems = waveItemService.list(new LambdaQueryWrapper<WaveItem>()
-                .in(WaveItem::getWaveId, longs)
-                .eq(WaveItem::getExceStatus, WaveItemExceStatus.WAVE_ITEM_EXCE_STATUS_UN.val));
+                .in(WaveItem::getExceStatus, Arrays.asList(WaveItemExceStatus.WAVE_ITEM_EXCE_STATUS_UN.val
+                        , WaveItemExceStatus.WAVE_EXCE_STATUS_ING.val)));
+
+        waveItemService.update(new LambdaUpdateWrapper<WaveItem>()
+                .set(WaveItem::getExceStatus, WaveItemExceStatus.WAVE_EXCE_STATUS_ING.val)
+                .apply("anfme > work_qty")
+        );
+
         if (waveItems.isEmpty()) {
             return;
         }
@@ -85,4 +92,5 @@
             waveService.waveToTask(params, loginUserId);
         });
     }
+
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java
index e73c78f..96dcb4b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java
@@ -138,6 +138,12 @@
             throw new CoolException("娉㈡鏄庣粏涓嶅瓨鍦紒锛�");
         }
 
+        if (!waveItemService.update(new LambdaUpdateWrapper<WaveItem>()
+                .set(WaveItem::getExceStatus, WaveItemExceStatus.WAVE_EXCE_STATUS_ING.val)
+                .in(WaveItem::getId, waveItems))) {
+            throw new CoolException("鎵ц鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+        }
+
         WaveRule waveRule = waveRuleService.getOne(new LambdaQueryWrapper<WaveRule>()
                 .eq(WaveRule::getType, WaveRuleType.First_In_First_Out.type));
         if (Cools.isEmpty(waveRule)) {
@@ -154,7 +160,14 @@
             params.add(locParams);
         }
         List<OrderOutItemDto> results = LocManageUtil.getOutOrderList(params, waveRule);
-
+        if (results.isEmpty()) {
+            waveService.update(new LambdaUpdateWrapper<Wave>()
+                    .set(Wave::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_EXCING.val)
+                    .set(Wave::getUpdateBy, loginUserId)
+                    .set(Wave::getUpdateTime, new Date())
+                    .eq(Wave::getId, waveId));
+            return R.ok();
+        }
         /**鐢熸垚鍑哄簱浠诲姟*/
         try {
             generateOutTask(results, loginUserId, waves);
@@ -163,21 +176,36 @@
             throw new CoolException(e.getMessage());
         }
 
-        List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>().in(TaskItem::getSource, waveItems));
+        List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>()
+                .in(TaskItem::getSource, waveItems));
         if (Cools.isEmpty(taskItems)) {
-            throw new CoolException("鏁版嵁閿欒锛氭尝娆℃槑缁嗗凡涓嶅瓨鍦紒锛�");
+            throw new CoolException("鏆傛棤鍚堥�傚簱瀛樹俊鎭紒锛�");
         }
         for (TaskItem item : taskItems) {
+            WaveItem waveItem = waveItemService.getById(item.getSource());
+
+            Double workQty = Math.round((waveItem.getWorkQty() + item.getAnfme()) * 10000) / 10000.0;
+            waveItem.setWorkQty(workQty);
+            if (workQty.compareTo(waveItem.getAnfme()) < 0) {
+                waveItem.setExceStatus(WaveItemExceStatus.WAVE_EXCE_STATUS_ING.val);
+            } else {
+                waveItem.setExceStatus(WaveItemExceStatus.WAVE_EXCE_STATUS_PUBD.val);
+            }
+
             if (!waveItemService.update(new LambdaUpdateWrapper<WaveItem>()
-                    .set(WaveItem::getExceStatus, WaveItemExceStatus.WAVE_EXCE_STATUS_ING.val)
-                    .set(WaveItem::getWorkQty, item.getAnfme())
-                    .in(WaveItem::getId, waveItems))) {
+                    .set(WaveItem::getExceStatus, WaveItemExceStatus.WAVE_EXCE_STATUS_PUBD.val)
+                    .setSql("work_qty = work_qty + " + item.getAnfme())
+                    .set(WaveItem::getUpdateBy, loginUserId)
+                    .set(WaveItem::getUpdateTime, new Date())
+                    .eq(WaveItem::getId, item.getSource()))) {
                 throw new CoolException("涓嬪彂鎵ц寮傚父锛岃绋嶅�欓噸璇曪紒");
             }
         }
         if (!waveService.update(new LambdaUpdateWrapper<Wave>()
                 .set(Wave::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_TASK.val)
                 .set(Wave::getWorkQty, taskItems.stream().mapToDouble(TaskItem::getAnfme).sum())
+                .set(Wave::getUpdateBy, loginUserId)
+                .set(Wave::getUpdateTime, new Date())
                 .eq(Wave::getId, waveId))) {
             throw new CoolException("娉㈡鐘舵�佷慨鏀瑰け璐ワ紒锛�");
         }
@@ -196,7 +224,6 @@
     @Synchronized
     @Transactional(rollbackFor = Exception.class)
     public void generateOutTask(List<OrderOutItemDto> itemParams, Long loginUserId, Wave wave) throws Exception {
-
         for (OrderOutItemDto itemDto : itemParams) {
             LocToTaskParams taskParams = new LocToTaskParams();
             Loc loc = locService.getById(itemDto.getLocId());
@@ -210,27 +237,6 @@
                     .setTarLoc(loc.getCode());
             locItemService.generateTask(TaskResouceType.TASK_RESOUCE_WAVE_TYPE.val, taskParams, loginUserId);
         }
-
-//            /**淇敼娉㈡鎵ц鏁伴噺*/
-//            taskItems.forEach(item -> {
-//                boolean update = waveItemService.update(new LambdaUpdateWrapper<WaveItem>()
-//                        .eq(WaveItem::getId, item.getSource())
-//                        .set(WaveItem::getExceStatus, WaveItemExceStatus.WAVE_EXCE_STATUS_SEED.val)
-//                        .set(WaveItem::getWorkQty, item.getAnfme()));
-//                if (!update) {
-//                    throw new CoolException("娉㈡鎵ц鏁伴噺淇敼澶辫触锛侊紒");
-//                }
-//            });
-//
-//            List<WaveItem> waveItems = waveItemService.list(new LambdaQueryWrapper<WaveItem>().eq(WaveItem::getWaveId, wave.getId()));
-//            double sum = waveItems.stream().mapToDouble(WaveItem::getWorkQty).sum();
-//            /**娉㈡涓诲崟淇℃伅淇敼*/
-//            if (!this.update(new LambdaUpdateWrapper<Wave>()
-//                    .eq(Wave::getId, wave.getId())
-//                    .set(Wave::getWorkQty, sum)
-//                    .set(Wave::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_TASK.val))) {
-//                throw new CoolException("娉㈡涓诲崟淇℃伅淇敼澶辫触锛侊紒");
-//            }
     }
 
     /**
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java
index 135674c..e7b98cb 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java
@@ -71,8 +71,13 @@
     public final static String SYS_WAVE_RULE_CODE =  "sys_wave_rule_code";
 
     /**
+     * 娉㈡鏄庣粏涓嬪彂鎵ц鐘舵��
+     */
+    public final static String SYS_WAVE_ITEM_EXCE_STATUS =  "sys_wave_item_exce_status";
+
+
+    /**
      * 娉㈡涓嬪彂鎵ц鐘舵��
      */
     public final static String SYS_WAVE_EXCE_STATUS =  "sys_wave_exce_status";
-
 }
diff --git a/rsf-server/src/main/resources/application.yml b/rsf-server/src/main/resources/application.yml
index db51329..ac31a5b 100644
--- a/rsf-server/src/main/resources/application.yml
+++ b/rsf-server/src/main/resources/application.yml
@@ -25,7 +25,7 @@
   #  global-config:
   #    field-strategy: 0
   configuration:
-    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
     map-underscore-to-camel-case: true
     cache-enabled: true
     call-setters-on-nulls: true

--
Gitblit v1.9.1