jinlin
2024-01-12 f491d30b0a69148bd0991b3d5b1c4cf9f8216949
修改
47个文件已修改
1个文件已删除
543 ■■■■ 已修改文件
modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/service/BaselineReleaseService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/configAuditReport/service/ConfigAuditReportService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/configItemOutbound/service/ConfigItemOutboundService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/ConfigItemWarehouseService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/contractReview/service/ContractReviewService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/service/ItemCirculatOrderService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/controller/ProjectController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/model/Project.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/service/ProjectService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/qaAuditReport/controller/QaAuditReportController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/qaAuditReport/service/QaAuditReportService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/controller/RiskMeasureController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/controller/RiskTraceItemController.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/dao/RiskTraceRecordDao.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/dto/RiskTraceDto.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/model/RiskMeasure.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/model/RiskTraceItem.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/model/RiskTraceRecord.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/service/RiskMeasureService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/service/RiskTraceItemService.java 102 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/service/RiskTraceRecordService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/service/TestReviewCommentService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/fop.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/baselineRelease/BaselineReleaseDao.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/configAuditReport/ConfigAuditReportDao.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/configItemOutbound/ConfigItemChangeDao.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/configItemWarehouse/ConfigItemWarehouseDao.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/contractReview/ContractReviewDao.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/itemCirculatOrder/ItemCirculatOrderDao.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/project/EnvironDao.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/project/ProjectDao.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/project/SoftwareTestOrderDao.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/qaAuditReport/QaAuditReportDao.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/riskTraceRecord/RiskMeasureDao.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/riskTraceRecord/RiskTraceItemDao.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/riskTraceRecord/RiskTraceRecordDao.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderDao.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/testReviewComment/TestReviewCommentDao.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/packages/i18n/zh-CN.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/project/Project-AddOrUpdate.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/riskTraceRecord/RiskTraceItem-AddOrUpdate.vue 170 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/riskTraceRecord/RiskTraceItem.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/sys/user-add-or-update.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zt/common/src/main/java/com/zt/core/context/User.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zt/common/src/main/java/com/zt/core/sys/model/SysUser.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/service/BaselineReleaseService.java
@@ -2,6 +2,8 @@
import cn.hutool.core.convert.Convert;
import com.zt.common.service.BaseService;
import com.zt.core.context.User;
import com.zt.core.context.UserContext;
import com.zt.life.export.dto.WordFile;
import com.zt.life.export.service.WordFileService;
import com.zt.life.modules.baselineRelease.dao.BaselineReleaseDao;
@@ -77,6 +79,9 @@
     * @return
     */
    public List<BaselineRelease> page(QueryFilter queryFilter) {
        User user = UserContext.getUser();
        Integer secretClass = user.getSecretClass();
        queryFilter.getQueryParams().put("secretClass",secretClass);
        List<BaselineRelease> list = baseDao.getList(queryFilter.getQueryParams());
        if (list.size() > 0) {
            workflowService.getRunFlow(list, "jxfb");
modules/mainPart/src/main/java/com/zt/life/modules/configAuditReport/service/ConfigAuditReportService.java
@@ -3,6 +3,8 @@
import cn.hutool.core.convert.Convert;
import com.zt.common.service.BaseService;
import com.zt.common.utils.CommonUtils;
import com.zt.core.context.User;
import com.zt.core.context.UserContext;
import com.zt.life.export.dto.WordFile;
import com.zt.life.export.service.WordFileService;
import com.zt.life.modules.baselineRelease.dto.BaselineDto;
@@ -89,6 +91,9 @@
     * @return
     */
    public List<ConfigAuditReport> page(QueryFilter queryFilter) {
        User user = UserContext.getUser();
        Integer secretClass = user.getSecretClass();
        queryFilter.getQueryParams().put("secretClass",secretClass);
        List<ConfigAuditReport> list = baseDao.getList(queryFilter.getQueryParams());
        if (list != null && list.size() > 0) {
            sysOssService.setListOsses(list, "config_audit_report");
modules/mainPart/src/main/java/com/zt/life/modules/configItemOutbound/service/ConfigItemOutboundService.java
@@ -6,6 +6,8 @@
import com.zt.common.db.query.QueryFilter;
import com.zt.common.service.BaseService;
import com.zt.common.utils.UUIDUtil;
import com.zt.core.context.User;
import com.zt.core.context.UserContext;
import com.zt.life.export.dto.WordFile;
import com.zt.life.export.service.WordFileService;
import com.zt.life.modules.configItemOutbound.dao.ConfigItemOutboundDao;
@@ -98,6 +100,9 @@
     * @return
     */
    public List<ConfigItemOutbound> page(QueryFilter queryFilter) {
        User user = UserContext.getUser();
        Integer secretClass = user.getSecretClass();
        queryFilter.getQueryParams().put("secretClass",secretClass);
        List<ConfigItemOutbound> list = baseDao.getList(queryFilter.getQueryParams());
        if (list.size() > 0) {
            workflowService.getRunFlow(list, "pzxck");
modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/ConfigItemWarehouseService.java
@@ -3,6 +3,8 @@
import cn.hutool.core.convert.Convert;
import com.zt.common.service.BaseService;
import com.zt.common.utils.CommonUtils;
import com.zt.core.context.User;
import com.zt.core.context.UserContext;
import com.zt.life.export.dto.WordFile;
import com.zt.life.export.service.WordFileService;
import com.zt.life.modules.configItemWarehouse.dao.ConfigItemWarehouseDao;
@@ -89,6 +91,9 @@
     * @return
     */
    public List<ConfigItemWarehouse> page(QueryFilter queryFilter) {
        User user = UserContext.getUser();
        Integer secretClass = user.getSecretClass();
        queryFilter.getQueryParams().put("secretClass",secretClass);
        List<ConfigItemWarehouse> list = baseDao.getList(queryFilter.getQueryParams());
        if (list.size() > 0) {
            workflowService.getRunFlow(list, "pzxrk");
modules/mainPart/src/main/java/com/zt/life/modules/contractReview/service/ContractReviewService.java
@@ -2,6 +2,8 @@
import cn.hutool.core.convert.Convert;
import com.zt.common.service.BaseService;
import com.zt.core.context.User;
import com.zt.core.context.UserContext;
import com.zt.life.export.dto.WordFile;
import com.zt.life.export.service.WordFileService;
import com.zt.life.modules.baselineRelease.model.BaselineRelease;
@@ -83,6 +85,9 @@
     * @return
     */
    public List<ContractReview> page(QueryFilter queryFilter) {
        User user = UserContext.getUser();
        Integer secretClass = user.getSecretClass();
        queryFilter.getQueryParams().put("secretClass",secretClass);
        List<ContractReview> list = baseDao.getList(queryFilter.getQueryParams());
        if (list.size() > 0) {
            sysOssService.setListOsses(list, "contract_review");
modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/service/ItemCirculatOrderService.java
@@ -2,6 +2,8 @@
import cn.hutool.core.convert.Convert;
import com.zt.common.service.BaseService;
import com.zt.core.context.User;
import com.zt.core.context.UserContext;
import com.zt.life.export.dto.WordFile;
import com.zt.life.export.service.WordFileService;
import com.zt.life.modules.configItemWarehouse.model.ConfigItemWarehouse;
@@ -79,6 +81,9 @@
     * @return
     */
    public List<ItemCirculatOrder> page(QueryFilter queryFilter) {
        User user = UserContext.getUser();
        Integer secretClass = user.getSecretClass();
        queryFilter.getQueryParams().put("secretClass",secretClass);
        List<ItemCirculatOrder> list = baseDao.getList(queryFilter.getQueryParams());
        if (list.size() > 0) {
            workflowService.getRunFlow(list, "wplz");
modules/mainPart/src/main/java/com/zt/life/modules/project/controller/ProjectController.java
@@ -13,6 +13,7 @@
import com.zt.common.validator.group.AddGroup;
import com.zt.common.validator.group.DefaultGroup;
import com.zt.common.validator.group.UpdateGroup;
import com.zt.core.context.User;
import com.zt.core.context.UserContext;
import com.zt.core.sys.model.SysUser;
import com.zt.life.modules.project.dto.ProjectUserDto;
@@ -91,6 +92,9 @@
        if (data.getBizDeptId() == null) {
            data.setBizDeptId(UserContext.getDeptId().toString());
        }
        User user = UserContext.getUser();
        Integer secretClass = user.getSecretClass();
        data.setUsersecretClass(secretClass);
        return Result.ok(data);
    }
@@ -107,6 +111,7 @@
        map.put("year", year);
        project.setYear(year);
        project.setCode(sysCodeRuleService.getNewCode(map));
        projectService.insert(project);
        return Result.ok();
    }
modules/mainPart/src/main/java/com/zt/life/modules/project/model/Project.java
@@ -1,5 +1,6 @@
package com.zt.life.modules.project.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zt.common.entity.BusiEntity;
import io.swagger.annotations.ApiModel;
@@ -84,4 +85,8 @@
    @ApiModelProperty(value = "是否签署合同")
    private Integer isContract;
    @TableField(exist = false)
    @ApiModelProperty(value = "用户密级")
    private Integer usersecretClass;
}
modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java
@@ -1,6 +1,8 @@
package com.zt.life.modules.project.service;
import com.zt.common.service.BaseService;
import com.zt.core.context.User;
import com.zt.core.context.UserContext;
import com.zt.core.sys.dto.DictDto;
import com.zt.core.sys.dto.DictItemDto;
import com.zt.core.sys.dto.DictLeafDto;
@@ -130,6 +132,9 @@
     * @return
     */
    public List<Environ> page(QueryFilter queryFilter) {
        User user = UserContext.getUser();
        Integer secretClass = user.getSecretClass();
        queryFilter.getQueryParams().put("secretClass",secretClass);
        List<Environ> list = baseDao.getList(queryFilter.getQueryParams());
        if (list.size() > 0) {
            sysOssService.setListOsses(list, "test_environ");
modules/mainPart/src/main/java/com/zt/life/modules/project/service/ProjectService.java
@@ -1,6 +1,8 @@
package com.zt.life.modules.project.service;
import com.zt.common.service.BaseService;
import com.zt.core.context.User;
import com.zt.core.context.UserContext;
import com.zt.life.modules.project.dao.ProjectDao;
import com.zt.life.modules.project.model.Project;
import com.zt.modules.coderule.service.SysCodeRuleService;
@@ -28,6 +30,9 @@
     * @return
     */
    public List<Project> page(QueryFilter queryFilter) {
        User user = UserContext.getUser();
        Integer secretClass = user.getSecretClass();
        queryFilter.getQueryParams().put("secretClass",secretClass);
        return baseDao.getList(queryFilter.getQueryParams());
    }
modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
@@ -2,6 +2,8 @@
import com.zt.common.service.BaseService;
import com.zt.common.utils.CommonUtils;
import com.zt.core.context.User;
import com.zt.core.context.UserContext;
import com.zt.core.sys.dto.DictDto;
import com.zt.core.sys.dto.DictItemDto;
import com.zt.core.sys.dto.DictLeafDto;
@@ -72,6 +74,9 @@
     * @return
     */
    public List<SoftwareTestOrder> page(QueryFilter queryFilter) {
        User user = UserContext.getUser();
        Integer secretClass = user.getSecretClass();
        queryFilter.getQueryParams().put("secretClass",secretClass);
        List<SoftwareTestOrder> list = baseDao.getList(queryFilter.getQueryParams());
        if (list != null && list.size() > 0) {
            sysOssService.setListOsses(list, "test_order");
modules/mainPart/src/main/java/com/zt/life/modules/qaAuditReport/controller/QaAuditReportController.java
@@ -121,6 +121,7 @@
        return Result.ok();
    }
    @GetMapping("exportQaReport")
    @ApiOperation("打印QA审核报告")
    @LogOperation("打印QA审核报告")
modules/mainPart/src/main/java/com/zt/life/modules/qaAuditReport/service/QaAuditReportService.java
@@ -3,6 +3,8 @@
import cn.hutool.core.convert.Convert;
import com.zt.common.service.BaseService;
import com.zt.common.utils.CommonUtils;
import com.zt.core.context.User;
import com.zt.core.context.UserContext;
import com.zt.life.export.dto.WordFile;
import com.zt.life.export.service.WordFileService;
import com.zt.life.modules.baselineRelease.dto.BaselineDto;
@@ -69,7 +71,6 @@
    @Autowired
    private  QaAuditReportIncongruentService incongruentService;
    @Autowired
    private WorkflowService workflowService;
    /**
@@ -79,6 +80,9 @@
     * @return
     */
    public List<QaAuditReport> page(QueryFilter queryFilter) {
        User user = UserContext.getUser();
        Integer secretClass = user.getSecretClass();
        queryFilter.getQueryParams().put("secretClass",secretClass);
        List<QaAuditReport> list = baseDao.getList(queryFilter.getQueryParams());
        if (list != null && list.size() > 0) {
            workflowService.getRunFlow(list, "qashbg");
@@ -98,6 +102,11 @@
    public QaAuditReportDto getDto(Long projectId, Long reportId) {
        QaAuditReportDto data = new QaAuditReportDto();
        Map<String, String> map = new HashMap<>();
        map.put("contract", "合同评审阶段");
        map.put("require", "测试需求分析与策划阶段");
        map.put("execute", "测试设计、实现与执行阶段");
        map.put("summary", "测试总结阶段");
        if (reportId != null) {
            data.setId(reportId);
            QaAuditReport auditReport = this.get(reportId);
@@ -113,6 +122,10 @@
            List<QaAuditReportIncongruent> incongruentList = incongruentService.createList(projectId);
            data.setIncongruentList(incongruentList);
        }
        for (QaAuditReportIncongruent incongruent : data.getIncongruentList()) {
            String type = map.get(incongruent.getDiscoveryPhase());
            incongruent.setDiscoveryPhase(type);
        }
        if (projectId != null) {
            data.setProjectId(projectId);
            data.setProject(projectService.get(projectId));
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/controller/RiskMeasureController.java
@@ -46,6 +46,8 @@
        @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 = "softwareName", value = "项目名称", dataType = Constant.QT.STRING, format = "p.software_name^LK"),
        @ApiImplicitParam(name = "softwareIdentity", value = "项目标识", dataType = Constant.QT.STRING, format = "p.software_identity^LK")
    })
    public PageResult<RiskMeasure> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
@@ -81,7 +83,7 @@
        return Result.ok();
    }
    @DeleteMapping
    @DeleteMapping("deleteRisk")
    @ApiOperation("删除")
    @LogOperation("删除")
    public Result delete(@RequestBody Long[] ids){
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/controller/RiskTraceItemController.java
@@ -27,6 +27,7 @@
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.List;
@@ -58,7 +59,7 @@
            @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 = "riskDesc", value = "风险描述", dataType = Constant.QT.STRING, format = "risk_desc^LK")})
             })
    public PageResult<RiskTraceItem> page(@ApiIgnore @QueryParam QueryFilter queryFilter) {
        return PageResult.ok(riskTraceItemService.page(queryFilter));
@@ -68,12 +69,12 @@
    @ApiOperation("信息")
    public Result<RiskTraceDto> getDto(Long projectId, Long riskId) {
        RiskTraceDto data = riskTraceItemService.getDto(projectId, riskId);
        if (riskId != null) {
       /* if (riskId != null) {
            OssDto ossDto = sysOssConfigService.getOssByBusiType(riskId, "risk_trace_item");
            if (ossDto != null) {
                data.setFiles(ossDto);
            }
        }
        }*/
        return Result.ok(data);
    }
@@ -97,7 +98,7 @@
        return Result.ok();
    }
    @DeleteMapping("deleteRisk")
    @DeleteMapping
    @ApiOperation("删除")
    @LogOperation("删除")
    public Result delete(@RequestBody Long[] ids) {
@@ -108,4 +109,10 @@
        return Result.ok();
    }
    @GetMapping("exportRiskRecord")
    @ApiOperation("打印风险记录")
    @LogOperation("打印风险记录")
    public void exportRiskRecord(Long id, HttpServletRequest request, HttpServletResponse response) {
        riskTraceItemService.exportRiskRecord(id, request, response);
    }
}
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/dao/RiskTraceRecordDao.java
@@ -20,4 +20,5 @@
    List<RiskTraceRecord> getList(Map<String, Object> params);
    List<RiskTraceRecord> creatList(Long riskId);
}
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/dto/RiskTraceDto.java
@@ -28,8 +28,9 @@
    @ApiModelProperty(value = "附件")
    private OssDto files;
    @ApiModelProperty(value = "风险跟踪项")
    @ApiModelProperty(value = "整合的列表")
    private List<RiskTraceRecord> riskList = new ArrayList<>();
    @ApiModelProperty(value = "整合的列表")
    private List<RiskTraceItem> itemList = new ArrayList<>();
    @ApiModelProperty(value = "不符合项列表")
    private List<RiskTraceRecord> recordList = new ArrayList<>();
}
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/model/RiskMeasure.java
@@ -1,5 +1,6 @@
package com.zt.life.modules.riskTraceRecord.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zt.common.entity.BusiEntity;
@@ -21,6 +22,9 @@
@TableName("risk_measure")
public class RiskMeasure extends BusiEntity {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "项目ID")
    private Long projectId;
    @ApiModelProperty(value = "需求风险跟踪人员")
    private String requireRiskTrackers;
@@ -130,4 +134,13 @@
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date summaryLeadDate;
    @TableField(exist = false)
    @ApiModelProperty(value = "项目标识")
    private String softwareName;
    @TableField(exist = false)
    @ApiModelProperty(value = "项目名称")
    private String softwareIdentity;
}
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/model/RiskTraceItem.java
@@ -17,7 +17,6 @@
 */
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("risk_trace_item")
public class RiskTraceItem extends BusiEntity {
    private static final long serialVersionUID = 1L;
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/model/RiskTraceRecord.java
@@ -1,5 +1,6 @@
package com.zt.life.modules.riskTraceRecord.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zt.common.entity.BusiEntity;
import io.swagger.annotations.ApiModel;
@@ -17,12 +18,14 @@
 */
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("risk_trace_record")
public class RiskTraceRecord extends BusiEntity {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "风险ID")
    private Long riskId;
    @ApiModelProperty(value = "风险项ID")
    private Long itemId;
    @ApiModelProperty(value = "测试需求")
    private String testRequire;
@@ -36,4 +39,16 @@
    @ApiModelProperty(value = "测试总结")
    private String testSummary;
    @TableField(exist = false)
    @ApiModelProperty(value = "风险名称")
    private String riskName;
    @TableField(exist = false)
    @ApiModelProperty(value = "风险描述")
    private String riskDesc;
    @TableField(exist = false)
    @ApiModelProperty(value = "风险等级")
    private String riskLevel;
}
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/service/RiskMeasureService.java
@@ -1,8 +1,11 @@
package com.zt.life.modules.riskTraceRecord.service;
import com.zt.common.service.BaseService;
import com.zt.core.context.User;
import com.zt.core.context.UserContext;
import com.zt.life.modules.riskTraceRecord.dao.RiskMeasureDao;
import com.zt.life.modules.riskTraceRecord.model.RiskMeasure;
import com.zt.life.modules.riskTraceRecord.model.RiskTraceItem;
import org.springframework.stereotype.Service;
import com.zt.common.db.query.QueryFilter;
import javax.annotation.Resource;
@@ -27,7 +30,11 @@
     * @return
     */
    public List<RiskMeasure> page(QueryFilter queryFilter) {
        return baseDao.getList(queryFilter.getQueryParams());
        User user = UserContext.getUser();
        Integer secretClass = user.getSecretClass();
        queryFilter.getQueryParams().put("secretClass",secretClass);
        List<RiskMeasure> list = baseDao.getList(queryFilter.getQueryParams());
        return list;
    }
    /**
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/service/RiskTraceItemService.java
@@ -1,7 +1,12 @@
package com.zt.life.modules.riskTraceRecord.service;
import cn.hutool.core.convert.Convert;
import com.zt.common.service.BaseService;
import com.zt.common.utils.CommonUtils;
import com.zt.core.context.User;
import com.zt.core.context.UserContext;
import com.zt.life.export.dto.WordFile;
import com.zt.life.export.service.WordFileService;
import com.zt.life.modules.project.service.ProjectService;
import com.zt.life.modules.qaAuditReport.dto.QaAuditReportDto;
import com.zt.life.modules.qaAuditReport.model.QaAuditReport;
@@ -12,11 +17,18 @@
import com.zt.life.modules.riskTraceRecord.model.RiskTraceItem;
import com.zt.life.modules.riskTraceRecord.model.RiskTraceRecord;
import com.zt.life.sys.service.SysOssConfigService;
import com.zt.modules.oss.service.SysOssService;
import com.zt.modules.workflow.dto.FlowInfoDto;
import com.zt.modules.workflow.service.WorkflowService;
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;
@@ -40,6 +52,15 @@
    @Autowired
    private ProjectService projectService;
    @Autowired
    private SysOssService sysOssService;
    @Autowired
    private WordFileService wordFileService;
    @Autowired
    private SysOssConfigService sysOssConfigService;
    /**
     * 分页查询
     *
@@ -47,14 +68,13 @@
     * @return
     */
    public List<RiskTraceItem> page(QueryFilter queryFilter) {
        return baseDao.getList(queryFilter.getQueryParams());
        List<RiskTraceItem> list = baseDao.getList(queryFilter.getQueryParams());
       /* if (list != null && list.size() > 0) {
            sysOssService.setListOsses(list, "risk_trace_item");
        }*/
        return list;
    }
    private List<RiskTraceItem> getList(Long riskId) {
        Map<String, Object> params = new HashMap<>();
        params.put("riskId",riskId);
        return baseDao.getList(params);
    }
    /**
     * 删除
     *
@@ -73,23 +93,28 @@
            if (riskMeasure != null && projectId == null) {
                projectId = data.getProjectId();
            }
            List<RiskTraceItem> itemList = this.getList(riskId);
            data.setItemList(itemList);
            List<RiskTraceRecord> recordList = recordService.getList(riskId);
            data.setRecordList(recordList);
            List<RiskTraceRecord> riskList = recordService.getList(riskId);
            data.setRiskList(riskList);
        } else {
            RiskMeasure riskMeasure = new RiskMeasure();
            data.setRiskMeasure(riskMeasure);
            List<RiskTraceItem> itemList = this.getList(null);
            List<RiskTraceItem> itemList = this.getList(riskId);
            data.setItemList(itemList);
            List<RiskTraceRecord> recordList = new ArrayList<>();
            data.setRecordList(recordList);
            List<RiskTraceRecord> riskList = recordService.getList(riskId);
            data.setRiskList(riskList);
        }
        if (projectId != null) {
            data.setProjectId(projectId);
            data.getRiskMeasure().setProjectId(projectId);
            data.setProject(projectService.get(projectId));
        }
        return data;
    }
    private List<RiskTraceItem> getList(Long riskId) {
        Map<String, Object> params = new HashMap<>();
        params.put("riskId", riskId);
        return baseDao.getList(params);
    }
@@ -102,28 +127,47 @@
            riskId = riskTraceDto.getRiskMeasure().getId();
        }
        for (RiskTraceRecord record : riskTraceDto.getRecordList()) {
            record.setRiskId(riskId);
            if (record.getId() != null) {
                RiskTraceRecord record2 = recordService.get(record.getId());
                if (CommonUtils.isActureChangeData(record,record2)) {
                    recordService.update(record2);
                }
            } else {
                recordService.insert(record);
            }
        }
        for (RiskTraceItem item : riskTraceDto.getItemList()) {
            if (item.getRiskId() == null) {
                item.setId(null);
            item.setRiskId(riskId);
            if (item.getId() != null) {
                RiskTraceItem item2 = this.get(item.getId());
                if (CommonUtils.isActureChangeData(item,item2)) {
                    baseDao.updateById(item2);
                this.insert(item);
                }
        }
        for (int i = 0; i < riskTraceDto.getRiskList().size(); i++) {
            RiskTraceRecord risk = riskTraceDto.getRiskList().get(i);
            RiskTraceItem item = null;
            if (riskTraceDto.getItemList().size() > 0) {
                item = riskTraceDto.getItemList().get(i);
            }
            risk.setRiskId(riskId);
            if (risk.getId() != null) {
                recordService.update(risk);
            } else {
                baseDao.insert(item);
                risk.setItemId(item.getId());
                recordService.insert(risk);
            }
        }
        sysOssConfigService.updateOss(riskTraceDto.getId(), riskTraceDto.getFiles());// 保存附件
        return true;
    }
    public void exportRiskRecord(Long id, HttpServletRequest request, HttpServletResponse response) {
        try {
            RiskTraceDto dataObj = this.getDto(null, id);
            WordFile wordFile = new WordFile();
            wordFile.setModulePath("测试风险跟踪记录.docx");
            if (dataObj.getProject() == null) {
                dataObj.setProject(projectService.get(dataObj.getRiskMeasure().getProjectId()));
            }
            wordFile.setWordName(dataObj.getProject().getSoftwareName() + "_测试风险跟踪记录.docx");
            wordFileService.exportWordFile(request, dataObj, wordFile, response);
        } catch (UnsupportedEncodingException | FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}
modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/service/RiskTraceRecordService.java
@@ -42,6 +42,6 @@
    public List<RiskTraceRecord> getList(Long riskId) {
        Map<String, Object> params = new HashMap<>();
        params.put("riskId",riskId);
        return baseDao.getList(params);
        return baseDao.creatList(riskId);
    }
}
modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java
@@ -2,6 +2,8 @@
import cn.hutool.core.convert.Convert;
import com.zt.common.service.BaseService;
import com.zt.core.context.User;
import com.zt.core.context.UserContext;
import com.zt.life.export.dto.WordFile;
import com.zt.life.export.service.WordFileService;
import com.zt.life.modules.configItemWarehouse.dto.ConfigItemWarehouseDto;
@@ -75,6 +77,9 @@
     * @return
     */
    public List<TestCheckOrder> page(QueryFilter queryFilter) {
        User user = UserContext.getUser();
        Integer secretClass = user.getSecretClass();
        queryFilter.getQueryParams().put("secretClass",secretClass);
        List<TestCheckOrder> list = baseDao.getList(queryFilter.getQueryParams());
        if (list.size() > 0) {
            workflowService.getRunFlow(list, "csjcd");
modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/service/TestReviewCommentService.java
@@ -2,6 +2,8 @@
import cn.hutool.core.convert.Convert;
import com.zt.common.service.BaseService;
import com.zt.core.context.User;
import com.zt.core.context.UserContext;
import com.zt.life.export.dto.WordFile;
import com.zt.life.export.service.WordFileService;
import com.zt.life.modules.baselineRelease.dto.BaselineDto;
@@ -67,6 +69,9 @@
    public List<TestReviewComment> page(QueryFilter queryFilter) {
        String pageCode = String.valueOf(queryFilter.getParams().get("pageCode"));
        pageCode=pageCode.replace("%","");
        User user = UserContext.getUser();
        Integer secretClass = user.getSecretClass();
        queryFilter.getQueryParams().put("secretClass",secretClass);
        List<TestReviewComment> list = baseDao.getList(queryFilter.getQueryParams());
        if (list.size() > 0) {
            sysOssService.setListOsses(list, "test_review_comment_" + pageCode);
modules/mainPart/src/main/resources/fop.xml
File was deleted
modules/mainPart/src/main/resources/mapper/baselineRelease/BaselineReleaseDao.xml
@@ -6,9 +6,12 @@
    <select id="getList" resultType="com.zt.life.modules.baselineRelease.model.BaselineRelease">
        select a.*,p.software_name,p.software_identity
        from baseline_release a
        INNER JOIN  project p ON p.id = a.project_id
        JOIN  project p ON p.id = a.project_id
        <where>
            a.is_delete = 0
            <if test="secretClass!=null">
                and p.secret_class &lt;= #{secretClass}
            </if>
            <if test="whereSql!=null">
                and ${whereSql}
            </if>
modules/mainPart/src/main/resources/mapper/configAuditReport/ConfigAuditReportDao.xml
@@ -6,9 +6,12 @@
    <select id="getList" resultType="com.zt.life.modules.configAuditReport.model.ConfigAuditReport">
        select a.*,p.software_identity,p.software_name
        from config_audit_report a
        INNER JOIN project p ON p.id = a.project_id
        JOIN project p ON p.id = a.project_id
        <where>
            a.is_delete = 0 and p.is_delete = 0
            <if test="secretClass!=null">
                and p.secret_class &lt;= #{secretClass}
            </if>
            <if test="whereSql!=null">
                and ${whereSql}
            </if>
modules/mainPart/src/main/resources/mapper/configItemOutbound/ConfigItemChangeDao.xml
@@ -9,6 +9,9 @@
        INNER JOIN  project p ON p.id = a.project_id
        <where>
            a.is_delete = 0 and p.is_delete = 0
            <if test="secretClass!=null">
                and p.secret_class &lt;= #{secretClass}
            </if>
            <if test="whereSql!=null">
                and ${whereSql}
            </if>
modules/mainPart/src/main/resources/mapper/configItemWarehouse/ConfigItemWarehouseDao.xml
@@ -6,9 +6,12 @@
    <select id="getList" resultType="com.zt.life.modules.configItemWarehouse.model.ConfigItemWarehouse">
        select a.* ,p.software_name,p.code AS projectCode
        from config_item_warehouse a
        INNER JOIN  project p ON p.id = a.project_id
        JOIN project p ON p.id = a.project_id
        <where>
            a.is_delete = 0 and p.is_delete = 0
            <if test="secretClass!=null">
                and p.secret_class &lt;= #{secretClass}
            </if>
            <if test="whereSql!=null">
                and ${whereSql}
            </if>
modules/mainPart/src/main/resources/mapper/contractReview/ContractReviewDao.xml
@@ -6,9 +6,13 @@
    <select id="getList" resultType="com.zt.life.modules.contractReview.model.ContractReview">
        select a.*, s.code
        from contract_review a
        INNER JOIN  software_test_order s ON s.project_id = a.project_id
        JOIN  software_test_order s ON s.project_id = a.project_id
        JOIN project p ON p.id = a.project_id
        <where>
            a.is_delete = 0 and s.is_delete = 0
            <if test="secretClass!=null">
                and p.secret_class &lt;= #{secretClass}
            </if>
            <if test="whereSql!=null">
                and ${whereSql}
            </if>
modules/mainPart/src/main/resources/mapper/itemCirculatOrder/ItemCirculatOrderDao.xml
@@ -6,7 +6,10 @@
    <select id="getList" resultType="com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrder">
        select a.*, p.software_name,p.software_identity
        from item_circulat_order a
        INNER JOIN  project p ON p.id = a.project_id
        JOIN project p ON p.id = a.project_id
        <if test="secretClass!=null">
            and p.secret_class &lt;= #{secretClass}
        </if>
        <where>
            a.is_delete = 0 and p.is_delete = 0
            <if test="whereSql!=null">
modules/mainPart/src/main/resources/mapper/project/EnvironDao.xml
@@ -5,9 +5,12 @@
    <select id="getList" resultType="com.zt.life.modules.project.model.Environ">
        SELECT a.*, p.software_name,p.software_identity
        FROM environ a
        INNER JOIN  project p ON p.id = a.project_id
        JOIN  project p ON p.id = a.project_id
        <where>
            a.is_delete = 0 and p.is_delete = 0
            <if test="secretClass!=null">
                and p.secret_class &lt;= #{secretClass}
            </if>
            <if test="whereSql!=null">
                and ${whereSql}
            </if>
modules/mainPart/src/main/resources/mapper/project/ProjectDao.xml
@@ -11,6 +11,9 @@
            <if test="whereSql!=null">
                and ${whereSql}
            </if>
            <if test="secretClass!=null">
                and secret_class &lt;= #{secretClass}
            </if>
            <if test="tableName!=null and tableName!=''">
                and id not in (select project_id from ${tableName} where is_delete = 0
                <if test="pageCode !=null and pageCode !='' ">
modules/mainPart/src/main/resources/mapper/project/SoftwareTestOrderDao.xml
@@ -6,9 +6,12 @@
    <select id="getList" resultType="com.zt.life.modules.project.model.SoftwareTestOrder">
        SELECT a.*, p.software_name,p.software_identity
        FROM software_test_order a
        INNER JOIN project p ON p.id = a.project_id
        JOIN project p ON p.id = a.project_id
        <where>
            a.is_delete = 0 and p.is_delete = 0
            <if test="secretClass!=null">
                and p.secret_class &lt;= #{secretClass}
            </if>
            <if test="whereSql!=null">
                and ${whereSql}
            </if>
modules/mainPart/src/main/resources/mapper/qaAuditReport/QaAuditReportDao.xml
@@ -6,9 +6,12 @@
    <select id="getList" resultType="com.zt.life.modules.qaAuditReport.model.QaAuditReport">
        select a.*,p.software_name,p.software_identity
        from qa_audit_report a
            INNER JOIN  project p ON p.id = a.project_id
        JOIN  project p ON p.id = a.project_id
        <where>
            a.is_delete = 0 and p.is_delete = 0
            <if test="secretClass!=null">
                and p.secret_class &lt;= #{secretClass}
            </if>
            <if test="whereSql!=null">
                and ${whereSql}
            </if>
modules/mainPart/src/main/resources/mapper/riskTraceRecord/RiskMeasureDao.xml
@@ -4,10 +4,14 @@
<mapper namespace="com.zt.life.modules.riskTraceRecord.dao.RiskMeasureDao">
    <select id="getList" resultType="com.zt.life.modules.riskTraceRecord.model.RiskMeasure">
        select a.*
        select a.*,p.software_name,p.software_identity
        from risk_measure a
        JOIN  project p ON p.id = a.project_id
        <where>
            a.is_delete = 0
            a.is_delete = 0 and p.is_delete = 0
            <if test="secretClass!=null">
                and p.secret_class &lt;= #{secretClass}
            </if>
            <if test="whereSql!=null">
                and ${whereSql}
            </if>
modules/mainPart/src/main/resources/mapper/riskTraceRecord/RiskTraceItemDao.xml
@@ -9,7 +9,10 @@
        <where>
            a.is_delete = 0
            <if test="riskId!=null">
                and a.id = ${riskId}
                and a.risk_id = ${riskId}
            </if>
            <if test="riskId == null">
                and a.risk_id is Null
            </if>
        </where>
        <if test="orderBySql!=null">
modules/mainPart/src/main/resources/mapper/riskTraceRecord/RiskTraceRecordDao.xml
@@ -16,5 +16,20 @@
            ORDER BY ${orderBySql}
        </if>
    </select>
    <select id="creatList" resultType="com.zt.life.modules.riskTraceRecord.model.RiskTraceRecord">
        select a.risk_name,a.risk_desc,a.risk_level, b.*
        from risk_trace_item a
        left join risk_trace_record b on b.risk_id = a.risk_id and b.item_id = a.id
        <where>
            a.is_delete = 0
            <if test="riskId!=null">
                and a.risk_id = ${riskId}
            </if>
            <if test="riskId == null">
                and a.risk_id is Null
            </if>
        </where>
        order by a.sort
    </select>
</mapper>
modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderDao.xml
@@ -6,9 +6,12 @@
    <select id="getList" resultType="com.zt.life.modules.testCheckOrder.model.TestCheckOrder">
        select a.* ,p.software_identity,p.software_name
        from test_check_order a
        INNER JOIN project p ON p.id = a.project_id
        JOIN project p ON p.id = a.project_id
        <where>
            a.is_delete = 0 and p.is_delete = 0
            <if test="secretClass!=null">
                and p.secret_class &lt;= #{secretClass}
            </if>
            <if test="whereSql!=null">
                and ${whereSql}
            </if>
modules/mainPart/src/main/resources/mapper/testReviewComment/TestReviewCommentDao.xml
@@ -9,6 +9,9 @@
        INNER JOIN  project p ON p.id = a.project_id
        <where>
            a.is_delete = 0
            <if test="secretClass!=null">
                and p.secret_class &lt;= #{secretClass}
            </if>
            <if test="whereSql!=null">
                and ${whereSql}
            </if>
web/packages/i18n/zh-CN.js
@@ -147,6 +147,7 @@
t.user.resetPassword = '重置密码'
t.user.userCode = '工号'
t.user.realName = '真实姓名'
t.user.secretClass = '用户密级'
t.user.gender = '性别'
t.user.select = '选择用户'
t.user.selecterror = '请选择一条记录'
web/src/views/modules/project/Project-AddOrUpdate.vue
@@ -167,6 +167,7 @@
          projectConfiger: '',
          bizDeptId: '',
          isContract: '',
          usersecretClass: ''
        },
        projectLeaderList: [],
        projectTestersList: [],
@@ -221,6 +222,10 @@
      },
      // 表单提交
      async formSubmit() {
        if (this.dataForm.secretClass>this.dataForm.usersecretClass){
          this.$alert("当前项目设置的密级高于当前用户的密级,请重新设置")
          return
        }
        if (this.dataForm && this.dataForm.projectTesters instanceof Array) {
          this.dataForm.projectTesters = this.dataForm.projectTesters.join(',')
          console.log(this.dataForm.projectTesters)
web/src/views/modules/riskTraceRecord/RiskTraceItem-AddOrUpdate.vue
@@ -2,17 +2,33 @@
  <zt-dialog ref="dialog"  @confirm="formSubmit">
    <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="0px">
      <div style="border: 1px solid rgba(0,0,0,.2);width: 100%">
        <el-table  :data="dataForm.dataList" border>
          <el-table-column width="60px" label="风险名称" prop=""></el-table-column>
        <el-table  :data="dataForm.riskList" border>
          <el-table-column width="60px" label="风险名称" prop="riskName"></el-table-column>
          <el-table-column label="风险">
            <el-table-column label="风险描述" prop=""></el-table-column>
            <el-table-column  width="60px" label="风险等级" prop=""></el-table-column>
            <el-table-column label="风险描述" prop="riskDesc"></el-table-column>
            <el-table-column  width="60px" label="风险等级" prop="riskLevel"></el-table-column>
          </el-table-column>
          <el-table-column label="风险跟踪记录(发生概率)">
            <el-table-column label="测试需求分析与策划" prop=""></el-table-column>
            <el-table-column label="测试设计" prop=""></el-table-column>
            <el-table-column label="测试执行" prop=""></el-table-column>
            <el-table-column label="测试总结" prop=""></el-table-column>
            <el-table-column label="测试需求分析与策划" prop="testRequire">
              <template v-slot="{ row }">
                <el-input v-model="row.testRequire" placeholder="测试需求分析与策划"></el-input>
              </template>
            </el-table-column>
            <el-table-column label="测试设计" prop="testDesign">
              <template v-slot="{ row }">
                <el-input v-model="row.testDesign" placeholder="测试设计"></el-input>
              </template>
            </el-table-column>
            <el-table-column label="测试执行" prop="testExecute">
              <template v-slot="{ row }">
                <el-input v-model="row.testExecute" placeholder="测试执行"></el-input>
              </template>
            </el-table-column>
            <el-table-column label="测试总结" prop="testSummary">
              <template v-slot="{ row }">
                <el-input v-model="row.testSummary" placeholder="测试总结"></el-input>
              </template>
            </el-table-column>
          </el-table-column>
        </el-table>
@@ -22,12 +38,12 @@
            </div>
            <div  class=" el-border-left" style="width: 20%">
              <el-form-item class="form-margin-top-bottom">
                <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                <el-input v-model="dataForm.riskMeasure.requireRiskTrackers" class="risk-form-padding"></el-input>
              </el-form-item>
              <el-form-item class="form-margin-top-bottom">
                <el-date-picker
                  class="risk-form-padding"
                  v-model="dataForm.contractSignDate"
                  v-model="dataForm.riskMeasure.requireRiskDate"
                  type="date"
                  placeholder="选择日期">
                </el-date-picker>
@@ -35,12 +51,12 @@
            </div>
            <div  class=" el-border-left" style="width: 20%">
              <el-form-item class="form-margin-top-bottom">
                <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                <el-input v-model="dataForm.riskMeasure.designRiskTrackers" class="risk-form-padding"></el-input>
              </el-form-item>
              <el-form-item class="form-margin-top-bottom">
                <el-date-picker
                  class="risk-form-padding"
                  v-model="dataForm.contractSignDate"
                  v-model="dataForm.riskMeasure.designRiskDate"
                  type="date"
                  placeholder="选择日期">
                </el-date-picker>
@@ -48,12 +64,12 @@
            </div>
            <div class=" el-border-left" style="width: 20%">
              <el-form-item class="form-margin-top-bottom">
                <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                <el-input v-model="dataForm.riskMeasure.executeRiskTrackers" class="risk-form-padding"></el-input>
              </el-form-item>
              <el-form-item class="form-margin-top-bottom">
                <el-date-picker
                  class="risk-form-padding"
                  v-model="dataForm.contractSignDate"
                  v-model="dataForm.riskMeasure.executeRiskDate"
                  type="date"
                  placeholder="选择日期">
                </el-date-picker>
@@ -61,12 +77,12 @@
            </div>
            <div class=" el-border-left" style="width: 20%">
              <el-form-item class="form-margin-top-bottom">
                <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                <el-input v-model="dataForm.riskMeasure.summaryRiskTrackers" class="risk-form-padding"></el-input>
              </el-form-item>
              <el-form-item class="form-margin-top-bottom">
                <el-date-picker
                  class="risk-form-padding"
                  v-model="dataForm.contractSignDate"
                  v-model="dataForm.riskMeasure.summaryRiskDate"
                  type="date"
                  placeholder="选择日期">
                </el-date-picker>
@@ -83,16 +99,16 @@
                  采取措施:
                </div>
                <el-form-item class="form-margin-top-bottom el-border-left" style="width:22.25%" >
                  <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                  <el-input v-model="dataForm.riskMeasure.requireMeasure" class="risk-form-padding"></el-input>
                </el-form-item>
                <el-form-item class="form-margin-top-bottom el-border-left" style="width:22.25%">
                  <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                  <el-input v-model="dataForm.riskMeasure.designMeasure" class="risk-form-padding"></el-input>
                </el-form-item>
                <el-form-item class="form-margin-top-bottom el-border-left" style="width:22.25%">
                  <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                  <el-input v-model="dataForm.riskMeasure.executeMeasure" class="risk-form-padding"></el-input>
                </el-form-item>
                <el-form-item class="form-margin-top-bottom el-border-left" style="width:22.25%">
                  <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                  <el-input v-model="dataForm.riskMeasure.summaryMeasure" class="risk-form-padding"></el-input>
                </el-form-item>
              </div>
              <div class="el-risk-flex el-border-bottom ">
@@ -101,12 +117,12 @@
                </div>
                <div class=" el-border-left" style="width:22.25%">
                  <el-form-item class="form-margin-top-bottom">
                    <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                    <el-input v-model="dataForm.riskMeasure.requireRecorder" class="risk-form-padding"></el-input>
                  </el-form-item>
                  <el-form-item class="form-margin-top-bottom">
                    <el-date-picker
                      class="risk-form-padding"
                      v-model="dataForm.contractSignDate"
                      v-model="dataForm.riskMeasure.requireRecordDate"
                      type="date"
                      placeholder="选择日期">
                    </el-date-picker>
@@ -114,12 +130,12 @@
                </div>
                <div class=" el-border-left" style="width:22.25%">
                  <el-form-item class="form-margin-top-bottom">
                    <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                    <el-input v-model="dataForm.riskMeasure.designRecorder" class="risk-form-padding"></el-input>
                  </el-form-item>
                  <el-form-item class="form-margin-top-bottom">
                    <el-date-picker
                      class="risk-form-padding"
                      v-model="dataForm.contractSignDate"
                      v-model="dataForm.riskMeasure.designRecordDate"
                      type="date"
                      placeholder="选择日期">
                    </el-date-picker>
@@ -127,12 +143,12 @@
                </div>
                <div class=" el-border-left" style="width:22.25%">
                  <el-form-item class="form-margin-top-bottom">
                    <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                    <el-input v-model="dataForm.riskMeasure.executeRecorder" class="risk-form-padding"></el-input>
                  </el-form-item>
                  <el-form-item class="form-margin-top-bottom">
                    <el-date-picker
                      class="risk-form-padding"
                      v-model="dataForm.contractSignDate"
                      v-model="dataForm.riskMeasure.executeRecordDate"
                      type="date"
                      placeholder="选择日期">
                    </el-date-picker>
@@ -140,12 +156,12 @@
                </div>
                <div class=" el-border-left" style="width:22.25%">
                  <el-form-item class="form-margin-top-bottom">
                    <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                    <el-input v-model="dataForm.riskMeasure.summaryRecorder" class="risk-form-padding"></el-input>
                  </el-form-item>
                  <el-form-item class="form-margin-top-bottom">
                    <el-date-picker
                      class="risk-form-padding"
                      v-model="dataForm.contractSignDate"
                      v-model="dataForm.riskMeasure.summaryRecordDate"
                      type="date"
                      placeholder="选择日期">
                    </el-date-picker>
@@ -157,16 +173,16 @@
                  措施有效性评估:
                </div>
                <el-form-item class="form-margin-top-bottom el-border-left" style="width:22.25%">
                  <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                  <el-input v-model="dataForm.riskMeasure.requireEvaluate" class="risk-form-padding"></el-input>
                </el-form-item>
                <el-form-item class="form-margin-top-bottom el-border-left" style="width:22.25%">
                  <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                  <el-input v-model="dataForm.riskMeasure.designEvaluate" class="risk-form-padding"></el-input>
                </el-form-item>
                <el-form-item class="form-margin-top-bottom el-border-left" style="width:22.25%">
                  <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                  <el-input v-model="dataForm.riskMeasure.executeEvaluate" class="risk-form-padding"></el-input>
                </el-form-item>
                <el-form-item class="form-margin-top-bottom el-border-left" style="width:22.25%">
                  <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                  <el-input v-model="dataForm.riskMeasure.summaryEvaluate" class="risk-form-padding"></el-input>
                </el-form-item>
              </div>
              <div class="el-risk-flex ">
@@ -175,12 +191,12 @@
                </div>
                <div class=" el-border-left" style="width:22.25%">
                  <el-form-item class="form-margin-top-bottom">
                    <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                    <el-input v-model="dataForm.riskMeasure.requireLeader" class="risk-form-padding"></el-input>
                  </el-form-item>
                  <el-form-item class="form-margin-top-bottom">
                    <el-date-picker
                      class="risk-form-padding"
                      v-model="dataForm.contractSignDate"
                      v-model="dataForm.riskMeasure.requireLeadDate"
                      type="date"
                      placeholder="选择日期">
                    </el-date-picker>
@@ -188,12 +204,12 @@
                </div>
                <div class=" el-border-left" style="width:22.25%">
                  <el-form-item class="form-margin-top-bottom">
                    <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                    <el-input v-model="dataForm.riskMeasure.designLeader" class="risk-form-padding"></el-input>
                  </el-form-item>
                  <el-form-item class="form-margin-top-bottom">
                    <el-date-picker
                      class="risk-form-padding"
                      v-model="dataForm.contractSignDate"
                      v-model="dataForm.riskMeasure.designLeadDate"
                      type="date"
                      placeholder="选择日期">
                    </el-date-picker>
@@ -201,12 +217,12 @@
                </div>
                <div class=" el-border-left" style="width:22.25%">
                  <el-form-item class="form-margin-top-bottom">
                    <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                    <el-input v-model="dataForm.riskMeasure.executeLeader" class="risk-form-padding"></el-input>
                  </el-form-item>
                  <el-form-item class="form-margin-top-bottom">
                    <el-date-picker
                      class="risk-form-padding"
                      v-model="dataForm.contractSignDate"
                      v-model="dataForm.riskMeasure.executeLeadDate"
                      type="date"
                      placeholder="选择日期">
                    </el-date-picker>
@@ -214,12 +230,12 @@
                </div>
                <div class=" el-border-left" style="width:22.25%">
                  <el-form-item class="form-margin-top-bottom">
                    <el-input v-model="dataForm.name" class="risk-form-padding"></el-input>
                    <el-input v-model="dataForm.riskMeasure.summaryLeader" class="risk-form-padding"></el-input>
                  </el-form-item>
                  <el-form-item class="form-margin-top-bottom">
                    <el-date-picker
                      class="risk-form-padding"
                      v-model="dataForm.contractSignDate"
                      v-model="dataForm.riskMeasure.summaryLeadDate"
                      type="date"
                      placeholder="选择日期">
                    </el-date-picker>
@@ -241,23 +257,69 @@
          </div>
        </div>
      </div>
  <!--    <div class="el-flex risk-sc" style="height: 60px">
        <el-form-item class="marginTopAndMarginBottom" style="width: 100%">
          <config-uploader :lineHeight="true" busi-type="risk_trace_item" model-name="dataForm" :dataForm="dataForm"
                           v-model="dataForm.files"/>
        </el-form-item>
      </div>-->
    </el-form>
    <template v-slot:footer>
      <el-button v-if="dataForm.disabled" type="primary" @click="print()">打印</el-button>
    </template>
  </zt-dialog>
</template>
<script>
  import qs from "qs";
  import Cookies from "js-cookie";
  export default {
    data() {
      return {
        dataForm: {
          disabled:'false',
          id: '',
          sort: '',
          riskName: '',
          riskDesc: '',
          riskLevel: '',
          dataList:[],
          contractSignDate:'',
          riskMeasure:{
            requireRiskTrackers:'',
            requireRiskDate:'',
            designRiskTrackers:'',
            designRiskDate:'',
            executeRiskTrackers:'',
            executeRiskDate:'',
            summaryRiskTrackers:'',
            summaryRiskDate:'',
            requireMeasure:'',
            designMeasure:'',
            executeMeasure:'',
            summaryMeasure:'',
            requireRecorder:'',
            requireRecordDate:'',
            designRecorder:'',
            designRecordDate:'',
            executeRecorder:'',
            executeRecordDate:'',
            summaryRecorder:'',
            summaryRecordDate:'',
            requireEvaluate:'',
            designEvaluate:'',
            executeEvaluate:'',
            summaryEvaluate:'',
            requireLeader:'',
            requireLeadDate:'',
            designLeader:'',
            designLeadDate:'',
            executeLeader:'',
            executeLeadDate:'',
            summaryLeader:'',
            summaryLeadDate:''
          },
          project: {
            softwareIdentity: '',
            softwareName: ''
          },
          riskList:[],
          itemList:[]
        }
      }
    },
@@ -280,14 +342,23 @@
          riskId: this.dataForm.id,
          projectId: this.dataForm.projectId
        }
        let res = await this.$http.get(`/riskTraceRecord/RiskTraceItem/`,{params:params})
        let res = await this.$http.get(`/riskTraceRecord/RiskTraceItem/getDto`,{params:params})
        this.dataForm = {
          ...this.dataForm,
          ...res.data
        }
      },
      async print() {
        var params = qs.stringify({
          token: Cookies.get('token'),
          id: this.dataForm.id
        })
        let apiURL = `/riskTraceRecord/RiskTraceItem/exportRiskRecord`
        window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${params}`
      },
      // 表单提交
      async formSubmit() {
        console.log(this.dataForm,"formSubmit")
        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/riskTraceRecord/RiskTraceItem/', this.dataForm)
        if (res.success) {
          await this.$tip.success()
@@ -329,4 +400,7 @@
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.risk-sc > .el-form-item > .el-form-item__content {
  width: 100%;
}
</style>
web/src/views/modules/riskTraceRecord/RiskTraceItem.vue
@@ -1,7 +1,7 @@
<template>
  <el-card shadow="never" class="aui-card--fill">
    <div class="mod-riskTraceRecord-riskTraceItem}">
      <zt-table-wraper query-url="/riskTraceRecord/RiskTraceItem/page" delete-url="/riskTraceRecord/RiskTraceItem/deleteRisk"
      <zt-table-wraper query-url="/riskTraceRecord/RiskMeasure/page" delete-url="/riskTraceRecord/RiskMeasure/deleteRisk"
                       v-slot="{ table }">
        <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
          <el-form-item>
@@ -36,7 +36,7 @@
                       @refreshDataList="table.query"
                       @setProjectInfo="openAddWin">
        </ProjectSelect>
        <Preview ref="view" :pageMarkerfun="RiskTrace"></Preview>
    <!--    <Preview ref="view" :pageMarkerfun="RiskTrace"></Preview>-->
      </zt-table-wraper>
    </div>
  </el-card>
web/src/views/modules/sys/user-add-or-update.vue
@@ -31,6 +31,9 @@
          <zt-form-item prop="nickName" :label="$t('user.nickName')">
            <el-input v-model="dataForm.nickName" :placeholder="$t('user.nickName')"></el-input>
          </zt-form-item>
          <zt-form-item prop="secretClass" :label="$t('user.secretClass')" rules="required">
            <zt-dict v-model="dataForm.secretClass" dict="secret_class" :placeholder="$t('user.secretClass') "></zt-dict>
          </zt-form-item>
          <zt-form-item prop="simpleSpelling" :label="$t('user.simpleSpelling')">
            <el-input v-model="dataForm.simpleSpelling" :placeholder="$t('user.simpleSpelling')"></el-input>
          </zt-form-item>
@@ -104,6 +107,7 @@
          deptName: '',
          realName: '',
          nickName: '',
          secretClass:'',
          headUrl: '',
          simpleSpelling: '',
          fullSpelling: '',
zt/common/src/main/java/com/zt/core/context/User.java
@@ -32,6 +32,7 @@
    private Long id;
    private String username;
    private String realName;
    private Integer secretClass;
    private String headUrl;
    private Integer gender;
    private String email;
zt/common/src/main/java/com/zt/core/sys/model/SysUser.java
@@ -51,6 +51,7 @@
    @ApiModelProperty(value = "员工工号", required = false)
    // @NotBlank(message = "员工工号不能为空", groups = DefaultGroup.class)
    private String userCode;
    private Integer secretClass;
    @ApiModelProperty(value = "用户名", required = true)
    @NotBlank(message = "用户名不能为空", groups = DefaultGroup.class)