Explorar el Código

批量保存对接人

licailing hace 4 años
padre
commit
3d37fe27f4

+ 5 - 0
pom.xml

@@ -266,6 +266,11 @@
             <version>1.6.2</version>
         </dependency>
 
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.3.8</version>
+        </dependency>
     </dependencies>
 
 </project>

+ 3 - 0
src/main/java/com/izouma/uwip/domain/Docking.java

@@ -6,6 +6,7 @@ import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.hibernate.annotations.Where;
 
 import javax.persistence.Entity;
 
@@ -14,8 +15,10 @@ import javax.persistence.Entity;
 @Builder
 @Entity
 @NoArgsConstructor
+@Where(clause = "del = 0")
 @ApiModel(value = "对接人")
 public class Docking extends BaseEntity {
+
     @ApiModelProperty(value = "客户id")
     private Long partnerId;
 

+ 17 - 1
src/main/java/com/izouma/uwip/service/DockingService.java

@@ -2,19 +2,35 @@ package com.izouma.uwip.service;
 
 import com.izouma.uwip.domain.Docking;
 import com.izouma.uwip.dto.PageQuery;
+import com.izouma.uwip.exception.BusinessException;
 import com.izouma.uwip.repo.DockingRepo;
 import com.izouma.uwip.utils.JpaUtils;
+import com.izouma.uwip.utils.ObjUtils;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service
 @AllArgsConstructor
 public class DockingService {
 
-    private DockingRepo dockingRepo;
+    private final DockingRepo dockingRepo;
 
     public Page<Docking> all(PageQuery pageQuery) {
         return dockingRepo.findAll(JpaUtils.toSpecification(pageQuery, Docking.class), JpaUtils.toPageRequest(pageQuery));
     }
+
+    public void batchSave(List<Docking> dockingList) {
+        dockingList.forEach(docking -> {
+            if (docking.getId() != null) {
+                Docking record = dockingRepo.findById(docking.getId()).orElseThrow(new BusinessException("无记录"));
+                ObjUtils.merge(record, docking);
+                dockingRepo.save(record);
+            } else {
+                dockingRepo.save(docking);
+            }
+        });
+    }
 }

+ 15 - 1
src/main/java/com/izouma/uwip/web/DockingController.java

@@ -1,11 +1,16 @@
 package com.izouma.uwip.web;
+
+import com.alibaba.fastjson.JSONObject;
+import com.aliyuncs.utils.StringUtils;
 import com.izouma.uwip.domain.Docking;
 import com.izouma.uwip.service.DockingService;
 import com.izouma.uwip.dto.PageQuery;
 import com.izouma.uwip.exception.BusinessException;
 import com.izouma.uwip.repo.DockingRepo;
 import com.izouma.uwip.utils.ObjUtils;
+import com.izouma.uwip.utils.SecurityUtils;
 import com.izouma.uwip.utils.excel.ExcelUtils;
+import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -20,7 +25,7 @@ import java.util.List;
 @AllArgsConstructor
 public class DockingController extends BaseController {
     private DockingService dockingService;
-    private DockingRepo dockingRepo;
+    private DockingRepo    dockingRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
@@ -56,5 +61,14 @@ public class DockingController extends BaseController {
         List<Docking> data = all(pageQuery).getContent();
         ExcelUtils.export(response, data);
     }
+
+    @PostMapping("/batchSave")
+    @ApiOperation("批量保存")
+    public void batchSave(String dockings) {
+        if (StringUtils.isNotEmpty(dockings)) {
+            List<Docking> dockingList = JSONObject.parseArray(dockings, Docking.class);
+            dockingService.batchSave(dockingList);
+        }
+    }
 }
 

+ 2 - 2
src/main/resources/templates/ControllerTemplate.ftl

@@ -28,8 +28,8 @@ import java.util.List;
 @RequestMapping("/${model.className?uncap_first}")
 @AllArgsConstructor
 public class ${model.className}Controller extends BaseController {
-    private ${model.className}Service ${model.className?uncap_first}Service;
-    private ${model.className}Repo ${model.className?uncap_first}Repo;
+    private final ${model.className}Service ${model.className?uncap_first}Service;
+    private final ${model.className}Repo ${model.className?uncap_first}Repo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")

+ 1 - 1
src/main/resources/templates/ServiceTemplate.ftl

@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service;
 @AllArgsConstructor
 public class ${model.className}Service {
 
-    private ${model.className}Repo ${model.className?uncap_first}Repo;
+    private final ${model.className}Repo ${model.className?uncap_first}Repo;
 
     public Page<${model.className}> all(PageQuery pageQuery) {
         return ${model.className?uncap_first}Repo.findAll(JpaUtils.toSpecification(pageQuery, ${model.className}.class), JpaUtils.toPageRequest(pageQuery));