| | |
| | | package com.zt.life.modules.project.service; |
| | | |
| | | import com.zt.common.service.BaseService; |
| | | import com.zt.common.utils.CommonUtils; |
| | | 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.modules.mainPart.utils.GetShowDictList; |
| | | 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.Project; |
| | | 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.life.sys.service.SysOssConfigService; |
| | | import com.zt.modules.coderule.service.SysCodeRuleService; |
| | | import com.zt.modules.oss.service.SysOssService; |
| | | import com.zt.modules.sys.service.SysDictTypeService; |
| | | import lombok.val; |
| | | 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.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | |
| | |
| | | */ |
| | | @Service |
| | | public class SoftwareTestOrderService extends BaseService<SoftwareTestOrderDao, SoftwareTestOrder> { |
| | | |
| | | @Autowired |
| | | private ProjectService projectService; |
| | | @Autowired |
| | |
| | | private SysDictTypeService sysDictTypeService; |
| | | @Autowired |
| | | private WordFileService wordFileService; |
| | | @Autowired |
| | | private GetShowDictList getShowDictList; |
| | | |
| | | @Autowired |
| | | private SysOssConfigService sysOssConfigService; |
| | | |
| | | @Autowired |
| | | private SysOssService sysOssService; |
| | | |
| | | /** |
| | | * 分页查询 |
| | |
| | | */ |
| | | public List<SoftwareTestOrder> page(QueryFilter queryFilter) { |
| | | List<SoftwareTestOrder> list = baseDao.getList(queryFilter.getQueryParams()); |
| | | if (list != null && list.size() > 0) { |
| | | sysOssService.setListOsses(list, "test_order"); |
| | | } |
| | | return list; |
| | | } |
| | | |
| | |
| | | else { |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("funCode", "software_test_order"); |
| | | map.put("projectId",softwareTestOrderDto.getProjectId().toString()); |
| | | softwareTestOrderDto.getSoftwareTestOrder().setProjectId(softwareTestOrderDto.getProjectId()); |
| | | softwareTestOrderDto.getSoftwareTestOrder().setCode(sysCodeRuleService.getNewCode(map)); |
| | | baseDao.insert(softwareTestOrderDto.getSoftwareTestOrder()); |
| | |
| | | } else { |
| | | testAgencyInfoService.update(softwareTestOrderDto.getTestAgencyInfo()); |
| | | } |
| | | sysOssConfigService.updateOss(softwareTestOrderDto.getId(), softwareTestOrderDto.getFiles());// 保存附件 |
| | | return true; |
| | | } |
| | | |
| | | public SoftwareTestOrderDto getDto(Long orderId, Long projectId) { |
| | | 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); |
| | | |
| | | /* if (projectId == null) |
| | | projectId = softwareTestOrder.getProjectId(); |
| | | projectId = softwareTestOrder.getProjectId(); |
| | | |
| | | data.setTestAgencyInfo(testAgencyInfoService.get(orderId)); |
| | | */ |
| | | List<SoftwareTestOrderDeliverable> deliverableList = softwareTestOrderDeliverableService.childrenTables(orderId); |
| | | |
| | | List<SoftwareTestOrderDeliverable> deliverableList = softwareTestOrderDeliverableService.getList(orderId); |
| | | data.setDeliverableList(deliverableList); |
| | | |
| | | List<SoftwareTestOrderMeasured> measuredList = softwareTestOrderMeasuredService.childrenTables(orderId); |
| | | List<SoftwareTestOrderMeasured> measuredList = softwareTestOrderMeasuredService.getList(orderId); |
| | | data.setMeasuredList(measuredList); |
| | | } else { |
| | | List<SoftwareTestOrderDeliverable> deliverableList = baseDao.getdeliverableDictList(); |
| | | List<SoftwareTestOrderMeasured> measuredList = baseDao.getMeasuredDictList(); |
| | | data.setTestAgencyInfo(testAgencyInfoService.get(10000L)); |
| | | Project project = projectService.get(projectId); |
| | | String projectCode = project.getCode(); |
| | | String softIdentity =project.getSoftwareIdentity(); |
| | | List<?> testItemResult = baseDao.dictList("testItem_type", projectCode,softIdentity); |
| | | List<?> measuredList = testItemResult; |
| | | data.setMeasuredList((List<SoftwareTestOrderMeasured>) measuredList); |
| | | |
| | | List<?> productLibraryResult = baseDao.dictList("product_library_file", projectCode,null); |
| | | List<?> deliverableList = productLibraryResult; |
| | | data.setDeliverableList((List<SoftwareTestOrderDeliverable>) deliverableList); |
| | | } |
| | | |
| | | if (projectId != null) { |
| | | data.setProjectId(projectId); |
| | | data.setProject(projectService.get(projectId)); |
| | | } |
| | | |
| | | if (data.getTestAgencyInfo() == null) |
| | | data.setTestAgencyInfo(testAgencyInfoService.get(10000L)); |
| | | |
| | | 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 { |
| | | SoftwareTestOrderDto dataObj = this.getDto(null, id); |
| | | //特殊列表生成 |
| | | List<DictDto> userDicts = sysDictTypeService.getUserDicts(); |
| | | DictDto testType1Dict = userDicts.stream() |
| | | .filter(c -> c.getDictType().equals("test_type1")) |
| | | .collect(Collectors.toList()).get(0); |
| | | |
| | | List<HashMap<String, Object>> testType11 = new ArrayList<>(); |
| | | List<HashMap<String, Object>> testType12 = new ArrayList<>(); |
| | | List<HashMap<String, Object>> testType21 = new ArrayList<>(); |
| | | List<HashMap<String, Object>> 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(); |
| | | HashMap<String, Object> stateItem = new HashMap<>(); |
| | | stateItem.put("item", desc); |
| | | if ((i++) % 2 == 0) { |
| | | testType12.add(stateItem); |
| | | } else { |
| | | testType11.add(stateItem); |
| | | } |
| | | } |
| | | |
| | | i = 0; |
| | | testType = "," + dataObj.getSoftwareTestOrder().getTestType2() + ","; |
| | | for (DictItemDto dictItemDto : ((DictLeafDto) testType1Dict).getDataList()) { |
| | | String value = dictItemDto.getDictValue(); |
| | | String desc = (testType.contains("," + value + ",") ? "☑" : "□") + dictItemDto.getDictLabel(); |
| | | HashMap<String, Object> stateItem = new HashMap<>(); |
| | | stateItem.put("item", desc); |
| | | if ((i++) % 2 == 0) { |
| | | testType22.add(stateItem); |
| | | } else { |
| | | testType21.add(stateItem); |
| | | } |
| | | } |
| | | |
| | | dataObj.getSoftwareTestOrder().setTestType11(testType11); |
| | | dataObj.getSoftwareTestOrder().setTestType12(testType12); |
| | | dataObj.getSoftwareTestOrder().setTestType21(testType21); |
| | | dataObj.getSoftwareTestOrder().setTestType22(testType22); |
| | | |
| | | //通用字典列表字符串生成 |
| | | String criticalLevelStr = getShowDictList.getShowDictList(dataObj.getProject().getCriticalLevel(), "critical_level", false); |
| | | dataObj.getSoftwareTestOrder().setCriticalLevelStr(criticalLevelStr); |
| | | |
| | | for (SoftwareTestOrderMeasured measured : dataObj.getMeasuredList()) { |
| | | String value = measured.getIsMeasured(); |
| | | String isMeasuredStr = getShowDictList.getShowDictList(value, "is_or_not", false); |
| | | measured.setIsMeasuredStr(isMeasuredStr); |
| | | } |
| | | |
| | | String sortwareTypeStr = getShowDictList.getShowDictList(dataObj.getProject().getSoftwareType(), "software_type", false); |
| | | dataObj.getSoftwareTestOrder().setSortwareTypeStr(sortwareTypeStr); |
| | | |
| | | String testBasisStr = getShowDictList.getShowDictList(dataObj.getSoftwareTestOrder().getTestBasis(), "test_basis", true); |
| | | dataObj.getSoftwareTestOrder().setTestBasisStr(testBasisStr); |
| | | |
| | | String testStandardStr = getShowDictList.getShowDictList(dataObj.getSoftwareTestOrder().getTestStandard(), "test_standard", true); |
| | | dataObj.getSoftwareTestOrder().setTestStandardStr(testStandardStr); |
| | | |
| | | String testLevelStr = getShowDictList.getShowDictList(dataObj.getSoftwareTestOrder().getTestLevel(), "test_level", false); |
| | | dataObj.getSoftwareTestOrder().setTestLevelStr(testLevelStr); |
| | | |
| | | String test = dataObj.getSoftwareTestOrder().getOtherRequire(); |
| | | String otherRequireStr = getShowDictList.getShowDictList(test, "other_require", false); |
| | | dataObj.getSoftwareTestOrder().setOtherRequireStr(otherRequireStr); |
| | | |
| | | String articleNatureStr = getShowDictList.getShowDictList(dataObj.getSoftwareTestOrder().getArticleNature(), "article_nature", false); |
| | | dataObj.getSoftwareTestOrder().setArticleNatureStr(articleNatureStr); |
| | | |
| | | String sampleStatusStr = getShowDictList.getShowDictList(dataObj.getSoftwareTestOrder().getSampleStatus(), "is_or_not", false); |
| | | dataObj.getSoftwareTestOrder().setSampleStatusStr(sampleStatusStr); |
| | | |
| | | WordFile wordFile = new WordFile(); |
| | | wordFile.setModulePath("测试委托单.docx"); |
| | | wordFile.setWordName(dataObj.getProject().getSoftwareName() + "_测试委托单.docx"); |
| | | wordFileService.exportWordFile(request, dataObj, wordFile, response); |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |