modules/mainPart/src/main/java/com/zt/life/modules/project/controller/EnvironController.java
@@ -27,6 +27,8 @@ import springfox.documentation.annotations.ApiIgnore; import javax.servlet.http.HttpServletResponse; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -67,7 +69,7 @@ @GetMapping("getDto") @ApiOperation("信息") public Result<SoftwareTestOrderDto> getDto(Long projectId, Long environId) { public Result<SoftwareTestOrderDto> getDto(Long environId, Long projectId) { SoftwareTestOrderDto data = environService.getDto(environId, projectId); if (projectId != null) { OssDto ossDto = sysOssConfigService.getOssByBusiType(projectId, "environ"); @@ -84,8 +86,12 @@ public Result insert(@RequestBody SoftwareTestOrderDto softwareTestOrderDto) { //效验数据 ValidatorUtils.validateEntity(softwareTestOrderDto, AddGroup.class, DefaultGroup.class); Map<String,String> map = new HashMap<>(); map.put("funCode","environ"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); String year = sdf.format(new Date()); Map<String, String> map = new HashMap<>(); map.put("funCode", "environ"); map.put("year",year); softwareTestOrderDto.getEnviron().setYear(year); softwareTestOrderDto.getEnviron().setCode(sysCodeRuleService.getNewCode(map)); Boolean result = environService.save(softwareTestOrderDto); @@ -96,15 +102,15 @@ @PutMapping @ApiOperation("修改") @LogOperation("修改") public Result update(@RequestBody Environ environ) { public Result update(@RequestBody SoftwareTestOrderDto softwareTestOrderDto) { //效验数据 ValidatorUtils.validateEntity(environ, UpdateGroup.class, DefaultGroup.class); environService.update(environ); ValidatorUtils.validateEntity(softwareTestOrderDto, UpdateGroup.class, DefaultGroup.class); Boolean result = environService.save(softwareTestOrderDto); return Result.ok(); } @DeleteMapping @DeleteMapping("deleteEnviron") @ApiOperation("删除") @LogOperation("删除") public Result delete(@RequestBody Long[] ids) { @@ -115,4 +121,14 @@ return Result.ok(); } @PostMapping("uploadDiagram") @ApiOperation("上传测试环境图片") @LogOperation("上传测试环境图片") public Result uploadDiagram(@RequestBody Long[] ids) { //效验数据 AssertUtils.isArrayEmpty(ids, "id"); environService.delete(ids); return Result.ok(); } } modules/mainPart/src/main/java/com/zt/life/modules/project/controller/SoftwareTestOrderController.java
@@ -32,6 +32,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -100,8 +102,12 @@ //效验数据 ValidatorUtils.validateEntity(softwareTestOrderDto.getSoftwareTestOrder(), AddGroup.class, DefaultGroup.class); Map<String,String> map = new HashMap<>(); map.put("funCode","software_test_order"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); String year = sdf.format(new Date()); Map<String, String> map = new HashMap<>(); map.put("funCode", "software_test_order"); map.put("year",year); softwareTestOrderDto.getSoftwareTestOrder().setYear(year); softwareTestOrderDto.getSoftwareTestOrder().setCode(sysCodeRuleService.getNewCode(map)); Boolean result = softwareTestOrderService.save(softwareTestOrderDto); return Result.ok(); modules/mainPart/src/main/java/com/zt/life/modules/project/model/Environ.java
@@ -64,6 +64,9 @@ @ApiModelProperty(value = "病毒库版本") private String virusDatabaseVersion; @ApiModelProperty(value = "年份") private String year; @TableField(exist = false) @ApiModelProperty(value = "专业实验室名称") private String agencyName; modules/mainPart/src/main/java/com/zt/life/modules/project/model/EnvironHardwareResources.java
@@ -31,7 +31,7 @@ private String itemName; @ApiModelProperty(value = "用途") private String usage; private String purposes; @ApiModelProperty(value = "状态") private String state; modules/mainPart/src/main/java/com/zt/life/modules/project/model/EnvironSoftwareResources.java
@@ -34,7 +34,7 @@ private String version; @ApiModelProperty(value = "用途") private String usage; private String purposes; @ApiModelProperty(value = "提供单位") private String provideUnit; modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java
@@ -167,6 +167,9 @@ @ApiModelProperty(value = "测试级别") private Integer testLevel; @ApiModelProperty(value = "年份") private String year; @TableField(exist = false) @ApiModelProperty(value = "软件类型") private String softwareType; modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java
@@ -13,9 +13,8 @@ import com.zt.common.db.query.QueryFilter; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; import java.util.Map; import java.text.SimpleDateFormat; import java.util.*; /** @@ -52,15 +51,14 @@ private TestAgencyInfoService testAgencyInfoService; public SoftwareTestOrderDto getDto(Long projectId, Long environId) { public SoftwareTestOrderDto getDto(Long environId, Long projectId) { SoftwareTestOrderDto data = new SoftwareTestOrderDto(); if (environId != null) { data.setId(environId); Environ environ = this.get(environId); data.setEnviron(environ); data.setTestAgencyInfo(testAgencyInfoService.get(environId)); projectId = environ.getProjectId(); List<EnvironSoftwareResources> softwareResourcesList = environSoftwareResourcesService.getList(environId); data.setSoftwareResourcesList(softwareResourcesList); @@ -70,17 +68,15 @@ List<EnvironAnalysis> environAnalysesList = environAnalysisService.getList(environId); data.setEnvironAnalysisList(environAnalysesList); } else { Project project = projectService.get(projectId); data.getEnviron().setSoftwareName(project.getSoftwareName()); data.getEnviron().setSoftwareIdentity(project.getSoftwareIdentity()); Environ environ =new Environ(); data.setEnviron(environ); } if (projectId != null) { data.setProjectId(projectId); data.setProject(projectService.get(projectId)); } if (data.getTestAgencyInfo() == null) data.getEnviron().setAgencyName(testAgencyInfoService.get(10000L).getAgencyName()); data.getEnviron().setSite(testAgencyInfoService.get(10000L).getSite()); if (projectId != null) { data.setOrderId(projectId); data.setSoftwareTestOrder(softwareTestOrderService.get(projectId)); } data.setTestAgencyInfo(testAgencyInfoService.get(10000L)); return data; } @@ -109,8 +105,12 @@ if (environId != null) baseDao.updateById(softwareTestOrderDto.getEnviron()); else { SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); String year = sdf.format(new Date()); Map<String, String> map = new HashMap<>(); map.put("funCode", "environ"); map.put("year",year); softwareTestOrderDto.getEnviron().setYear(year); softwareTestOrderDto.getEnviron().setProjectId(softwareTestOrderDto.getProjectId()); softwareTestOrderDto.getEnviron().setCode(sysCodeRuleService.getNewCode(map)); baseDao.insert(softwareTestOrderDto.getEnviron()); @@ -146,7 +146,12 @@ environAnalysisService.insert(environAnalysis); } } if (softwareTestOrderDto.getTestAgencyInfo().getId() == 10000) { softwareTestOrderDto.getTestAgencyInfo().setId(environId); testAgencyInfoService.insert(softwareTestOrderDto.getTestAgencyInfo()); } else { testAgencyInfoService.update(softwareTestOrderDto.getTestAgencyInfo()); } sysOssConfigService.updateOss(softwareTestOrderDto.getId(), softwareTestOrderDto.getFiles());// 保存附件 return true; } modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
@@ -27,10 +27,8 @@ 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; @@ -96,8 +94,12 @@ if (softwareTestOrderId != null) baseDao.updateById(softwareTestOrderDto.getSoftwareTestOrder()); else { SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); String year = sdf.format(new Date()); Map<String, String> map = new HashMap<>(); map.put("funCode", "software_test_order"); map.put("year",year); softwareTestOrderDto.getSoftwareTestOrder().setYear(year); softwareTestOrderDto.getSoftwareTestOrder().setProjectId(softwareTestOrderDto.getProjectId()); softwareTestOrderDto.getSoftwareTestOrder().setCode(sysCodeRuleService.getNewCode(map)); baseDao.insert(softwareTestOrderDto.getSoftwareTestOrder()); modules/mainPart/src/main/resources/mapper/project/EnvironDao.xml
@@ -5,7 +5,7 @@ <select id="getList" resultType="com.zt.life.modules.project.model.Environ"> SELECT a.*, p.* FROM software_test_order a FROM environ a INNER JOIN project p ON p.id = a.project_id <where> a.is_delete = 0 and p.is_delete = 0 modules/mainPart/src/main/resources/mapper/project/EnvironHardwareResourcesDao.xml
@@ -8,8 +8,8 @@ from environ_hardware_resources a <where> a.is_delete = 0 <if test="whereSql!=null"> and ${whereSql} <if test="environId!=null"> and environ_id = ${environId} </if> </where> <if test="orderBySql!=null"> modules/mainPart/src/main/resources/mapper/project/EnvironSoftwareResourcesDao.xml
@@ -8,8 +8,8 @@ from environ_software_resources a <where> a.is_delete = 0 <if test="whereSql!=null"> and ${whereSql} <if test="environId!=null"> and environ_id = ${environId} </if> </where> <if test="orderBySql!=null"> web/src/views/modules/project/Environ-AddOrUpdate.vue
@@ -3,21 +3,21 @@ <el-form :model="dataForm" style="padding: 0" :inline="true" ref="dataForm" :disabled="dataForm.disabled" label-width="130px" class="confirmFormAuto"> <div class="DConfirmForm"> <el-form-item label-width="60px" label="编号:" style="width:100%;margin-bottom: 0"> <span>{{dataForm.code}}</span> <span>{{dataForm.environ.code}}</span> </el-form-item> </div> <div style="border: 1px solid rgba(0,0,0,.2);width: 99%" class="confirmDAuto DConfirmForm"> <el-form-item class="marginTopAndMarginBottom" label="专业实验室名称" style="width: 49%"> <el-input v-model="dataForm.agencyName" placeholder="专业实验室名称"></el-input> <el-input v-model="dataForm.testAgencyInfo.agencyName" placeholder="专业实验室名称"></el-input> </el-form-item> <el-form-item class="marginTopAndMarginBottom" label="测试地点" style="width: 49%"> <el-input v-model="dataForm.site" placeholder="测试地点"></el-input> <el-input v-model="dataForm.testAgencyInfo.site" placeholder="测试地点"></el-input> </el-form-item> <el-form-item label="被测软件" style="width: 49%"> <el-input v-model="dataForm.softwareName" placeholder="被测软件"></el-input> <el-input v-model="dataForm.project.softwareName" placeholder="被测软件"></el-input> </el-form-item> <el-form-item label="版本" style="width: 49%"> <el-input v-model="dataForm.softwareIdentity" placeholder="版本"></el-input> <el-input v-model="dataForm.project.softwareIdentity" placeholder="版本"></el-input> </el-form-item> <div class="el-flexConfigDialog el-form-border"> <div class="DFormWidth DAlign DHold"> @@ -28,7 +28,7 @@ <div class="table-container"> <el-table class="el-software el-margin-top-bot" height="150" border :data="dataForm.softwareResourcesList" stripe> <el-table-column prop="code" align="center" width="80" label="序号"> <el-table-column prop="no" align="center" width="80" label="序号"> <template slot-scope="scope"> <span v-html="indexFormat(scope.$index)"></span> </template> @@ -43,9 +43,9 @@ <el-input v-model="row.version" placeholder="版本"></el-input> </template> </el-table-column> <el-table-column prop="use" align="center" width="180" label="用途"> <el-table-column prop="purposes" align="center" width="180" label="用途"> <template v-slot="{ row }"> <el-input v-model="row.usage" placeholder="用途"></el-input> <el-input v-model="row.purposes" placeholder="用途"></el-input> </template> </el-table-column> <el-table-column prop="unit" label="提供单位" width="180" align="center"> @@ -63,12 +63,32 @@ <div class="table-container"> <el-table class="el-software el-margin-top-bot" height="150" border :data="dataForm.hardwareResourcesList" stripe> <el-table-column prop="code" align="center" width="80" label="序号"></el-table-column> <el-table-column prop="itemName" min-width="300" label="硬件和固件项目名称"></el-table-column> <el-table-column prop="usage" align="center" width="180" label="用途"></el-table-column> <el-table-column prop="number" align="center" width="80" label="数量"></el-table-column> <el-table-column prop="state" align="center" width="120" label="状态"></el-table-column> <el-table-column prop="provideUnit" align="center" width="180" label="提供单位"></el-table-column> <el-table-column prop="no" align="center" width="80" label="序号"></el-table-column> <el-table-column prop="itemName" min-width="300" label="硬件和固件项目名称"> <template v-slot="{ row }"> <el-input v-model="row.itemName" placeholder="硬件和固件项目名称"></el-input> </template> </el-table-column> <el-table-column prop="purposes" align="center" width="180" label="用途"> <template v-slot="{ row }"> <el-input v-model="row.purposes" placeholder="用途"></el-input> </template> </el-table-column> <el-table-column prop="number" align="center" width="80" label="数量"> <template v-slot="{ row }"> <el-input v-model="row.number" placeholder="数量"></el-input> </template> </el-table-column> <el-table-column prop="state" align="center" width="120" label="状态"> <template v-slot="{ row }"> <el-input v-model="row.state" placeholder="状态"></el-input> </template> </el-table-column> <el-table-column prop="provideUnit" align="center" width="180" label="提供单位"> <template v-slot="{ row }"> <el-input v-model="row.provideUnit" placeholder="提供单位"></el-input> </template> </el-table-column> </el-table> <div class="icon-container" @click="addHardwareRow()"> <!-- 放置固定的图标 --> @@ -83,7 +103,9 @@ </div> <div style="width: calc(100% - 120px);"> <div style="height:150px" class="el-wt-border-left"> <span>{{dataForm.testEnvirontDiagram}}</span> <span>{{dataForm.environ.testEnvirontDiagram}}</span> <!-- <config-uploader busi-type="test_order" model-name="dataForm" :dataForm="dataForm"--> <!-- v-model="dataForm.files"/>--> </div> </div> </div> @@ -95,12 +117,32 @@ <div class="table-container"> <el-table class="el-software el-margin-top-bot" height="150" border :data="dataForm.environAnalysisList" stripe> <el-table-column prop="code" align="center" width="80" label="序号"></el-table-column> <el-table-column prop="realEnviron" min-width="300" label="真实环境"></el-table-column> <el-table-column prop="testEnviron" align="center" width="100" label="测试环境"></el-table-column> <el-table-column prop="environDifference" align="center" width="100" label="环境差异"></el-table-column> <el-table-column prop="resultImpact" align="center" width="160" label="对测试结果影响"></el-table-column> <el-table-column prop="measure" align="center" width="180" label="措施"></el-table-column> <el-table-column prop="no" align="center" width="80" label="序号"></el-table-column> <el-table-column prop="realEnviron" min-width="300" label="真实环境"> <template v-slot="{ row }"> <el-input v-model="row.realEnviron" placeholder="真实环境"></el-input> </template> </el-table-column> <el-table-column prop="testEnviron" align="center" width="100" label="测试环境"> <template v-slot="{ row }"> <el-input v-model="row.testEnviron" placeholder="测试环境"></el-input> </template> </el-table-column> <el-table-column prop="environDifference" align="center" width="100" label="环境差异"> <template v-slot="{ row }"> <el-input v-model="row.environDifference" placeholder="环境差异"></el-input> </template> </el-table-column> <el-table-column prop="resultImpact" align="center" width="160" label="对测试结果影响"> <template v-slot="{ row }"> <el-input v-model="row.resultImpact" placeholder="对测试结果影响"></el-input> </template> </el-table-column> <el-table-column prop="measure" align="center" width="180" label="措施"> <template v-slot="{ row }"> <el-input v-model="row.measure" placeholder="措施"></el-input> </template> </el-table-column> </el-table> <div class="icon-container" @click="addDiscrepancyRow()"> <!-- 放置固定的图标 --> @@ -115,20 +157,20 @@ </div> <div style="width: calc(100% - 120px)" class="DConfirmForm el-wt-border-left"> <el-form-item class="marginTopAndMarginBottom" label="人员" style="width: 49%"> <el-input v-model="dataForm.establishStaff" placeholder="人员"></el-input> <el-input v-model="dataForm.environ.establishStaff" placeholder="人员"></el-input> </el-form-item> <el-form-item class="marginTopAndMarginBottom" label="日期" style="width: 48%"> <el-date-picker v-model="dataForm.establishDate" v-model="dataForm.environ.establishDate" type="date" placeholder="日期"> </el-date-picker> </el-form-item> <el-form-item label-width="180px" class="isKill" label="是否进行环境病毒查杀" style="width: 49%"> <zt-dict v-model="dataForm.isVirusScan" dict="is_or_not" :radio="true"></zt-dict> <zt-dict v-model="dataForm.environ.isVirusScan" dict="is_or_not" :radio="true"></zt-dict> </el-form-item> <el-form-item label="病毒库版本" style="width: 48%"> <el-input v-model="dataForm.virusDatabaseVersion" placeholder="请输入病毒库版本"></el-input> <el-input v-model="dataForm.environ.virusDatabaseVersion" placeholder="请输入病毒库版本"></el-input> </el-form-item> </div> </div> @@ -139,12 +181,12 @@ <div style="width: calc(100% - 120px)" class="DConfirmForm el-wt-border-left"> <!-- 单位名称 --> <el-form-item class="marginTopAndMarginBottom" label="人员" style="width: 49%"> <el-input v-model="dataForm.confirmatStaff" placeholder="人员"></el-input> <el-input v-model="dataForm.environ.confirmatStaff" placeholder="人员"></el-input> </el-form-item> <!-- 联系人 --> <el-form-item class="marginTopAndMarginBottom" label="日期" style="width: 48%"> <el-date-picker v-model="dataForm.confirmatDate" v-model="dataForm.environ.confirmatDate" type="date" placeholder="日期"> </el-date-picker> @@ -162,26 +204,31 @@ return { dataForm: { id: '', code: '', agencyName:'', site:'', softwareName:'', softwareIdentity:'', hardSoftwareRes: '', testEnvirontDiagram: '', environ:{ code: '1', hardSoftwareRes: '', testEnvirontDiagram: '', establishStaff:'', establishDate:'', environAnalysis: '', environEstablish: '', environConfirmat: '', confirmatStaff: '', confirmatDate: '', isVirusScan: '', virusDatabaseVersion: '', }, project: { softwareIdentity: '', softwareName: '', }, testAgencyInfo: { agencyName:'', site:'', }, softwareResourcesList:[], hardwareResourcesList:[], environAnalysisList:[], establishStaff:'', establishDate:'', environAnalysis: '', environEstablish: '', environConfirmat: '', confirmatStaff: '', confirmatDate: '', isVirusScan: '', virusDatabaseVersion: '', softwareData:[] environAnalysisList:[] } } }, @@ -196,7 +243,7 @@ // 获取信息 async getInfo() { let params = { orderId: this.dataForm.id, environId: this.dataForm.id, projectId: this.dataForm.projectId } let res = await this.$http.get(`/project/Environ/getDto`,{params: params}) @@ -210,10 +257,14 @@ return index += 1 }, addSoftwareRow(){ this.dataForm.softwareData.push({}) this.dataForm.softwareResourcesList.push({}) }, addHardwareRow(){}, addDiscrepancyRow(){}, addHardwareRow(){ this.dataForm.hardwareResourcesList.push({}) }, addDiscrepancyRow(){ this.dataForm.environAnalysisList.push({}) }, // 表单提交 async formSubmit() { let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/project/Environ/', this.dataForm) web/src/views/modules/project/Environ.vue
@@ -4,13 +4,13 @@ <zt-table-wraper query-url="/project/Environ/page" delete-url="/project/Environ" v-slot="{ table }" @dataLoaded="dataLoaded"> <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()"> <el-form-item> <el-input v-model="dataForm.code" placeholder="请输入编号" clearable></el-input> <el-input v-model="dataForm.code" placeholder="请输入编号" clearable></el-input> </el-form-item> <el-form-item> <!-- <zt-button type="query" @click="table.query()"/>--> <zt-button type="query" @click="table.query()"/> <zt-button type="primary" class="el-icon-edit" perm="project:add" @click="add()">新增</zt-button> <zt-button type="add" perm="project:add" @click="table.editHandle()"/> <!--<zt-button type="add" perm="project:add" @click="table.editHandle()"/>--> <zt-button type="delete" perm="project:delete" @click="table.deleteHandle()"/> </el-form-item> </el-form> web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue
@@ -442,7 +442,6 @@ softwareType: '', tenantId: '', testLevel: '', }, testAgencyInfo: { agencyName:'',