Pārlūkot izejas kodu

修复表单操作日志接口返回数据不对的bug

William 2 gadi atpakaļ
vecāks
revīzija
14be3f2d80

+ 9 - 3
src/main/java/org/springblade/flow/datalog/controller/FormDataLogController.java

@@ -14,12 +14,14 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 
 import cn.hutool.core.collection.CollUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * 表单数据操作记录控制器
@@ -27,6 +29,7 @@ import io.swagger.annotations.ApiOperation;
  * @author William
  * @date 2022年11月17日 上午11:54:32
  */
+@Slf4j
 @RestController
 @RequestMapping("/paas/visualdev/datalog")
 @Api(tags = "表单数据操作记录", value = "FormDataLog")
@@ -48,9 +51,10 @@ public class FormDataLogController {
 				List<FormDataLog> list = new ArrayList<>();
 				if (map.containsKey(item.getSn())) {
 					list = map.get(item.getSn());
-					list.add(item);
+				}else {
+					map.put(item.getSn(), list);
 				}
-				map.put(item.getSn(), list);
+				list.add(item);
 			});
 		}
 
@@ -58,9 +62,11 @@ public class FormDataLogController {
 			List<Kv> allList = new ArrayList<>();
 			Set<Long> keys = map.keySet();
 			keys.forEach(key -> {
+				List<FormDataLog> childList = map.get(key);
 				Kv kv = Kv.create();
 				kv.set("sn", key);
-				kv.set("items", map.get(key));
+				kv.set("operator", childList.get(0).getOperator());
+				kv.set("items", childList);
 				allList.add(kv);
 			});
 			return R.data(allList);

+ 0 - 9
src/main/java/org/springblade/flow/datalog/model/FormDataLog.java

@@ -34,15 +34,6 @@ public class FormDataLog implements Serializable {
 	private Long operatorId;
 
 	public FormDataLog() {
-		this(null);
-	}
-
-	public FormDataLog(FormDataLogType type) {
-		this(type, null);
-	}
-
-	public FormDataLog(FormDataLogType type, Integer columnId) {
-		this(type, null, null);
 	}
 
 	public FormDataLog(FormDataLogType type, Integer columnId, String formId) {

+ 4 - 4
src/main/java/org/springblade/flow/datalog/service/FormDataLogService.java

@@ -60,13 +60,13 @@ public class FormDataLogService extends ServiceImpl<FormDataLogMapper, FormDataL
 	 * @return
 	 */
 	private List<FormDataLog> diff(String formId, Map<String, Object> oldMap, Map<String, Object> newMap) {
-		if(oldMap==null) {
+		if (oldMap == null) {
 			oldMap = new HashMap<>();
 		}
-		if(newMap==null) {
+		if (newMap == null) {
 			newMap = new HashMap<>();
 		}
-		
+
 		List<FormDataLog> logList = new ArrayList<>();
 		long sn = IdWorker.getId();
 
@@ -101,7 +101,7 @@ public class FormDataLogService extends ServiceImpl<FormDataLogMapper, FormDataL
 				log.setValueNew(handleValue(newValue, columnData));
 			}
 
-			if (oldValue != null && newValue != null) {
+			if (oldValue != null && newValue != null && oldValue != newValue) {
 				// 更新
 				log = new FormDataLog(FormDataLogType.update, Integer.decode(columnId), formId);
 				log.setValueOld(handleValue(oldValue, columnData));

+ 3 - 2
src/main/java/org/springblade/flow/visual/onlinedev/common/excel/ExcelRead4SingleTableListener.java

@@ -20,7 +20,6 @@ import org.springblade.flow.visual.onlinedev.common.relation.RelationField;
 
 import com.alibaba.excel.context.AnalysisContext;
 import com.alibaba.excel.event.AnalysisEventListener;
-import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.github.xiaoymin.knife4j.core.util.StrUtil;
 
@@ -116,7 +115,8 @@ public class ExcelRead4SingleTableListener extends AnalysisEventListener<LinkedH
 		LinkedHashMap<Integer, String> temp = new LinkedHashMap<>();
 		for (ExcelFieldIndex fieldIndex : indexList) {
 			Integer index = fieldIndex.getIndex();
-			temp.put(index, data.get(index));
+			String value = data.get(index);
+			temp.put(index, value);
 		}
 		if (hasKey) {
 			temp.put(9999, IdWorker.getIdStr());
@@ -141,6 +141,7 @@ public class ExcelRead4SingleTableListener extends AnalysisEventListener<LinkedH
 	 */
 	private void saveData() {
 		log.info("insert sql is:" + insertSql);
+//		log.info("dataList is:" + JSON.toJSONString(dataList));
 		dynamicDataService.batchSave(ds, insertSql, BATCH_COUNT, headerMap, dataList);
 		total += dataList.size();
 		log.info("存储数据库成功!");