From ec5237992ac60b6eb0df07ad3f5038b52a582882 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期五, 10 十一月 2023 11:42:26 +0800
Subject: [PATCH] Changes

---
 modules/mainPart/src/main/java/com/zt/life/modules/project/dto/SoftwareTestOrderDto.java               |    9 +-
 modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java       |   56 ++++++++++++++++++
 web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue                                        |   24 -------
 modules/mainPart/src/main/java/com/zt/life/modules/project/controller/SoftwareTestOrderController.java |   83 ++++++++++++++++-----------
 4 files changed, 109 insertions(+), 63 deletions(-)

diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/controller/SoftwareTestOrderController.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/controller/SoftwareTestOrderController.java
index b74ea00..0a7579e 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/project/controller/SoftwareTestOrderController.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/project/controller/SoftwareTestOrderController.java
@@ -12,13 +12,13 @@
 import com.zt.common.validator.group.AddGroup;
 import com.zt.common.validator.group.DefaultGroup;
 import com.zt.common.validator.group.UpdateGroup;
-import com.zt.life.modules.project.dto.ProjectDto;
+import com.zt.life.modules.project.dto.SoftwareTestOrderDto;
 import com.zt.life.modules.project.model.SoftwareTestOrder;
+import com.zt.life.modules.project.model.SoftwareTestOrderMeasured;
 import com.zt.life.modules.project.service.ProjectService;
 import com.zt.life.modules.project.service.SoftwareTestOrderDeliverableService;
 import com.zt.life.modules.project.service.SoftwareTestOrderMeasuredService;
 import com.zt.life.modules.project.service.SoftwareTestOrderService;
-import com.zt.life.modules.sysBaseInfo.model.TestAgencyInfo;
 import com.zt.life.modules.sysBaseInfo.service.TestAgencyInfoService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -28,24 +28,22 @@
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
-
 
 /**
  * software_test_order
  *
- * @author zt generator 
+ * @author zt generator
  * @since 1.0.0 2023-11-08
  */
 @RestController
 @RequestMapping("/project/SoftwareTestOrder/")
-@Api(tags="software_test_order")
+@Api(tags = "software_test_order")
 public class SoftwareTestOrderController {
     @Autowired
-    private ProjectService projectService;
-    @Autowired
     private SoftwareTestOrderService softwareTestOrderService;
+
+    @Autowired
+    private ProjectService projectService;
     @Autowired
     private SoftwareTestOrderDeliverableService softwareTestOrderDeliverableService;
     @Autowired
@@ -56,28 +54,43 @@
     @GetMapping("page")
     @ApiOperation("鍒嗛〉")
     @ApiImplicitParams({
-        @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT),
-        @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT),
-        @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING),
-        @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING),
-        @ApiImplicitParam(name = "testBasis", value = "娴嬭瘯渚濇嵁", dataType = Constant.QT.STRING, format = "test_basis^EQ"),
-        @ApiImplicitParam(name = "testType", value = "娴嬭瘯绫诲瀷", dataType = Constant.QT.STRING, format = "test_type^EQ"),
-        @ApiImplicitParam(name = "testStandard", value = "娴嬭瘯鏍囧噯", dataType = Constant.QT.STRING, format = "test_standard^EQ"),
-        @ApiImplicitParam(name = "articleNature", value = "鐗╁搧鎬ц川", dataType = Constant.QT.STRING, format = "article_nature^EQ")})
-    public PageResult<SoftwareTestOrder> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+            @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT),
+            @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT),
+            @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING),
+            @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING),
+            @ApiImplicitParam(name = "testBasis", value = "娴嬭瘯渚濇嵁", dataType = Constant.QT.STRING, format = "test_basis^EQ"),
+            @ApiImplicitParam(name = "testType", value = "娴嬭瘯绫诲瀷", dataType = Constant.QT.STRING, format = "test_type^EQ"),
+            @ApiImplicitParam(name = "testStandard", value = "娴嬭瘯鏍囧噯", dataType = Constant.QT.STRING, format = "test_standard^EQ"),
+            @ApiImplicitParam(name = "articleNature", value = "鐗╁搧鎬ц川", dataType = Constant.QT.STRING, format = "article_nature^EQ")})
+    public PageResult<SoftwareTestOrder> page(@ApiIgnore @QueryParam QueryFilter queryFilter) {
         return PageResult.ok(softwareTestOrderService.page(queryFilter));
     }
 
     @GetMapping("{id}")
     @ApiOperation("淇℃伅")
-    public Result<ProjectDto> get(@PathVariable("id") Long id){
-        ProjectDto data = new ProjectDto();
-        SoftwareTestOrder softwareTestOrder = softwareTestOrderService.get(id);
-        data.setSoftwareTestOrder(softwareTestOrder);
-        data.setProject(projectService.get(softwareTestOrder.getProjectId()));
-        data.setTestAgencyInfo(testAgencyInfoService.get(softwareTestOrder.getAgencyId()));
-        data.setChildrenTable2(softwareTestOrderDeliverableService.childrenTables(softwareTestOrder.getId()));
-        data.setChildrenTable1(softwareTestOrderMeasuredService.childrenTables(softwareTestOrder.getId()));
+    public Result<SoftwareTestOrderDto> get(@PathVariable("id") Long id, @PathVariable("projectId") Long projectId) {
+        SoftwareTestOrderDto data = new SoftwareTestOrderDto();
+
+        if (id != null) {
+            data.setId(id);
+            SoftwareTestOrder softwareTestOrder = softwareTestOrderService.get(id);
+            data.setSoftwareTestOrder(softwareTestOrder);
+
+            if (projectId == null)
+                projectId = softwareTestOrder.getProjectId();
+
+            data.setTestAgencyInfo(testAgencyInfoService.get(id));
+            data.setSoftwareTestOrderDeliverableList(softwareTestOrderDeliverableService.childrenTables(id));
+            data.setSoftwareTestOrderMeasuredList(softwareTestOrderMeasuredService.childrenTables(id));
+        } else {
+            data.setTestAgencyInfo(testAgencyInfoService.get(10000L));
+        }
+        if (projectId != null) {
+            data.setProjectId(projectId);
+            data.setProject(projectService.get(projectId));
+        }
+
+
         return Result.ok(data);
     }
 
@@ -85,10 +98,13 @@
     @PostMapping
     @ApiOperation("鏂板")
     @LogOperation("鏂板")
-    public Result insert(@RequestBody SoftwareTestOrder softwareTestOrder){
+    public Result insert(@RequestBody SoftwareTestOrderDto softwareTestOrderDto) {
         //鏁堥獙鏁版嵁
-        ValidatorUtils.validateEntity(softwareTestOrder, AddGroup.class, DefaultGroup.class);
-        softwareTestOrderService.insert(softwareTestOrder);
+
+        ValidatorUtils.validateEntity(softwareTestOrderDto.getSoftwareTestOrder(), AddGroup.class, DefaultGroup.class);
+
+        Boolean result = softwareTestOrderService.save(softwareTestOrderDto);
+
 
         return Result.ok();
     }
@@ -96,18 +112,17 @@
     @PutMapping
     @ApiOperation("淇敼")
     @LogOperation("淇敼")
-    public Result update(@RequestBody SoftwareTestOrder softwareTestOrder){
+    public Result update(@RequestBody SoftwareTestOrderDto softwareTestOrderDtor) {
         //鏁堥獙鏁版嵁
-        ValidatorUtils.validateEntity(softwareTestOrder, UpdateGroup.class, DefaultGroup.class);
-        softwareTestOrderService.update(softwareTestOrder);
-
+        ValidatorUtils.validateEntity(softwareTestOrderDtor.getSoftwareTestOrder(), UpdateGroup.class, DefaultGroup.class);
+        Boolean result = softwareTestOrderService.save(softwareTestOrderDtor);
         return Result.ok();
     }
 
     @DeleteMapping
     @ApiOperation("鍒犻櫎")
     @LogOperation("鍒犻櫎")
-    public Result delete(@RequestBody Long[] ids){
+    public Result delete(@RequestBody Long[] ids) {
         //鏁堥獙鏁版嵁
         AssertUtils.isArrayEmpty(ids, "id");
         softwareTestOrderService.delete(ids);
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/dto/ProjectDto.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/dto/SoftwareTestOrderDto.java
similarity index 71%
rename from modules/mainPart/src/main/java/com/zt/life/modules/project/dto/ProjectDto.java
rename to modules/mainPart/src/main/java/com/zt/life/modules/project/dto/SoftwareTestOrderDto.java
index 75abdc6..e86710d 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/project/dto/ProjectDto.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/project/dto/SoftwareTestOrderDto.java
@@ -13,14 +13,15 @@
 import java.util.List;
 
 @Data
-public class ProjectDto{
-
+public class SoftwareTestOrderDto {
+    private Long id;
+    private Long projectId;
     private SoftwareTestOrder softwareTestOrder;
     private Project project;
     private TestAgencyInfo TestAgencyInfo;
     @ApiModelProperty(value = "琚祴浠�")
-    private List<SoftwareTestOrderMeasured> childrenTable1 = new ArrayList<>();
+    private List<SoftwareTestOrderMeasured> softwareTestOrderMeasuredList = new ArrayList<>();
     @ApiModelProperty(value = "浜や粯浠�")
-    private List<SoftwareTestOrderDeliverable> childrenTable2 = new ArrayList<>();
+    private List<SoftwareTestOrderDeliverable> softwareTestOrderDeliverableList = new ArrayList<>();
 }
 
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
index 0c32f2e..0d66775 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
@@ -2,9 +2,15 @@
 
 import com.zt.common.service.BaseService;
 import com.zt.life.modules.project.dao.SoftwareTestOrderDao;
+import com.zt.life.modules.project.dto.SoftwareTestOrderDto;
 import com.zt.life.modules.project.model.SoftwareTestOrder;
+import com.zt.life.modules.project.model.SoftwareTestOrderDeliverable;
+import com.zt.life.modules.project.model.SoftwareTestOrderMeasured;
+import com.zt.life.modules.sysBaseInfo.service.TestAgencyInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.zt.common.db.query.QueryFilter;
+
 import javax.annotation.Resource;
 import java.util.List;
 
@@ -12,11 +18,20 @@
 /**
  * software_test_order
  *
- * @author zt generator 
+ * @author zt generator
  * @since 1.0.0 2023-11-08
  */
 @Service
-public class SoftwareTestOrderService  extends BaseService<SoftwareTestOrderDao, SoftwareTestOrder> {
+public class SoftwareTestOrderService extends BaseService<SoftwareTestOrderDao, SoftwareTestOrder> {
+
+    @Autowired
+    private ProjectService projectService;
+    @Autowired
+    private SoftwareTestOrderDeliverableService softwareTestOrderDeliverableService;
+    @Autowired
+    private SoftwareTestOrderMeasuredService softwareTestOrderMeasuredService;
+    @Autowired
+    private TestAgencyInfoService testAgencyInfoService;
 
     /**
      * 鍒嗛〉鏌ヨ
@@ -38,4 +53,41 @@
         super.deleteLogic(ids);
     }
 
+
+    public Boolean save(SoftwareTestOrderDto softwareTestOrderDto) {
+        Long softwareTestOrderId = softwareTestOrderDto.getSoftwareTestOrder().getId();
+        if (softwareTestOrderId != null)
+            baseDao.updateById(softwareTestOrderDto.getSoftwareTestOrder());
+        else {
+            baseDao.insert(softwareTestOrderDto.getSoftwareTestOrder());
+            softwareTestOrderId = softwareTestOrderDto.getSoftwareTestOrder().getId();
+        }
+
+        for (SoftwareTestOrderMeasured softwareTestOrderMeasured : softwareTestOrderDto.getSoftwareTestOrderMeasuredList()) {
+            softwareTestOrderMeasured.setOrderId(softwareTestOrderId);
+            if (softwareTestOrderMeasured.getId() != null) {
+                softwareTestOrderMeasuredService.update(softwareTestOrderMeasured);
+            } else {
+                softwareTestOrderMeasuredService.insert(softwareTestOrderMeasured);
+            }
+        }
+
+        for (SoftwareTestOrderDeliverable softwareTestOrderDeliverable : softwareTestOrderDto.getSoftwareTestOrderDeliverableList()) {
+            softwareTestOrderDeliverable.setOrderId(softwareTestOrderId);
+            if (softwareTestOrderDeliverable.getId() != null) {
+                softwareTestOrderDeliverableService.update(softwareTestOrderDeliverable);
+            } else {
+                softwareTestOrderDeliverableService.insert(softwareTestOrderDeliverable);
+            }
+        }
+
+        if (softwareTestOrderDto.getTestAgencyInfo().getId() == 10000) {
+            softwareTestOrderDto.getTestAgencyInfo().setId(softwareTestOrderId);
+            testAgencyInfoService.insert(softwareTestOrderDto.getTestAgencyInfo());
+        } else {
+            testAgencyInfoService.update(softwareTestOrderDto.getTestAgencyInfo());
+        }
+        return true;
+    }
+
 }
diff --git a/web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue b/web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue
index aba7907..1e5b06a 100644
--- a/web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue
+++ b/web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue
@@ -77,29 +77,7 @@
       return {
         dataForm: {
           id: '',
-          projectId: '',
-          optEnviron: '',
-          programLang: '',
-          testBasis: '',
-          testType: '',
-          testStandard: '',
-          startDate: '',
-          endDate: '',
-          testVenue: '',
-          otherRequire: '',
-          testDate: '',
-          deliveryDate: '',
-          testCost: '',
-          articleNature: '',
-          sampleStatus: '',
-          agencyName: '',
-          site: '',
-          businContact: '',
-          businComplaint: '',
-          laborContact: '',
-          labContactNum: '',
-          postalCode: '',
-          fax: ''
+          projectId: ''
         }
       }
     },

--
Gitblit v1.9.1