From 1368918fcda9d88bea653cc3a134b245a338d84c Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期三, 15 十一月 2023 10:07:14 +0800
Subject: [PATCH] Changes

---
 modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java |  178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 174 insertions(+), 4 deletions(-)

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..31ac0db 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
@@ -1,22 +1,58 @@
 package com.zt.life.modules.project.service;
 
 import com.zt.common.service.BaseService;
+import com.zt.core.sys.dto.DictDto;
+import com.zt.core.sys.dto.DictItemDto;
+import com.zt.core.sys.dto.DictLeafDto;
+import com.zt.life.export.dto.WordFile;
+import com.zt.life.export.service.WordFileService;
 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 com.zt.modules.coderule.service.SysCodeRuleService;
+import com.zt.modules.sys.service.SysDictTypeService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.zt.common.db.query.QueryFilter;
-import javax.annotation.Resource;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.FileNotFoundException;
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 
 /**
  * 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;
+    @Autowired
+    private SysCodeRuleService sysCodeRuleService;
+
+    @Autowired
+    private SysDictTypeService sysDictTypeService;
+    @Autowired
+    private WordFileService wordFileService;
 
     /**
      * 鍒嗛〉鏌ヨ
@@ -25,7 +61,8 @@
      * @return
      */
     public List<SoftwareTestOrder> page(QueryFilter queryFilter) {
-        return baseDao.getList(queryFilter.getQueryParams());
+        List<SoftwareTestOrder> list = baseDao.getList(queryFilter.getQueryParams());
+        return list;
     }
 
 
@@ -38,4 +75,137 @@
         super.deleteLogic(ids);
     }
 
+
+    public Boolean save(SoftwareTestOrderDto softwareTestOrderDto) {
+        Long softwareTestOrderId = softwareTestOrderDto.getSoftwareTestOrder().getId();
+        if (softwareTestOrderId != null)
+            baseDao.updateById(softwareTestOrderDto.getSoftwareTestOrder());
+        else {
+            Map<String, String> map = new HashMap<>();
+            map.put("funCode", "software_test_order");
+            softwareTestOrderDto.getSoftwareTestOrder().setProjectId(softwareTestOrderDto.getProjectId());
+            softwareTestOrderDto.getSoftwareTestOrder().setCode(sysCodeRuleService.getNewCode(map));
+            baseDao.insert(softwareTestOrderDto.getSoftwareTestOrder());
+            softwareTestOrderId = softwareTestOrderDto.getSoftwareTestOrder().getId();
+        }
+
+        for (SoftwareTestOrderMeasured softwareTestOrderMeasured : softwareTestOrderDto.getMeasuredList()) {
+            softwareTestOrderMeasured.setOrderId(softwareTestOrderId);
+            if (softwareTestOrderMeasured.getId() != null) {
+                softwareTestOrderMeasuredService.update(softwareTestOrderMeasured);
+            } else {
+                softwareTestOrderMeasured.setOrderId(softwareTestOrderId);
+                softwareTestOrderMeasuredService.insert(softwareTestOrderMeasured);
+            }
+        }
+
+        for (SoftwareTestOrderDeliverable softwareTestOrderDeliverable : softwareTestOrderDto.getDeliverableList()) {
+            softwareTestOrderDeliverable.setOrderId(softwareTestOrderId);
+            if (softwareTestOrderDeliverable.getId() != null) {
+                softwareTestOrderDeliverableService.update(softwareTestOrderDeliverable);
+            } else {
+                softwareTestOrderDeliverable.setOrderId(softwareTestOrderId);
+                softwareTestOrderDeliverableService.insert(softwareTestOrderDeliverable);
+            }
+        }
+
+        if (softwareTestOrderDto.getTestAgencyInfo().getId() == 10000) {
+            softwareTestOrderDto.getTestAgencyInfo().setId(softwareTestOrderId);
+            testAgencyInfoService.insert(softwareTestOrderDto.getTestAgencyInfo());
+        } else {
+            testAgencyInfoService.update(softwareTestOrderDto.getTestAgencyInfo());
+        }
+        return true;
+    }
+
+    public SoftwareTestOrderDto getDto(Long projectId,Long orderId) {
+        SoftwareTestOrderDto data = new SoftwareTestOrderDto();
+        if (orderId != null) {
+            data.setId(orderId);
+            SoftwareTestOrder softwareTestOrder = this.get(orderId);
+            data.setSoftwareTestOrder(softwareTestOrder);
+            projectId = softwareTestOrder.getProjectId();
+
+            data.setTestAgencyInfo(testAgencyInfoService.get(orderId));
+
+            List<SoftwareTestOrderDeliverable> deliverableList = softwareTestOrderDeliverableService.childrenTables(orderId);
+            data.setDeliverableList(deliverableList);
+
+            List<SoftwareTestOrderMeasured> measuredList = softwareTestOrderMeasuredService.childrenTables(orderId);
+            data.setMeasuredList(measuredList);
+        } else {
+            List<?> testItemResult = baseDao.dictList("testItem_type");
+            List<?> measuredList = testItemResult;
+            data.setMeasuredList((List<SoftwareTestOrderMeasured>) measuredList);
+
+            List<?> productLibraryResult = baseDao.dictList("product_library_file");
+            List<?> deliverableList = productLibraryResult;
+            data.setDeliverableList((List<SoftwareTestOrderDeliverable>) deliverableList);
+        }
+
+        if (data.getTestAgencyInfo() == null)
+            data.setTestAgencyInfo(testAgencyInfoService.get(10000L));
+
+        if (projectId != null) {
+            data.setProjectId(projectId);
+            data.setProject(projectService.get(projectId));
+        }
+        return data;
+    }
+
+    public void exportWord(Long id, HttpServletRequest request, HttpServletResponse response) {
+        WordFile wordFile = new WordFile();
+        wordFile.setModulePath("aaaa");
+        wordFile.setWordName("aaa");
+        SoftwareTestOrderDto dataObj = this.getDto(id, null);
+
+        List<DictDto> userDicts = sysDictTypeService.getUserDicts();
+        DictDto testType1Dict = userDicts.stream()
+                .filter(c -> c.getDictType().equals("test_type1"))
+                .collect(Collectors.toList()).get(0);
+
+        List<String> testType11 = new ArrayList<>();
+        List<String> testType12 = new ArrayList<>();
+        List<String> testType21 = new ArrayList<>();
+        List<String> testType22 = new ArrayList<>();
+
+        int i = 0;
+        String testType = "," + dataObj.getSoftwareTestOrder().getTestType1() + ",";
+        for (DictItemDto dictItemDto : ((DictLeafDto) testType1Dict).getDataList()) {
+            String value = dictItemDto.getDictValue();
+            String desc = (testType.contains("," + value + ",") ? "鈽�" : "鈻�") + dictItemDto.getDictLabel();
+            if ((i++) % 2 == 0) {
+                testType12.add(desc);
+            } else {
+                testType11.add(desc);
+            }
+        }
+
+        i = 0;
+        testType = "," + dataObj.getSoftwareTestOrder().getTestType2() + ",";
+        for (DictItemDto dictItemDto : ((DictLeafDto) testType1Dict).getDataList()) {
+            String value = dictItemDto.getDictValue();
+            String desc = (testType.contains("," + value + ",") ? "鈽�" : "鈻�") + dictItemDto.getDictLabel();
+            if ((i++) % 2 == 0) {
+                testType22.add(desc);
+            } else {
+                testType21.add(desc);
+            }
+        }
+
+        dataObj.getSoftwareTestOrder().setTestType11(testType11);
+        dataObj.getSoftwareTestOrder().setTestType12(testType12);
+        dataObj.getSoftwareTestOrder().setTestType21(testType21);
+        dataObj.getSoftwareTestOrder().setTestType22(testType22);
+
+        List<Object> measuredList = new ArrayList<>();
+
+        try {
+            wordFileService.exportWordFile(request, dataObj, wordFile, response);
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        }
+    }
 }

--
Gitblit v1.9.1