Selaa lähdekoodia

feat: batch create plan 2

shc 9 kuukautta sitten
vanhempi
commit
37a814f7bd

+ 1 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysImplementPlanController.java

@@ -43,7 +43,7 @@ public class SysImplementPlanController {
 
     @SysLog("创建执行计划(批量)")
     @PostMapping("/plan/batch/create")
-    public R<Map<String, String>> createBatch(@RequestExcel(ignoreEmptyRow = true) List<SysImplementPlanDTO.OnBatchCreate> resource) {
+    public R<List<Map<String, String>>> createBatch(@RequestExcel(ignoreEmptyRow = true) List<SysImplementPlanDTO.OnBatchCreate> resource) {
 
         return R.ok(implementPlanManager.createBatch(resource, SecurityUtils.getUser()));
 

+ 17 - 12
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/SysImplementPlanManager.java

@@ -616,7 +616,7 @@ public class SysImplementPlanManager {
      * @param user     创建人
      * @return 创建结果
      */
-    public Map<String, String> createBatch(List<SysImplementPlanDTO.OnBatchCreate> resource, HnqzUser user) {
+    public List<Map<String, String>> createBatch(List<SysImplementPlanDTO.OnBatchCreate> resource, HnqzUser user) {
 
         // 获取商品列表
         Integer deptId = user.getDeptId();
@@ -629,7 +629,7 @@ public class SysImplementPlanManager {
                 .collect(Collectors.toMap(SysDept::getName, Function.identity(), (v1, v2) -> v1));
 
         // 校验表单信息
-        Map<String, String> errorMap = checkDataOnBatchCreate(resource, drugs, deptMap, deptId);
+        List<Map<String, String>> errorMap = checkDataOnBatchCreate(resource, drugs, deptMap, deptId);
         if (CollUtil.isNotEmpty(errorMap)) {
             log.info("错误信息:{}", errorMap);
             return errorMap;
@@ -683,7 +683,7 @@ public class SysImplementPlanManager {
 
         implementPlanService.saveBatch(collect);
 
-        return Collections.emptyMap();
+        return Collections.emptyList();
     }
 
     /**
@@ -691,26 +691,30 @@ public class SysImplementPlanManager {
      *
      * @param resource 校验信息
      */
-    private Map<String, String> checkDataOnBatchCreate(List<SysImplementPlanDTO.OnBatchCreate> resource,
-                                                       List<Map<String, String>> drugs,
-                                                       Map<String, SysDept> deptMap,
-                                                       Integer deptId) {
+    private List<Map<String, String>> checkDataOnBatchCreate(List<SysImplementPlanDTO.OnBatchCreate> resource,
+                                                             List<Map<String, String>> drugs,
+                                                             Map<String, SysDept> deptMap,
+                                                             Integer deptId) {
 
-        Map<String, String> errorMap = new HashMap<>(500);
+        List<Map<String, String>> errorlist = new LinkedList<>();
 
         int size = resource.size();
 
         // 校验size
         if (size == 0) {
+            Map<String, String> errorMap = new HashMap<>(2);
             errorMap.put("idx", "1");
             errorMap.put("errorMsg", "不能上传空表");
-            return errorMap;
+            errorlist.add(errorMap);
+            return errorlist;
         }
 
         if (size > 500) {
+            Map<String, String> errorMap = new HashMap<>(2);
             errorMap.put("idx", "500");
             errorMap.put("errorMsg", "单次支持最大批量数为500条");
-            return errorMap;
+            errorlist.add(errorMap);
+            return errorlist;
         }
 
         // 校验表单重复项
@@ -719,7 +723,6 @@ public class SysImplementPlanManager {
 
         // 校验信息项
         for (int i = 0; i < size; i++) {
-
             StringBuilder errorMsg = new StringBuilder();
             SysImplementPlanDTO.OnBatchCreate res = resource.get(i);
 
@@ -804,13 +807,15 @@ public class SysImplementPlanManager {
 
 
             if (StrUtil.isNotBlank(errorMsg)) {
+                Map<String, String> errorMap = new HashMap<>(2);
                 errorMap.put("idx", String.valueOf(i + 1));
                 errorMap.put("errorMsg", errorMsg.toString());
+                errorlist.add(errorMap);
             }
 
         }
 
 
-        return errorMap;
+        return errorlist;
     }
 }