modules/mainPart/src/main/java/com/zt/life/modules/project/controller/SoftwareTestOrderController.java
@@ -13,6 +13,7 @@ import com.zt.common.validator.group.DefaultGroup; import com.zt.common.validator.group.UpdateGroup; 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; @@ -26,10 +27,14 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -78,52 +83,7 @@ @GetMapping("getDto") @ApiOperation("信息") public Result<SoftwareTestOrderDto> getDto(Long orderId, Long projectId) { SoftwareTestOrderDto data = new SoftwareTestOrderDto(); if (orderId != null) { data.setId(orderId); SoftwareTestOrder softwareTestOrder = softwareTestOrderService.get(orderId); data.setSoftwareTestOrder(softwareTestOrder); if (projectId == null) projectId = softwareTestOrder.getProjectId(); data.setTestAgencyInfo(testAgencyInfoService.get(orderId)); List<SoftwareTestOrderDeliverable> deliverableList = softwareTestOrderDeliverableService.childrenTables(orderId); if (deliverableList.isEmpty()) { deliverableList = softwareTestOrderService.deliverableDict(); deliverableList = deliverableList.stream() .peek(deliverable -> { if (deliverable.getIdentify() == null) { // 修改 identify 字段的值为新值 deliverable.setIdentify("1.0.0"); } }) .collect(Collectors.toList()); } data.setSoftwareTestOrderDeliverableList(deliverableList); List<SoftwareTestOrderMeasured> measuredList = softwareTestOrderMeasuredService.childrenTables(orderId); if (measuredList.isEmpty()) { measuredList = softwareTestOrderService.MeasuredDict(); measuredList = measuredList.stream() .peek(measured -> { if (measured.getIdentify() == null) { // 修改 identify 字段的值为新值 measured.setIdentify("1.0.0"); } }) .collect(Collectors.toList()); } data.setSoftwareTestOrderMeasuredList(measuredList);} else { data.setTestAgencyInfo(testAgencyInfoService.get(10000L)); } if (projectId != null) { data.setProjectId(projectId); data.setProject(projectService.get(projectId)); } SoftwareTestOrderDto data = softwareTestOrderService.getDto(orderId, projectId); return Result.ok(data); } @@ -163,4 +123,22 @@ return Result.ok(); } @GetMapping("exportWord/{id}") @ApiOperation("打印测试委托单") @LogOperation("打印测试委托单") public void exportWord(@PathVariable("id") Long id, HttpServletRequest request, HttpServletResponse response) { softwareTestOrderService.exportWord(id, request, response); } @GetMapping("getCode") @ApiOperation("编号") public Result<List<String>> getCode() { return Result.ok( projectService.getCode()); } @GetMapping("getProject/{code}") @ApiOperation("项目数据") public Result<Project> getProject(@Param("code") String code) { return Result.ok(projectService.getProject(code)); } } modules/mainPart/src/main/java/com/zt/life/modules/project/dao/ProjectDao.java
@@ -20,4 +20,7 @@ List<Project> getList(Map<String, Object> params); List<String> getCode(); Project getProject(String code); } modules/mainPart/src/main/java/com/zt/life/modules/project/dto/SoftwareTestOrderDto.java
@@ -20,8 +20,8 @@ private Project project; private TestAgencyInfo TestAgencyInfo; @ApiModelProperty(value = "被测件") private List<SoftwareTestOrderMeasured> softwareTestOrderMeasuredList = new ArrayList<>(); private List<SoftwareTestOrderMeasured> measuredList = new ArrayList<>(); @ApiModelProperty(value = "交付件") private List<SoftwareTestOrderDeliverable> softwareTestOrderDeliverableList = new ArrayList<>(); private List<SoftwareTestOrderDeliverable> deliverableList = new ArrayList<>(); } modules/mainPart/src/main/java/com/zt/life/modules/project/model/Project.java
@@ -51,8 +51,8 @@ @ApiModelProperty(value = "项目编号") private String code; @ApiModelProperty(value = "项目标识") private String identity; @ApiModelProperty(value = "软件标识") private String softwareIdentity; @ApiModelProperty(value = "密级") private Integer secretClass; modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java
@@ -10,6 +10,7 @@ import lombok.EqualsAndHashCode; import java.util.Date; import java.util.List; /** * software_test_order @@ -139,8 +140,8 @@ private String softwareName; @TableField(exist = false) @ApiModelProperty(value = "项目标识") private String identity; @ApiModelProperty(value = "软件标识") private String softwareIdentity; @TableField(exist = false) @ApiModelProperty(value = "密级") @@ -195,157 +196,17 @@ @ApiModelProperty(value = "是否被测件") private String isMeasured; @TableField(exist = false) @ApiModelProperty(value = "测试类型1第1列") List<String> testType11; @TableField(exist = false) @ApiModelProperty(value = "测试类型1第2列") List<String> testType12; @TableField(exist = false) @ApiModelProperty(value = "测试类型2第1列") List<String> testType21; @TableField(exist = false) @ApiModelProperty(value = "测试类型2第2列") List<String> testType22; public String getEntrustUnitName() { return entrustUnitName; } public void setEntrustUnitName(String entrustUnitName) { this.entrustUnitName = entrustUnitName; } public String getEntrustUnitAddress() { return entrustUnitAddress; } public void setEntrustUnitAddress(String entrustUnitAddress) { this.entrustUnitAddress = entrustUnitAddress; } public String getEntrustUnitContact() { return entrustUnitContact; } public void setEntrustUnitContact(String entrustUnitContact) { this.entrustUnitContact = entrustUnitContact; } public String getEntrustUnitContWay() { return entrustUnitContWay; } public void setEntrustUnitContWay(String entrustUnitContWay) { this.entrustUnitContWay = entrustUnitContWay; } public String getDevelopUnitName() { return developUnitName; } public void setDevelopUnitName(String developUnitName) { this.developUnitName = developUnitName; } public String getDevelopUnitAddress() { return developUnitAddress; } public void setDevelopUnitAddress(String developUnitAddress) { this.developUnitAddress = developUnitAddress; } public String getDevelopUnitContact() { return developUnitContact; } public void setDevelopUnitContact(String developUnitContact) { this.developUnitContact = developUnitContact; } public String getDevelopUnitContWay() { return developUnitContWay; } public void setDevelopUnitContWay(String developUnitContWay) { this.developUnitContWay = developUnitContWay; } public String getSoftwareName() { return softwareName; } public void setSoftwareName(String softwareName) { this.softwareName = softwareName; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getIdentity() { return identity; } public void setIdentity(String identity) { this.identity = identity; } public Integer getSecretClass() { return secretClass; } public void setSecretClass(Integer secretClass) { this.secretClass = secretClass; } public Integer getCriticalLevel() { return criticalLevel; } public void setCriticalLevel(Integer criticalLevel) { this.criticalLevel = criticalLevel; } public Integer getTestLevel() { return testLevel; } public void setTestLevel(Integer testLevel) { this.testLevel = testLevel; } public String getSoftwareType() { return softwareType; } public void setSoftwareType(String softwareType) { this.softwareType = softwareType; } public String getProjectLeader() { return projectLeader; } public void setProjectLeader(String projectLeader) { this.projectLeader = projectLeader; } public String getProjectTesters() { return projectTesters; } public void setProjectTesters(String projectTesters) { this.projectTesters = projectTesters; } public String getProjectReviewer() { return projectReviewer; } public void setProjectReviewer(String projectReviewer) { this.projectReviewer = projectReviewer; } public Integer getIsContract() { return isContract; } public void setIsContract(Integer isContract) { this.isContract = isContract; } } modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrderDeliverable.java
@@ -23,17 +23,15 @@ private static final long serialVersionUID = 1L; @ApiModelProperty(value = "序号") private Integer num; private Integer no; @ApiModelProperty(value = "委托单ID") private Long orderId; @ApiModelProperty(value = "标识/版本") private String identify; @TableField(exist = false) @ApiModelProperty(value = "字典标签/名称") private String dictLabel; @ApiModelProperty(value = "交付物名称") private String name; } modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrderMeasured.java
@@ -22,13 +22,14 @@ public class SoftwareTestOrderMeasured extends BusiEntity { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "序号") private Integer num; @ApiModelProperty(value = "委托单ID") private Long orderId; @ApiModelProperty(value = "序号") private Integer no; @ApiModelProperty(value = "被测件名称") private String name; @ApiModelProperty(value = "标识/版本") private String identify; @@ -36,8 +37,6 @@ @ApiModelProperty(value = "是否被测件") private String isMeasured; @TableField(exist = false) @ApiModelProperty(value = "字典标签/名称") private String dictLabel; } modules/mainPart/src/main/java/com/zt/life/modules/project/service/ProjectService.java
@@ -41,4 +41,11 @@ } public List<String> getCode() { return baseDao.getCode(); } public Project getProject(String code) { return baseDao.getProject(code); } } modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
@@ -1,6 +1,11 @@ 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; @@ -8,14 +13,22 @@ 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 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.util.stream.Collectors; /** @@ -37,6 +50,11 @@ private TestAgencyInfoService testAgencyInfoService; @Autowired private SysCodeRuleService sysCodeRuleService; @Autowired private SysDictTypeService sysDictTypeService; @Autowired private WordFileService wordFileService; /** * 分页查询 @@ -71,7 +89,7 @@ softwareTestOrderId = softwareTestOrderDto.getSoftwareTestOrder().getId(); } for (SoftwareTestOrderMeasured softwareTestOrderMeasured : softwareTestOrderDto.getSoftwareTestOrderMeasuredList()) { for (SoftwareTestOrderMeasured softwareTestOrderMeasured : softwareTestOrderDto.getMeasuredList()) { softwareTestOrderMeasured.setOrderId(softwareTestOrderId); if (softwareTestOrderMeasured.getId() != null) { softwareTestOrderMeasuredService.update(softwareTestOrderMeasured); @@ -80,7 +98,7 @@ } } for (SoftwareTestOrderDeliverable softwareTestOrderDeliverable : softwareTestOrderDto.getSoftwareTestOrderDeliverableList()) { for (SoftwareTestOrderDeliverable softwareTestOrderDeliverable : softwareTestOrderDto.getDeliverableList()) { softwareTestOrderDeliverable.setOrderId(softwareTestOrderId); if (softwareTestOrderDeliverable.getId() != null) { softwareTestOrderDeliverableService.update(softwareTestOrderDeliverable); @@ -98,12 +116,116 @@ return true; } public SoftwareTestOrderDto getDto(Long orderId, Long projectId) { SoftwareTestOrderDto data = new SoftwareTestOrderDto(); if (orderId != null) { data.setId(orderId); SoftwareTestOrder softwareTestOrder = this.get(orderId); data.setSoftwareTestOrder(softwareTestOrder); if (projectId == null) projectId = softwareTestOrder.getProjectId(); data.setTestAgencyInfo(testAgencyInfoService.get(orderId)); List<SoftwareTestOrderDeliverable> deliverableList = softwareTestOrderDeliverableService.childrenTables(orderId); if (deliverableList.isEmpty()) { deliverableList = this.deliverableDict(); deliverableList = deliverableList.stream() .peek(deliverable -> { if (deliverable.getIdentify() == null) { // 修改 identify 字段的值为新值 deliverable.setIdentify("1.0.0"); } }) .collect(Collectors.toList()); } data.setDeliverableList(deliverableList); List<SoftwareTestOrderMeasured> measuredList = softwareTestOrderMeasuredService.childrenTables(orderId); if (measuredList.isEmpty()) { measuredList = this.MeasuredDict(); measuredList = measuredList.stream() .peek(measured -> { if (measured.getIdentify() == null) { // 修改 identify 字段的值为新值 measured.setIdentify("1.0.0"); } }) .collect(Collectors.toList()); } data.setMeasuredList(measuredList); } else { data.setTestAgencyInfo(testAgencyInfoService.get(10000L)); } if (projectId != null) { data.setProjectId(projectId); data.setProject(projectService.get(projectId)); } return data; } public List<SoftwareTestOrderDeliverable> deliverableDict() { return baseDao.getdeliverableDictList(); return baseDao.getdeliverableDictList(); } public List<SoftwareTestOrderMeasured> MeasuredDict() { return baseDao.getMeasuredDictList(); } 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(); } } } modules/mainPart/src/main/resources/mapper/project/ProjectDao.xml
@@ -17,4 +17,15 @@ </if> </select> <select id="getCode" resultType="java.lang.String"> SELECT p.CODE FROM Project p where p.is_delete =0 </select> <select id="getProject" resultType="com.zt.life.modules.project.model.Project"> SELECT * FROM project WHERE code = #{code} and is_delete = 0 </select> </mapper>