| | |
| | | |
| | | import com.zt.life.sys.model.SysUserReg; |
| | | import com.zt.life.sys.model.SysUserRegister; |
| | | import com.zt.modules.sys.dto.UserDto; |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | @ApiOperation("返回用户列表") |
| | | @LogOperation("返回用户列表") |
| | | public Result<List<SysUser>> getUsersList() { |
| | | return Result.ok(sysUserService.getUsersList()); |
| | | return Result.ok(sysUserService.getUsersList("","")); |
| | | } |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "病毒库版本") |
| | | private String virusLibraryVersion; |
| | | |
| | | @ApiModelProperty(value = "检测接收人") |
| | | private String detectAcceptor; |
| | | |
| | | @ApiModelProperty(value = "检测接收人ID") |
| | | private String detectAcceptorId; |
| | | |
| | | @ApiModelProperty(value = "检测接收时间") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date detectAcceptDate; |
| | | |
| | | @ApiModelProperty(value = "检测接收情况说明") |
| | | private String detectAcceptSituation; |
| | | |
| | | @ApiModelProperty(value = "入库人") |
| | | private String depositor; |
| | | |
| | | @ApiModelProperty(value = "入库人ID") |
| | | private String depositorId; |
| | | |
| | | @ApiModelProperty(value = "入库时间") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date depositDate; |
| | | |
| | | @ApiModelProperty(value = "入库情况说明") |
| | | private String depositSituation; |
| | | |
| | | @ApiModelProperty(value = "校准检测人") |
| | | private String calibratDetector; |
| | | |
| | |
| | | dataObj.getCirculatOrder().setCalibratDetector(detectorPath); |
| | | String issuerPath = "文件图片:" + getFilesPath.getSignPath(Convert.toLong(dataObj.getCirculatOrder().getItemIssuerId())); |
| | | dataObj.getCirculatOrder().setItemIssuer(issuerPath); |
| | | String depositPath = "文件图片:" + getFilesPath.getSignPath(Convert.toLong(dataObj.getCirculatOrder().getDepositorId())); |
| | | dataObj.getCirculatOrder().setDepositor(depositPath); |
| | | String detectAcceptorPath = "文件图片:" + getFilesPath.getSignPath(Convert.toLong(dataObj.getCirculatOrder().getDetectAcceptorId())); |
| | | dataObj.getCirculatOrder().setDetectAcceptor(detectAcceptorPath); |
| | | //通用字典列表字符串生成 |
| | | String itemRequireStr = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getItemRequire(), "is_or_not", false); |
| | | dataObj.getCirculatOrder().setItemRequireStr(itemRequireStr); |
| | |
| | | String issueSituationStr = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getIssueSituation(), "is_or_not", false); |
| | | dataObj.getCirculatOrder().setIssueSituationStr(issueSituationStr); |
| | | |
| | | String depositSituation = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getDepositSituation(), "is_or_not", false); |
| | | dataObj.getCirculatOrder().setDepositSituation(depositSituation); |
| | | |
| | | String detectAcceptSituation = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getDetectAcceptSituation(), "is_or_not", false); |
| | | dataObj.getCirculatOrder().setDetectAcceptSituation(detectAcceptSituation); |
| | | |
| | | for (ItemCirculatOrderTechnical technical : dataObj.getTechnicalList()) { |
| | | String value = technical.getSecretClass(); |
| | | String secretClassStr = getShowDictList.getShowDictList(value, "secret_class", false); |
| | |
| | | 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.UserContext; |
| | | import com.zt.core.sys.model.SysUser; |
| | | import com.zt.life.modules.project.dto.ProjectUserDto; |
| | | import com.zt.life.modules.project.model.Project; |
| | | import com.zt.life.modules.project.service.ProjectService; |
| | | import com.zt.modules.coderule.service.SysCodeRuleService; |
| | |
| | | queryFilter.getParams().replace("tableName",""); |
| | | } |
| | | List<Project> Project =projectService.page(queryFilter); |
| | | for (Project project2 :Project){ |
| | | String leaderName = project2.getProjectLeader(); |
| | | if (leaderName.length()>10){ |
| | | leaderName=sysUserService.getNames(leaderName); |
| | | } |
| | | project2.setProjectLeader(leaderName); |
| | | } |
| | | return PageResult.ok(Project); |
| | | } |
| | | |
| | |
| | | @ApiOperation("信息") |
| | | public Result<Project> get(@PathVariable("id") Long id) { |
| | | Project data = projectService.get(id); |
| | | if (data.getBizDeptId() == null) { |
| | | data.setBizDeptId(UserContext.getDeptId().toString()); |
| | | } |
| | | return Result.ok(data); |
| | | } |
| | | |
| | |
| | | map.put("year", year); |
| | | project.setYear(year); |
| | | project.setCode(sysCodeRuleService.getNewCode(map)); |
| | | String leaderName = sysUserService.getUsersName(project.getProjectLeader()); |
| | | project.setProjectLeader(leaderName); |
| | | projectService.insert(project); |
| | | return Result.ok(); |
| | | } |
| | |
| | | public Result update(@RequestBody Project project) { |
| | | //效验数据 |
| | | ValidatorUtils.validateEntity(project, UpdateGroup.class, DefaultGroup.class); |
| | | String leaderName = project.getProjectLeader(); |
| | | String projectTesters =project.getProjectTesters(); |
| | | String projectReviewer =project.getProjectReviewer(); |
| | | if (leaderName.length()>10){ |
| | | leaderName=sysUserService.getNames(leaderName); |
| | | } |
| | | if (projectTesters.length()>10){ |
| | | projectTesters=sysUserService.getNames(projectTesters); |
| | | } |
| | | if (projectReviewer.length()>10){ |
| | | projectReviewer=sysUserService.getNames(projectReviewer); |
| | | } |
| | | project.setProjectLeader(leaderName); |
| | | project.setProjectTesters(projectTesters); |
| | | project.setProjectReviewer(projectReviewer); |
| | | projectService.update(project); |
| | | return Result.ok(); |
| | | } |
| | |
| | | return Result.ok(); |
| | | } |
| | | |
| | | @GetMapping("getUsersLists") |
| | | @ApiOperation("返回用户列表") |
| | | @LogOperation("返回用户列表") |
| | | public Result<ProjectUserDto> getUsersLists(String deptId) { |
| | | ProjectUserDto projectUserDto = new ProjectUserDto(); |
| | | projectUserDto.setZrr(sysUserService.getUsersList("zrr", deptId)); |
| | | projectUserDto.setCsry(sysUserService.getUsersList("csry", deptId)); |
| | | projectUserDto.setShry(sysUserService.getUsersList("shry", deptId)); |
| | | projectUserDto.setPzry(sysUserService.getUsersList("pzry", deptId)); |
| | | return Result.ok(projectUserDto); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.zt.life.modules.project.dto; |
| | | |
| | | import com.zt.core.sys.model.SysUser; |
| | | import com.zt.life.modules.project.model.*; |
| | | import com.zt.life.modules.sysBaseInfo.model.TestAgencyInfo; |
| | | import com.zt.life.sys.dto.OssDto; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | public class ProjectUserDto { |
| | | private List<SysUser> zrr; |
| | | private List<SysUser> csry; |
| | | private List<SysUser> shry; |
| | | private List<SysUser> pzry; |
| | | } |
| | | |
| | |
| | | @ApiModelProperty(value = "项目审核人员") |
| | | private String projectReviewer; |
| | | |
| | | @ApiModelProperty(value = "项目配置人员") |
| | | private String projectConfiger; |
| | | |
| | | @ApiModelProperty(value = "业务部门ID") |
| | | private String bizDeptId; |
| | | |
| | | @ApiModelProperty(value = "是否签署合同") |
| | | private Integer isContract; |
| | | |
New file |
| | |
| | | package com.zt.life.modules.project.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.zt.common.entity.BusiEntity; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | /** |
| | | * project |
| | | * |
| | | * @author zt generator |
| | | * @since 1.0.0 2023-11-07 |
| | | */ |
| | | @Data |
| | | public class ProjectUserName { |
| | | @ApiModelProperty(value = "项目负责人") |
| | | private String projectLeaderName; |
| | | |
| | | @ApiModelProperty(value = "项目测试人员") |
| | | private String projectTestersName; |
| | | |
| | | @ApiModelProperty(value = "项目审核人员") |
| | | private String projectReviewerName; |
| | | |
| | | @ApiModelProperty(value = "项目配置人员") |
| | | private String projectConfigerName; |
| | | } |
| | |
| | | import com.zt.common.validator.group.DefaultGroup; |
| | | import com.zt.common.validator.group.UpdateGroup; |
| | | import com.zt.life.modules.configAuditReport.dto.ConfigAuditDto; |
| | | import com.zt.life.modules.project.model.ProjectUserName; |
| | | import com.zt.life.modules.qaAuditReport.dto.QaAuditReportDto; |
| | | import com.zt.life.modules.qaAuditReport.model.QaAuditReport; |
| | | import com.zt.life.modules.qaAuditReport.service.QaAuditReportService; |
| | | import com.zt.life.sys.dto.OssDto; |
| | | import com.zt.life.sys.service.SysOssConfigService; |
| | | import com.zt.modules.coderule.service.SysCodeRuleService; |
| | | import com.zt.modules.sys.service.SysUserService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | |
| | | @Autowired |
| | | private SysOssConfigService sysOssConfigService; |
| | | |
| | | @Autowired |
| | | private SysUserService sysUserService; |
| | | |
| | | @GetMapping("page") |
| | | @ApiOperation("分页") |
| | | @ApiImplicitParams({ |
| | |
| | | @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 = "code", value = "编号", dataType = Constant.QT.STRING, format = "code^LK") }) |
| | | @ApiImplicitParam(name = "code", value = "编号", dataType = Constant.QT.STRING, format = "a.code^LK"), |
| | | @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<QaAuditReport> page(@ApiIgnore @QueryParam QueryFilter queryFilter){ |
| | | return PageResult.ok(qaAuditReportService.page(queryFilter)); |
| | | } |
| | |
| | | qaAuditReportService.exportQaReport(id, request, response); |
| | | } |
| | | |
| | | @GetMapping("getNameById") |
| | | @ApiOperation("用户名") |
| | | public Result<ProjectUserName> getNameById(String projectLeaderId, String projectTestersId, String projectConfigerId) { |
| | | ProjectUserName name =new ProjectUserName(); |
| | | if (projectLeaderId.length()>10||projectTestersId.length()>10||projectConfigerId.length()>10){ |
| | | name.setProjectLeaderName(sysUserService.getNames(projectLeaderId)); |
| | | name.setProjectTestersName(sysUserService.getNames(projectTestersId)); |
| | | name.setProjectConfigerName(sysUserService.getNames(projectConfigerId)); |
| | | } |
| | | return Result.ok(name); |
| | | } |
| | | } |
| | |
| | | package com.zt.life.modules.qaAuditReport.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; |
| | |
| | | @ApiModelProperty(value = "年份") |
| | | private String year; |
| | | |
| | | @TableField(exist = false) |
| | | @ApiModelProperty(value = "项目标识") |
| | | private String softwareName; |
| | | |
| | | @TableField(exist = false) |
| | | @ApiModelProperty(value = "项目名称") |
| | | private String softwareIdentity; |
| | | |
| | | } |
| | |
| | | private String oddNum; |
| | | |
| | | @ApiModelProperty(value = "不符合项描述") |
| | | private String describe; |
| | | private String notTrueDescribe; |
| | | |
| | | @ApiModelProperty(value = "所属工作产品/过程") |
| | | private String workProcess; |
| | |
| | | public List<QaAuditReport> page(QueryFilter queryFilter) { |
| | | List<QaAuditReport> list = baseDao.getList(queryFilter.getQueryParams()); |
| | | if (list != null && list.size() > 0) { |
| | | workflowService.getRunFlow(list, "pzbgsh"); |
| | | workflowService.getRunFlow(list, "qashbg"); |
| | | sysOssService.setListOsses(list, "qa_audit_report"); |
| | | } |
| | | return list; |
New file |
| | |
| | | package com.zt.life.modules.riskTraceRecord.controller; |
| | | |
| | | |
| | | import com.zt.common.annotation.LogOperation; |
| | | import com.zt.common.constant.Constant; |
| | | import com.zt.common.annotation.QueryParam; |
| | | import com.zt.common.db.query.QueryFilter; |
| | | import com.zt.common.servlet.Result; |
| | | import com.zt.common.servlet.PageResult; |
| | | import com.zt.common.validator.AssertUtils; |
| | | import com.zt.common.validator.ValidatorUtils; |
| | | import com.zt.common.validator.group.AddGroup; |
| | | import com.zt.common.validator.group.DefaultGroup; |
| | | import com.zt.common.validator.group.UpdateGroup; |
| | | import com.zt.life.modules.riskTraceRecord.model.RiskMeasure; |
| | | import com.zt.life.modules.riskTraceRecord.service.RiskMeasureService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import springfox.documentation.annotations.ApiIgnore; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.util.List; |
| | | |
| | | |
| | | /** |
| | | * risk_measure |
| | | * |
| | | * @author zt generator |
| | | * @since 1.0.0 2024-01-09 |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/riskTraceRecord/RiskMeasure/") |
| | | @Api(tags="risk_measure") |
| | | public class RiskMeasureController { |
| | | @Autowired |
| | | private RiskMeasureService riskMeasureService; |
| | | |
| | | @GetMapping("page") |
| | | @ApiOperation("分页") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT), |
| | | @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), |
| | | }) |
| | | public PageResult<RiskMeasure> page(@ApiIgnore @QueryParam QueryFilter queryFilter){ |
| | | |
| | | return PageResult.ok(riskMeasureService.page(queryFilter)); |
| | | } |
| | | |
| | | @GetMapping("{id}") |
| | | @ApiOperation("信息") |
| | | public Result<RiskMeasure> get(@PathVariable("id") Long id){ |
| | | RiskMeasure data = riskMeasureService.get(id); |
| | | return Result.ok(data); |
| | | } |
| | | |
| | | @PostMapping |
| | | @ApiOperation("新增") |
| | | @LogOperation("新增") |
| | | public Result insert(@RequestBody RiskMeasure riskMeasure){ |
| | | //效验数据 |
| | | ValidatorUtils.validateEntity(riskMeasure, AddGroup.class, DefaultGroup.class); |
| | | riskMeasureService.insert(riskMeasure); |
| | | |
| | | return Result.ok(); |
| | | } |
| | | |
| | | @PutMapping |
| | | @ApiOperation("修改") |
| | | @LogOperation("修改") |
| | | public Result update(@RequestBody RiskMeasure riskMeasure){ |
| | | //效验数据 |
| | | ValidatorUtils.validateEntity(riskMeasure, UpdateGroup.class, DefaultGroup.class); |
| | | riskMeasureService.update(riskMeasure); |
| | | |
| | | return Result.ok(); |
| | | } |
| | | |
| | | @DeleteMapping |
| | | @ApiOperation("删除") |
| | | @LogOperation("删除") |
| | | public Result delete(@RequestBody Long[] ids){ |
| | | //效验数据 |
| | | AssertUtils.isArrayEmpty(ids, "id"); |
| | | riskMeasureService.delete(ids); |
| | | |
| | | return Result.ok(); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.zt.life.modules.riskTraceRecord.controller; |
| | | |
| | | |
| | | import com.zt.common.annotation.LogOperation; |
| | | import com.zt.common.constant.Constant; |
| | | import com.zt.common.annotation.QueryParam; |
| | | import com.zt.common.db.query.QueryFilter; |
| | | import com.zt.common.servlet.Result; |
| | | import com.zt.common.servlet.PageResult; |
| | | import com.zt.common.validator.AssertUtils; |
| | | import com.zt.common.validator.ValidatorUtils; |
| | | import com.zt.common.validator.group.AddGroup; |
| | | import com.zt.common.validator.group.DefaultGroup; |
| | | import com.zt.common.validator.group.UpdateGroup; |
| | | import com.zt.life.modules.qaAuditReport.dto.QaAuditReportDto; |
| | | import com.zt.life.modules.riskTraceRecord.dto.RiskTraceDto; |
| | | import com.zt.life.modules.riskTraceRecord.model.RiskTraceItem; |
| | | import com.zt.life.modules.riskTraceRecord.service.RiskTraceItemService; |
| | | import com.zt.life.sys.dto.OssDto; |
| | | import com.zt.life.sys.service.SysOssConfigService; |
| | | import com.zt.modules.coderule.service.SysCodeRuleService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import springfox.documentation.annotations.ApiIgnore; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * risk_trace_item |
| | | * |
| | | * @author zt generator |
| | | * @since 1.0.0 2024-01-09 |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/riskTraceRecord/RiskTraceItem/") |
| | | @Api(tags = "risk_trace_item") |
| | | public class RiskTraceItemController { |
| | | @Autowired |
| | | private RiskTraceItemService riskTraceItemService; |
| | | @Autowired |
| | | private SysCodeRuleService sysCodeRuleService; |
| | | |
| | | @Autowired |
| | | private SysOssConfigService sysOssConfigService; |
| | | |
| | | @GetMapping("page") |
| | | @ApiOperation("分页") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT), |
| | | @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)); |
| | | } |
| | | |
| | | @GetMapping("getDto") |
| | | @ApiOperation("信息") |
| | | public Result<RiskTraceDto> getDto(Long projectId, Long riskId) { |
| | | RiskTraceDto data = riskTraceItemService.getDto(projectId, riskId); |
| | | if (riskId != null) { |
| | | OssDto ossDto = sysOssConfigService.getOssByBusiType(riskId, "risk_trace_item"); |
| | | if (ossDto != null) { |
| | | data.setFiles(ossDto); |
| | | } |
| | | } |
| | | return Result.ok(data); |
| | | } |
| | | |
| | | @PostMapping |
| | | @ApiOperation("新增") |
| | | @LogOperation("新增") |
| | | public Result insert(@RequestBody RiskTraceDto riskTraceDto) { |
| | | //效验数据 |
| | | ValidatorUtils.validateEntity(riskTraceDto, AddGroup.class, DefaultGroup.class); |
| | | Boolean result = riskTraceItemService.save(riskTraceDto); |
| | | return Result.ok(); |
| | | } |
| | | |
| | | @PutMapping |
| | | @ApiOperation("修改") |
| | | @LogOperation("修改") |
| | | public Result update(@RequestBody RiskTraceDto riskTraceDto) { |
| | | //效验数据 |
| | | ValidatorUtils.validateEntity(riskTraceDto, AddGroup.class, DefaultGroup.class); |
| | | Boolean result = riskTraceItemService.save(riskTraceDto); |
| | | return Result.ok(); |
| | | } |
| | | |
| | | @DeleteMapping("deleteRisk") |
| | | @ApiOperation("删除") |
| | | @LogOperation("删除") |
| | | public Result delete(@RequestBody Long[] ids) { |
| | | //效验数据 |
| | | AssertUtils.isArrayEmpty(ids, "id"); |
| | | riskTraceItemService.delete(ids); |
| | | |
| | | return Result.ok(); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.zt.life.modules.riskTraceRecord.controller; |
| | | |
| | | |
| | | import com.zt.common.annotation.LogOperation; |
| | | import com.zt.common.constant.Constant; |
| | | import com.zt.common.annotation.QueryParam; |
| | | import com.zt.common.db.query.QueryFilter; |
| | | import com.zt.common.servlet.Result; |
| | | import com.zt.common.servlet.PageResult; |
| | | import com.zt.common.validator.AssertUtils; |
| | | import com.zt.common.validator.ValidatorUtils; |
| | | import com.zt.common.validator.group.AddGroup; |
| | | import com.zt.common.validator.group.DefaultGroup; |
| | | import com.zt.common.validator.group.UpdateGroup; |
| | | import com.zt.life.modules.riskTraceRecord.model.RiskTraceRecord; |
| | | import com.zt.life.modules.riskTraceRecord.service.RiskTraceRecordService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import springfox.documentation.annotations.ApiIgnore; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.util.List; |
| | | |
| | | |
| | | /** |
| | | * risk_trace_record |
| | | * |
| | | * @author zt generator |
| | | * @since 1.0.0 2024-01-09 |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/riskTraceRecord/RiskTraceRecord/") |
| | | @Api(tags="risk_trace_record") |
| | | public class RiskTraceRecordController { |
| | | @Autowired |
| | | private RiskTraceRecordService riskTraceRecordService; |
| | | |
| | | @GetMapping("page") |
| | | @ApiOperation("分页") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT), |
| | | @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), |
| | | }) |
| | | public PageResult<RiskTraceRecord> page(@ApiIgnore @QueryParam QueryFilter queryFilter){ |
| | | |
| | | return PageResult.ok(riskTraceRecordService.page(queryFilter)); |
| | | } |
| | | |
| | | @GetMapping("{id}") |
| | | @ApiOperation("信息") |
| | | public Result<RiskTraceRecord> get(@PathVariable("id") Long id){ |
| | | RiskTraceRecord data = riskTraceRecordService.get(id); |
| | | |
| | | return Result.ok(data); |
| | | } |
| | | |
| | | @PostMapping |
| | | @ApiOperation("新增") |
| | | @LogOperation("新增") |
| | | public Result insert(@RequestBody RiskTraceRecord riskTraceRecord){ |
| | | //效验数据 |
| | | ValidatorUtils.validateEntity(riskTraceRecord, AddGroup.class, DefaultGroup.class); |
| | | riskTraceRecordService.insert(riskTraceRecord); |
| | | |
| | | return Result.ok(); |
| | | } |
| | | |
| | | @PutMapping |
| | | @ApiOperation("修改") |
| | | @LogOperation("修改") |
| | | public Result update(@RequestBody RiskTraceRecord riskTraceRecord){ |
| | | //效验数据 |
| | | ValidatorUtils.validateEntity(riskTraceRecord, UpdateGroup.class, DefaultGroup.class); |
| | | riskTraceRecordService.update(riskTraceRecord); |
| | | |
| | | return Result.ok(); |
| | | } |
| | | |
| | | @DeleteMapping |
| | | @ApiOperation("删除") |
| | | @LogOperation("删除") |
| | | public Result delete(@RequestBody Long[] ids){ |
| | | //效验数据 |
| | | AssertUtils.isArrayEmpty(ids, "id"); |
| | | riskTraceRecordService.delete(ids); |
| | | |
| | | return Result.ok(); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.zt.life.modules.riskTraceRecord.dao; |
| | | |
| | | import com.zt.common.dao.BaseDao; |
| | | import com.zt.life.modules.riskTraceRecord.model.RiskMeasure; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * risk_measure |
| | | * |
| | | * @author zt generator |
| | | * @since 1.0.0 2024-01-09 |
| | | */ |
| | | @Mapper |
| | | public interface RiskMeasureDao extends BaseDao<RiskMeasure> { |
| | | |
| | | List<RiskMeasure> getList(Map<String, Object> params); |
| | | |
| | | RiskMeasure getByRiskId(Map<String, Object> params); |
| | | } |
New file |
| | |
| | | package com.zt.life.modules.riskTraceRecord.dao; |
| | | |
| | | import com.zt.common.dao.BaseDao; |
| | | import com.zt.life.modules.riskTraceRecord.model.RiskTraceItem; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * risk_trace_item |
| | | * |
| | | * @author zt generator |
| | | * @since 1.0.0 2024-01-09 |
| | | */ |
| | | @Mapper |
| | | public interface RiskTraceItemDao extends BaseDao<RiskTraceItem> { |
| | | |
| | | List<RiskTraceItem> getList(Map<String, Object> params); |
| | | |
| | | } |
New file |
| | |
| | | package com.zt.life.modules.riskTraceRecord.dao; |
| | | |
| | | import com.zt.common.dao.BaseDao; |
| | | import com.zt.life.modules.riskTraceRecord.model.RiskTraceRecord; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * risk_trace_record |
| | | * |
| | | * @author zt generator |
| | | * @since 1.0.0 2024-01-09 |
| | | */ |
| | | @Mapper |
| | | public interface RiskTraceRecordDao extends BaseDao<RiskTraceRecord> { |
| | | |
| | | List<RiskTraceRecord> getList(Map<String, Object> params); |
| | | |
| | | } |
New file |
| | |
| | | package com.zt.life.modules.riskTraceRecord.dto; |
| | | |
| | | import com.zt.life.modules.project.model.Project; |
| | | import com.zt.life.modules.qaAuditReport.model.QaAuditReport; |
| | | import com.zt.life.modules.qaAuditReport.model.QaAuditReportIncongruent; |
| | | import com.zt.life.modules.riskTraceRecord.model.RiskMeasure; |
| | | import com.zt.life.modules.riskTraceRecord.model.RiskTraceItem; |
| | | import com.zt.life.modules.riskTraceRecord.model.RiskTraceRecord; |
| | | import com.zt.life.sys.dto.OssDto; |
| | | import com.zt.modules.workflow.dto.FlowInfoDto; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | public class RiskTraceDto { |
| | | private Long id; |
| | | private Long projectId; |
| | | private Long riskId; |
| | | |
| | | @ApiModelProperty(value = "风险措施") |
| | | private RiskMeasure riskMeasure; |
| | | @ApiModelProperty(value = "测试项目基本信息") |
| | | private Project project; |
| | | |
| | | @ApiModelProperty(value = "附件") |
| | | private OssDto files; |
| | | |
| | | @ApiModelProperty(value = "风险跟踪项") |
| | | private List<RiskTraceItem> itemList = new ArrayList<>(); |
| | | @ApiModelProperty(value = "不符合项列表") |
| | | private List<RiskTraceRecord> recordList = new ArrayList<>(); |
| | | } |
New file |
| | |
| | | package com.zt.life.modules.riskTraceRecord.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.zt.common.entity.BusiEntity; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * risk_measure |
| | | * |
| | | * @author zt generator |
| | | * @since 1.0.0 2024-01-09 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper=false) |
| | | @TableName("risk_measure") |
| | | public class RiskMeasure extends BusiEntity { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @ApiModelProperty(value = "需求风险跟踪人员") |
| | | private String requireRiskTrackers; |
| | | |
| | | @ApiModelProperty(value = "需求风险跟踪日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date requireRiskDate; |
| | | |
| | | @ApiModelProperty(value = "设计风险跟踪人员") |
| | | private String designRiskTrackers; |
| | | |
| | | @ApiModelProperty(value = "设计风险跟踪日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date designRiskDate; |
| | | |
| | | @ApiModelProperty(value = "执行风险跟踪人员") |
| | | private String executeRiskTrackers; |
| | | |
| | | @ApiModelProperty(value = "执行风险跟踪日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date executeRiskDate; |
| | | |
| | | @ApiModelProperty(value = "总结风险跟踪人员") |
| | | private String summaryRiskTrackers; |
| | | |
| | | @ApiModelProperty(value = "总结风险跟踪日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date summaryRiskDate; |
| | | |
| | | @ApiModelProperty(value = "需求措施") |
| | | private String requireMeasure; |
| | | |
| | | @ApiModelProperty(value = "设计措施") |
| | | private String designMeasure; |
| | | |
| | | @ApiModelProperty(value = "执行措施") |
| | | private String executeMeasure; |
| | | |
| | | @ApiModelProperty(value = "总结措施") |
| | | private String summaryMeasure; |
| | | |
| | | @ApiModelProperty(value = "需求记录人员") |
| | | private String requireRecorder; |
| | | |
| | | @ApiModelProperty(value = "需求记录日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date requireRecordDate; |
| | | |
| | | @ApiModelProperty(value = "设计记录人员") |
| | | private String designRecorder; |
| | | |
| | | @ApiModelProperty(value = "设计记录时间") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date designRecordDate; |
| | | |
| | | @ApiModelProperty(value = "执行记录人员") |
| | | private String executeRecorder; |
| | | |
| | | @ApiModelProperty(value = "执行记录日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date executeRecordDate; |
| | | |
| | | @ApiModelProperty(value = "总结记录人员") |
| | | private String summaryRecorder; |
| | | |
| | | @ApiModelProperty(value = "总结记录日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date summaryRecordDate; |
| | | |
| | | @ApiModelProperty(value = "需求评估") |
| | | private String requireEvaluate; |
| | | |
| | | @ApiModelProperty(value = "设计评估") |
| | | private String designEvaluate; |
| | | |
| | | @ApiModelProperty(value = "执行评估") |
| | | private String executeEvaluate; |
| | | |
| | | @ApiModelProperty(value = "总结评估") |
| | | private String summaryEvaluate; |
| | | |
| | | @ApiModelProperty(value = "需求部门负责人") |
| | | private String requireLeader; |
| | | |
| | | @ApiModelProperty(value = "需求部门负责日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date requireLeadDate; |
| | | |
| | | @ApiModelProperty(value = "设计部门负责人") |
| | | private String designLeader; |
| | | |
| | | @ApiModelProperty(value = "设计部门负责日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date designLeadDate; |
| | | |
| | | @ApiModelProperty(value = "执行部门负责人") |
| | | private String executeLeader; |
| | | |
| | | @ApiModelProperty(value = "执行部门负责日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date executeLeadDate; |
| | | |
| | | @ApiModelProperty(value = "总结部门负责人") |
| | | private String summaryLeader; |
| | | |
| | | @ApiModelProperty(value = "总结部门负责日期") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date summaryLeadDate; |
| | | |
| | | } |
New file |
| | |
| | | package com.zt.life.modules.riskTraceRecord.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.zt.common.entity.BusiEntity; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * risk_trace_item |
| | | * |
| | | * @author zt generator |
| | | * @since 1.0.0 2024-01-09 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper=false) |
| | | @TableName("risk_trace_item") |
| | | public class RiskTraceItem extends BusiEntity { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @ApiModelProperty(value = "风险ID") |
| | | private Long riskId; |
| | | |
| | | @ApiModelProperty(value = "排序") |
| | | private Integer sort; |
| | | |
| | | @ApiModelProperty(value = "风险名称") |
| | | private String riskName; |
| | | |
| | | @ApiModelProperty(value = "风险描述") |
| | | private String riskDesc; |
| | | |
| | | @ApiModelProperty(value = "风险等级") |
| | | private String riskLevel; |
| | | |
| | | } |
New file |
| | |
| | | package com.zt.life.modules.riskTraceRecord.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.zt.common.entity.BusiEntity; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * risk_trace_record |
| | | * |
| | | * @author zt generator |
| | | * @since 1.0.0 2024-01-09 |
| | | */ |
| | | @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 = "测试需求") |
| | | private String testRequire; |
| | | |
| | | @ApiModelProperty(value = "测试设计") |
| | | private String testDesign; |
| | | |
| | | @ApiModelProperty(value = "测试执行") |
| | | private String testExecute; |
| | | |
| | | @ApiModelProperty(value = "测试总结") |
| | | private String testSummary; |
| | | |
| | | } |
New file |
| | |
| | | package com.zt.life.modules.riskTraceRecord.service; |
| | | |
| | | import com.zt.common.service.BaseService; |
| | | import com.zt.life.modules.riskTraceRecord.dao.RiskMeasureDao; |
| | | import com.zt.life.modules.riskTraceRecord.model.RiskMeasure; |
| | | import org.springframework.stereotype.Service; |
| | | import com.zt.common.db.query.QueryFilter; |
| | | import javax.annotation.Resource; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * risk_measure |
| | | * |
| | | * @author zt generator |
| | | * @since 1.0.0 2024-01-09 |
| | | */ |
| | | @Service |
| | | public class RiskMeasureService extends BaseService<RiskMeasureDao, RiskMeasure> { |
| | | |
| | | /** |
| | | * 分页查询 |
| | | * |
| | | * @param queryFilter |
| | | * @return |
| | | */ |
| | | public List<RiskMeasure> page(QueryFilter queryFilter) { |
| | | return baseDao.getList(queryFilter.getQueryParams()); |
| | | } |
| | | |
| | | /** |
| | | * 删除 |
| | | * |
| | | * @param ids |
| | | */ |
| | | public void delete(Long[] ids) { |
| | | super.deleteLogic(ids); |
| | | } |
| | | } |
New file |
| | |
| | | package com.zt.life.modules.riskTraceRecord.service; |
| | | |
| | | import com.zt.common.service.BaseService; |
| | | import com.zt.common.utils.CommonUtils; |
| | | import com.zt.life.modules.project.service.ProjectService; |
| | | import com.zt.life.modules.qaAuditReport.dto.QaAuditReportDto; |
| | | import com.zt.life.modules.qaAuditReport.model.QaAuditReport; |
| | | import com.zt.life.modules.qaAuditReport.model.QaAuditReportIncongruent; |
| | | import com.zt.life.modules.riskTraceRecord.dao.RiskTraceItemDao; |
| | | import com.zt.life.modules.riskTraceRecord.dto.RiskTraceDto; |
| | | import com.zt.life.modules.riskTraceRecord.model.RiskMeasure; |
| | | 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.workflow.dto.FlowInfoDto; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import com.zt.common.db.query.QueryFilter; |
| | | import javax.annotation.Resource; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * risk_trace_item |
| | | * |
| | | * @author zt generator |
| | | * @since 1.0.0 2024-01-09 |
| | | */ |
| | | @Service |
| | | public class RiskTraceItemService extends BaseService<RiskTraceItemDao, RiskTraceItem> { |
| | | @Autowired |
| | | private RiskMeasureService measureService; |
| | | |
| | | @Autowired |
| | | private RiskTraceRecordService recordService; |
| | | |
| | | @Autowired |
| | | private ProjectService projectService; |
| | | |
| | | /** |
| | | * 分页查询 |
| | | * |
| | | * @param queryFilter |
| | | * @return |
| | | */ |
| | | public List<RiskTraceItem> page(QueryFilter queryFilter) { |
| | | return baseDao.getList(queryFilter.getQueryParams()); |
| | | } |
| | | |
| | | private List<RiskTraceItem> getList(Long riskId) { |
| | | Map<String, Object> params = new HashMap<>(); |
| | | params.put("riskId",riskId); |
| | | return baseDao.getList(params); |
| | | } |
| | | /** |
| | | * 删除 |
| | | * |
| | | * @param ids |
| | | */ |
| | | public void delete(Long[] ids) { |
| | | super.deleteLogic(ids); |
| | | } |
| | | |
| | | public RiskTraceDto getDto(Long projectId, Long riskId){ |
| | | RiskTraceDto data = new RiskTraceDto(); |
| | | if (riskId != null) { |
| | | data.setId(riskId); |
| | | RiskMeasure riskMeasure = measureService.get(riskId); |
| | | data.setRiskMeasure(riskMeasure); |
| | | 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); |
| | | } else { |
| | | RiskMeasure riskMeasure = new RiskMeasure(); |
| | | data.setRiskMeasure(riskMeasure); |
| | | List<RiskTraceItem> itemList = this.getList(null); |
| | | data.setItemList(itemList); |
| | | List<RiskTraceRecord> recordList = new ArrayList<>(); |
| | | data.setRecordList(recordList); |
| | | } |
| | | if (projectId != null) { |
| | | data.setProjectId(projectId); |
| | | data.setProject(projectService.get(projectId)); |
| | | } |
| | | return data; |
| | | } |
| | | |
| | | |
| | | public Boolean save(RiskTraceDto riskTraceDto) { |
| | | Long riskId = riskTraceDto.getRiskMeasure().getId(); |
| | | if (riskId != null) |
| | | measureService.update(riskTraceDto.getRiskMeasure()); |
| | | else { |
| | | measureService.insert(riskTraceDto.getRiskMeasure()); |
| | | 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()) { |
| | | item.setRiskId(riskId); |
| | | if (item.getId() != null) { |
| | | RiskTraceItem item2 = this.get(item.getId()); |
| | | if (CommonUtils.isActureChangeData(item,item2)) { |
| | | baseDao.updateById(item2); |
| | | } |
| | | } else { |
| | | baseDao.insert(item); |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | } |
New file |
| | |
| | | package com.zt.life.modules.riskTraceRecord.service; |
| | | |
| | | import com.zt.common.service.BaseService; |
| | | import com.zt.life.modules.riskTraceRecord.dao.RiskTraceRecordDao; |
| | | import com.zt.life.modules.riskTraceRecord.model.RiskTraceRecord; |
| | | import org.springframework.stereotype.Service; |
| | | import com.zt.common.db.query.QueryFilter; |
| | | import javax.annotation.Resource; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * risk_trace_record |
| | | * |
| | | * @author zt generator |
| | | * @since 1.0.0 2024-01-09 |
| | | */ |
| | | @Service |
| | | public class RiskTraceRecordService extends BaseService<RiskTraceRecordDao, RiskTraceRecord> { |
| | | |
| | | /** |
| | | * 分页查询 |
| | | * |
| | | * @param queryFilter |
| | | * @return |
| | | */ |
| | | public List<RiskTraceRecord> page(QueryFilter queryFilter) { |
| | | return baseDao.getList(queryFilter.getQueryParams()); |
| | | } |
| | | |
| | | /** |
| | | * 删除 |
| | | * |
| | | * @param ids |
| | | */ |
| | | public void delete(Long[] ids) { |
| | | super.deleteLogic(ids); |
| | | } |
| | | |
| | | public List<RiskTraceRecord> getList(Long riskId) { |
| | | Map<String, Object> params = new HashMap<>(); |
| | | params.put("riskId",riskId); |
| | | return baseDao.getList(params); |
| | | } |
| | | } |
| | |
| | | <mapper namespace="com.zt.life.modules.qaAuditReport.dao.QaAuditReportDao"> |
| | | |
| | | <select id="getList" resultType="com.zt.life.modules.qaAuditReport.model.QaAuditReport"> |
| | | select a.* |
| | | select a.*,p.software_name,p.software_identity |
| | | from qa_audit_report a |
| | | INNER 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="whereSql!=null"> |
| | | and ${whereSql} |
| | | </if> |
| | |
| | | </if> |
| | | </select> |
| | | <select id="createList" resultType="com.zt.life.modules.qaAuditReport.model.QaAuditReportIncongruent"> |
| | | select b.code as oddNum,a.check_content as 'describe',b.page_code as discoveryPhase,b.processor as chargePerson, |
| | | SET @row_number = 0; |
| | | select (@row_number := @row_number + 1) AS no,b.code as oddNum,a.check_content as notTrueDescribe,b.page_code as discoveryPhase,b.processor as chargePerson, |
| | | case when b.processor is null then '未处理' |
| | | else '已闭环' end as status, |
| | | a.id as src_id |
| | |
| | | where b.project_id = ${projectId} and b.id =a.check_order_id |
| | | and a.is_delete = 0 and b.is_delete = 0 |
| | | and a.check_result = 2 |
| | | and b.page_code in ('','','','') |
| | | and b.page_code in ('contract','require','execute','summary') |
| | | order by code,no |
| | | </select> |
| | | |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | |
| | | <mapper namespace="com.zt.life.modules.riskTraceRecord.dao.RiskMeasureDao"> |
| | | |
| | | <select id="getList" resultType="com.zt.life.modules.riskTraceRecord.model.RiskMeasure"> |
| | | select a.* |
| | | from risk_measure a |
| | | <where> |
| | | a.is_delete = 0 |
| | | <if test="whereSql!=null"> |
| | | and ${whereSql} |
| | | </if> |
| | | </where> |
| | | <if test="orderBySql!=null"> |
| | | ORDER BY ${orderBySql} |
| | | </if> |
| | | </select> |
| | | <select id="getByRiskId" resultType="com.zt.life.modules.riskTraceRecord.model.RiskMeasure"> |
| | | select a.* |
| | | from risk_measure a |
| | | <where> |
| | | a.is_delete = 0 |
| | | <if test="riskId!=null"> |
| | | and a.risk_id = ${riskId} |
| | | </if> |
| | | </where> |
| | | <if test="orderBySql!=null"> |
| | | ORDER BY ${orderBySql} |
| | | </if> |
| | | </select> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | |
| | | <mapper namespace="com.zt.life.modules.riskTraceRecord.dao.RiskTraceItemDao"> |
| | | |
| | | <select id="getList" resultType="com.zt.life.modules.riskTraceRecord.model.RiskTraceItem"> |
| | | select a.* |
| | | from risk_trace_item a |
| | | <where> |
| | | a.is_delete = 0 |
| | | <if test="riskId!=null"> |
| | | and a.id = ${riskId} |
| | | </if> |
| | | </where> |
| | | <if test="orderBySql!=null"> |
| | | ORDER BY ${orderBySql} |
| | | </if> |
| | | </select> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | |
| | | <mapper namespace="com.zt.life.modules.riskTraceRecord.dao.RiskTraceRecordDao"> |
| | | |
| | | <select id="getList" resultType="com.zt.life.modules.riskTraceRecord.model.RiskTraceRecord"> |
| | | select a.* |
| | | from risk_trace_record a |
| | | <where> |
| | | a.is_delete = 0 |
| | | <if test="riskId!=null"> |
| | | and a.risk_id = ${riskId} |
| | | </if> |
| | | </where> |
| | | <if test="orderBySql!=null"> |
| | | ORDER BY ${orderBySql} |
| | | </if> |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | <el-button type="warning" @click="formSubmit('zc')">暂存</el-button> |
| | | <el-button type="warning" @click="formSubmit('bl')">办理</el-button> |
| | | </template> |
| | | <el-button v-else-if="editAble && hasConfirm" type="primary" @click="formSubmit('qd')" v-preventReClick>{{ |
| | | <el-button v-else-if="hasConfirm" type="primary" @click="formSubmit('qd')" v-preventReClick>{{ |
| | | $t('confirm') }} |
| | | </el-button> |
| | | <el-button v-else-if="editAble" type="warning" @click="formSubmit('bc')">保存 |
| | |
| | | mounted() { |
| | | // console.log(this.datas, 'this.datas in zt-select') |
| | | if (this.datas !== undefined && this.datas.length > 0) { |
| | | // console.log('use datas') |
| | | this.setDataList(this.datas) |
| | | } else if (this.url !== undefined) { // 指定了url |
| | | // console.log('use url') |
| | |
| | | setDataList(data) { // 设置树的值 |
| | | if (Array.isArray(data)) { |
| | | this.dataList = data |
| | | console.log(this.dataList,"setDataList") |
| | | } else { |
| | | this.dataList = data.rows |
| | | } |
| | |
| | | <template> |
| | | <div> |
| | | <el-input v-model="text" @click.native="open()" suffix-icon="el-icon-arrow-down" slot="reference" :placeholder="placeholder"/> |
| | | <zt-dialog ref="dialog" :append-to-body="true" :title="title" @confirm="confirm"> |
| | | <zt-dialog ref="dialog" :append-to-body="true" :title="title" :hasConfirm="true" @confirm="confirm"> |
| | | <el-row> |
| | | <el-col class="tree" :span="14"> |
| | | <el-container> |
| | |
| | | token: Cookies.get('token'), |
| | | progressId:this.progress.id |
| | | }) |
| | | this.apiURL = `http://localhost:8058/maintain/lifeManagement/importDataDictExcel?${params}` |
| | | this.apiURL = `http://localhost:8050/maintain/lifeManagement/importDataDictExcel?${params}` |
| | | }, |
| | | DictImport() { |
| | | this.$refs.dictListImport.$refs.dialog.init() |
| | |
| | | <template> |
| | | <zt-dialog ref="dialog" @confirm="formSubmit" append-to-body> |
| | | <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px"> |
| | | <zt-form-item label="选择用户" prop="menuIdList" rules="required"> |
| | | <zt-form-item label="选择用户" prop="menuIdList"> |
| | | <zt-user-selector v-model="dataForm.menuIdList" multiple/> |
| | | </zt-form-item> |
| | | </el-form> |
| | |
| | | if (res.success) { |
| | | await this.$tip.success() |
| | | this.$refs.examineObj.query() |
| | | this.$emit('refresh') |
| | | this.$refs.dialog.close() |
| | | } |
| | | } |
| | | }, |
| | |
| | | </el-form-item> |
| | | <el-form-item class="message-btn"> |
| | | <zt-button type="query" @click="table.query()"/> |
| | | <zt-button v-show="selectCompanyFlag" perm="sys:role" type="add" @click="table.editHandle()"/> |
| | | <!--v-show="selectCompanyFlag"--> |
| | | <zt-button perm="sys:role" type="add" @click="table.editHandle()"/> |
| | | <zt-button perm="sys:role:delete" type="delete" @click="table.deleteHandle()"/> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | window.SITE_CONFIG['dynamicMenuRoutesHasAdded'] = false; // 动态(菜单)路由是否已经添加的状态标示(用于判断是否需要重新拉取数据并进行动态添加操作) |
| | | |
| | | // 服务地址 |
| | | window.SITE_CONFIG['apiURL'] = 'http://' + location.hostname + ':8058/life-protection'; |
| | | window.SITE_CONFIG['apiURL2'] = 'http://' + location.hostname + ':8058/life-protection'; |
| | | window.SITE_CONFIG['apiURL'] = 'http://' + location.hostname + ':8050/life-protection'; |
| | | window.SITE_CONFIG['apiURL2'] = 'http://' + location.hostname + ':8050/life-protection'; |
| | | //window.SITE_CONFIG['apiURL2'] = 'http://'+location.hostname+':8066'; |
| | | |
| | | //window.SITE_CONFIG['apiURL'] = '<%= process.env.VUE_APP_API_URL %>'; |
| | |
| | | }, |
| | | created() { |
| | | const roleName = localStorage.getItem('roleName') |
| | | if (roleName && roleName.includes('QA')) { |
| | | if (roleName && roleName.includes('审核人员')) { |
| | | this.showColumn = true; |
| | | } |
| | | if (roleName && roleName.includes('测试员')) { |
| | | if (roleName && roleName.includes('检测人员')) { |
| | | this.showAddAndEdit = true; |
| | | } |
| | | }, |
| | |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | | <!--<div class="el-flexCirculationDialog el-border-bottom"> |
| | | <div class="el-flexCirculationDialog el-border-bottom"> |
| | | <div style="width: 112px;text-align: center;font-weight: 600"> |
| | | 校准/检测接收人 |
| | | 检测接收人 |
| | | </div> |
| | | <div class="el-border-left-right" style="width: 20%;height: 40px;"> |
| | | <el-form-item style="width: 100%;padding-left:20px;margin:0;"> |
| | | {{dataForm.circulatOrder.itemAccept}} |
| | | {{dataForm.circulatOrder.detectAcceptor}} |
| | | </el-form-item> |
| | | </div> |
| | | <div style="width: 52px;text-align: center;font-weight: 600"> |
| | |
| | | </div> |
| | | <div class="el-border-left-right" style="width: 20%;height: 40px;"> |
| | | <el-form-item style="width: 100%;padding-left:20px;margin:0;"> |
| | | {{dataForm.circulatOrder.acceptDate}} |
| | | {{dataForm.circulatOrder.detectAcceptDate| filterTime('YYYY年MM月DD日')}} |
| | | </el-form-item> |
| | | </div> |
| | | <div style="width: 84px;text-align: center;font-weight: 600"> |
| | |
| | | </div> |
| | | <div class="el-border-left " style="width: 35%;height: 40px;"> |
| | | <el-form-item label="是否满足测试要求" label-width="150px" style="padding-left:20px;margin-bottom:0"> |
| | | <zt-dict v-model="dataForm.circulatOrder.cscs" :radio="true" dict="is_or_not"></zt-dict> |
| | | <zt-dict :disabled="stepMarker!=='wplz_jcjs'" v-model="dataForm.circulatOrder.detectAcceptSituation" :radio="true" dict="is_or_not"></zt-dict> |
| | | </el-form-item> |
| | | </div> |
| | | </div>--> |
| | | </div> |
| | | <div class="el-flexCirculationDialog el-border-bottom"> |
| | | <div style="width: 112px;text-align: center;font-weight: 600"> |
| | | 校准检测人 |
| | | 检测人 |
| | | </div> |
| | | <div class="el-border-left-right" style="width: 20%;height: 40px;"> |
| | | <el-form-item style="width: 100%;padding-left:20px;margin:0;"> |
| | |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="el-flexCirculationDialog el-border-bottom"> |
| | | <div class="el-flexCirculationDialog el-border-bottom"> |
| | | <div style="width: 112px;text-align: center;font-weight: 600"> |
| | | 物品入库人 |
| | | </div> |
| | | <div class="el-border-left-right" style="width: 20%;height: 40px;"> |
| | | <el-form-item style="width: 100%;padding-left:20px;margin:0;"> |
| | | {{dataForm.circulatOrder.warehouse}} |
| | | {{dataForm.circulatOrder.depositor}} |
| | | </el-form-item> |
| | | </div> |
| | | <div style="width: 52px;text-align: center;font-weight: 600"> |
| | |
| | | </div> |
| | | <div class="el-border-left-right" style="width: 20%;height: 40px;"> |
| | | <el-form-item style="width: 100%;padding-left:20px;margin:0;"> |
| | | {{dataForm.circulatOrder.warehouseDate}} |
| | | {{dataForm.circulatOrder.depositDate| filterTime('YYYY年MM月DD日')}} |
| | | </el-form-item> |
| | | </div> |
| | | <div style="width: 84px;text-align: center;font-weight: 600"> |
| | | 情况说明 |
| | | </div> |
| | | <div class="el-border-left " style="width: 35%;height: 40px;"> |
| | | <el-form-item label="是否满足测试要求" label-width="150px" style="padding-left:20px;margin-bottom:0"> |
| | | <zt-dict v-model="dataForm.circulatOrder.warehouseSituation" :radio="true" dict="is_or_not"></zt-dict> |
| | | <el-form-item label="是否已入样品库" label-width="150px" style="padding-left:20px;margin-bottom:0"> |
| | | <zt-dict :disabled="stepMarker!=='wplz_wprk'" v-model="dataForm.circulatOrder.depositSituation" :radio="true" dict="is_or_not"></zt-dict> |
| | | </el-form-item> |
| | | </div> |
| | | </div>--> |
| | | </div> |
| | | <div class="el-flexCirculationDialog el-border-bottom"> |
| | | <div style="width: 112px;text-align: center;font-weight: 600"> |
| | | 物品发放人 |
| | |
| | | </div> |
| | | <div class="el-border-left-right " style="width: 20%;height: 40px;"> |
| | | <el-form-item style="width: 100%;padding-left:20px;margin:0;"> |
| | | <!-- {{dataForm.circulatOrder.issueDate}}--> |
| | | {{ dataForm.circulatOrder.issueDate | filterTime('YYYY年MM月DD日') }} |
| | | </el-form-item> |
| | | </div> |
| | |
| | | itemOther: '', |
| | | acceptSituation: '', |
| | | acceptDate: '', |
| | | detectAcceptor:'', |
| | | detectAcceptDate:'', |
| | | detectAcceptSituation:'', |
| | | calibratDetector: '', |
| | | detectDate: '', |
| | | detectSituation: '', |
| | | warehouse: '', |
| | | warehouseDate: '', |
| | | warehouseSituation: '', |
| | | depositor: '', |
| | | depositDate: '', |
| | | depositSituation: '', |
| | | itemIssuer: '', |
| | | issueDate: '', |
| | | issueSituation: '', |
| | |
| | | <template> |
| | | <zt-dialog ref="dialog" column="2" @confirm="formSubmit"> |
| | | <!-- <div class="fa-card-a fa-box-a" style="height: calc(100vh - 130px)">--> |
| | | <el-form ref="dataForm" style="padding: 0" :inline="true" :disabled="dataForm.disabled" :model="dataForm" label-width="120px" |
| | | <el-form ref="dataForm" style="padding: 0" :inline="true" :disabled="dataForm.disabled" :model="dataForm" |
| | | label-width="120px" |
| | | class="projectAuto"> |
| | | <div class="DManageForm"> |
| | | <el-form-item label-width="80px" label="项目编号" prop="code" style="width: 99%;margin-bottom:-5px" readonly> |
| | |
| | | </div> |
| | | <div class="DSTOld-1-Form"> |
| | | <!-- 单位名称 --> |
| | | <zt-form-item class="marginTopAndMarginBottom" label="单位名称" prop="entrustUnitName" style="width: 49%" rules="required"> |
| | | <zt-form-item class="marginTopAndMarginBottom" label="单位名称" prop="entrustUnitName" style="width: 49%" |
| | | rules="required"> |
| | | <el-input v-model="dataForm.entrustUnitName" placeholder="请输入单位名称"></el-input> |
| | | </zt-form-item> |
| | | <!-- 联系人 --> |
| | | <zt-form-item class="marginTopAndMarginBottom" label="联系人" prop="entrustUnitContact" style="width: 49%" rules="required"> |
| | | <zt-form-item class="marginTopAndMarginBottom" label="联系人" prop="entrustUnitContact" style="width: 49%" |
| | | rules="required"> |
| | | <el-input v-model="dataForm.entrustUnitContact" placeholder="请输入联系人"></el-input> |
| | | </zt-form-item> |
| | | |
| | |
| | | </div> |
| | | <div class="DSTOld-1-Form"> |
| | | <!-- 单位名称 --> |
| | | <zt-form-item class="marginTopAndMarginBottom" label="单位名称" prop="developUnitName" style="width: 49%" rules="required"> |
| | | <zt-form-item class="marginTopAndMarginBottom" label="单位名称" prop="developUnitName" style="width: 49%" |
| | | rules="required"> |
| | | <el-input v-model="dataForm.developUnitName" placeholder="请输入单位名称"></el-input> |
| | | </zt-form-item> |
| | | <!-- 联系人 --> |
| | | <zt-form-item class="marginTopAndMarginBottom" label="联系人" prop="developUnitContact" style="width: 49%" rules="required"> |
| | | <zt-form-item class="marginTopAndMarginBottom" label="联系人" prop="developUnitContact" style="width: 49%" |
| | | rules="required"> |
| | | <el-input v-model="dataForm.developUnitContact" placeholder="请输入联系人"></el-input> |
| | | </zt-form-item> |
| | | <!-- 详细地址 --> |
| | |
| | | </div> |
| | | <div class="DSTOld-1-Form"> |
| | | <!-- 单位名称 --> |
| | | <zt-form-item class="marginTopAndMarginBottom" label="软件名称" prop="softwareName" style="width: 49%" rules="required"> |
| | | <zt-form-item class="marginTopAndMarginBottom" label="软件名称" prop="softwareName" style="width: 49%" |
| | | rules="required"> |
| | | <el-input v-model="dataForm.softwareName" placeholder="请输入软件名称"></el-input> |
| | | </zt-form-item> |
| | | <!-- 联系人 --> |
| | | <zt-form-item class="marginTopAndMarginBottom" label="软件标识" prop="softwareIdentity" style="width: 49%" rules="required"> |
| | | <zt-form-item class="marginTopAndMarginBottom" label="软件标识" prop="softwareIdentity" style="width: 49%" |
| | | rules="required"> |
| | | <el-input v-model="dataForm.softwareIdentity" placeholder="请输入软件标识"></el-input> |
| | | </zt-form-item> |
| | | <!-- 详细地址 --> |
| | |
| | | 项目责任人 |
| | | </div> |
| | | <div class="DSTOld-1-Form"> |
| | | <!-- 项目负责人 --> |
| | | <zt-form-item class="marginTopAndMarginBottom" label-width="120px" label="项目负责人" prop="projectLeader" style="width: 48%" rules="required"> |
| | | <zt-select v-model="dataForm.projectLeader" url="/sys/userEx/getUsersList" placeholder="项目负责人"/> |
| | | <!-- <el-input v-model="dataForm.projectLeader" placeholder="请输入项目负责人"></el-input>--> |
| | | <!-- <el-select v-model="dataForm.projectLeader" placeholder="项目负责人" style="width: 100%">--> |
| | | <!-- <el-option v-for="data in dataList"></el-option>--> |
| | | <!-- </el-select>--> |
| | | <!-- <el-select v-model="dataForm.projectLeader" clearable placeholder="项目负责人">--> |
| | | <!-- <el-option v-for="item in dataList" :key="item.value" :label="item.label"--> |
| | | <!-- :value="item.value"/>--> |
| | | <!-- </el-select>--> |
| | | </zt-form-item> |
| | | <!-- 项目测试人员 --> |
| | | <zt-form-item class="marginTopAndMarginBottom" label-width="120px" label="项目测试人员" prop="projectTesters" style="width: 48%" rules="required"> |
| | | <!-- <el-input v-model="dataForm.projectTesters" placeholder="请输入项目测试人员"></el-input>--> |
| | | <zt-select v-model="dataForm.projectTesters" url="/sys/userEx/getUsersList" :multiple="true" :clearable="true" placeholder="项目测试人员"/> |
| | | </zt-form-item> |
| | | <!-- 项目审核人 --> |
| | | <zt-form-item label-width="120px" label="项目审核人" prop="projectReviewer" style="width: 48%" rules="required"> |
| | | <!-- <el-input v-model="dataForm.projectReviewer" placeholder="请输入项目审核人"></el-input>--> |
| | | <zt-select v-model="dataForm.projectReviewer" url="/sys/userEx/getUsersList" :multiple="true" :clearable="true" placeholder="项目审核人"/> |
| | | <zt-form-item class="marginTopAndMarginBottom" label-width="120px" label="所属部门" prop="bizDeptId" |
| | | style="width: 48%"> |
| | | <zt-select v-model="dataForm.bizDeptId" :datas="bizDeptList" onchange="getUserList()" placeholder="所属部门"/> |
| | | </zt-form-item> |
| | | <!-- 是否签署合同 --> |
| | | <zt-form-item label-width="120px" label="是否签署合同" prop="isContract" style="width: 48%" rules="required"> |
| | | <zt-form-item label-width="120px" label="是否签署合同" prop="isContract" style="width: 48%"> |
| | | <zt-dict v-model="dataForm.isContract" dict="is_or_not"></zt-dict> |
| | | </zt-form-item> |
| | | <!-- 项目负责人 --> |
| | | <zt-form-item class="marginTopAndMarginBottom" label-width="120px" label="项目负责人" prop="projectLeader" |
| | | style="width: 48%"> |
| | | <zt-select v-model="dataForm.projectLeader" :datas="projectLeaderList" placeholder="项目负责人"/> |
| | | </zt-form-item> |
| | | <!-- 项目测试人员 --> |
| | | <zt-form-item class="marginTopAndMarginBottom" label-width="120px" label="项目测试人员" prop="projectTesters" |
| | | style="width: 48%"> |
| | | <!-- <el-input v-model="dataForm.projectTesters" placeholder="请输入项目测试人员"></el-input>--> |
| | | <zt-select v-model="dataForm.projectTesters" :datas="projectTestersList" :multiple="true" |
| | | :clearable="true" placeholder="项目测试人员"/> |
| | | </zt-form-item> |
| | | <!-- 项目审核人 --> |
| | | <zt-form-item label-width="120px" label="项目审核人" prop="projectReviewer" style="width: 48%"> |
| | | <!-- <el-input v-model="dataForm.projectReviewer" placeholder="请输入项目审核人"></el-input>--> |
| | | <zt-select v-model="dataForm.projectReviewer" :datas="projectReviewerList" :multiple="true" |
| | | :clearable="true" placeholder="项目审核人"/> |
| | | </zt-form-item> |
| | | <zt-form-item label-width="120px" label="项目配置人" prop="projectConfiger" style="width: 48%"> |
| | | <!-- <el-input v-model="dataForm.projectReviewer" placeholder="请输入项目审核人"></el-input>--> |
| | | <zt-select v-model="dataForm.projectConfiger" :datas="projectConfigerList" :multiple="true" |
| | | :clearable="true" placeholder="项目配置人"/> |
| | | </zt-form-item> |
| | | </div> |
| | | </div> |
| | |
| | | projectLeader: '', |
| | | projectTesters: '', |
| | | projectReviewer: '', |
| | | projectConfiger: '', |
| | | bizDeptId: '', |
| | | isContract: '', |
| | | } |
| | | }, |
| | | projectLeaderList: [], |
| | | projectTestersList: [], |
| | | projectReviewerList: [], |
| | | projectConfigerList: [], |
| | | bizDeptList: [], |
| | | bizDeptIdList: [], |
| | | } |
| | | }, |
| | | watch: { |
| | | /* bizDeptId(val, oldval) { |
| | | alert(1) |
| | | this.getUserList() |
| | | },*/ |
| | | }, |
| | | methods: { |
| | | init() { |
| | | this.getInfo() |
| | | this.getbizDept() |
| | | }, |
| | | // 获取信息 |
| | | async getInfo() { |
| | | let res = await this.$http.get(`/project/Project//${this.dataForm.id}`) |
| | | console.log(this.dataForm.id, "async getInfo()") |
| | | if (this.dataForm.id == undefined) { |
| | | return |
| | | } |
| | | let res = await this.$http.get(`/project/Project/${this.dataForm.id}`) |
| | | if (res.success) { |
| | | this.dataForm = { |
| | | ...this.dataForm, |
| | | ...res.data |
| | | } |
| | | await this.getUserList() |
| | | } |
| | | if(this.dataForm && this.dataForm.projectTesters){ |
| | | this.dataForm.projectTesters=this.dataForm.projectTesters.split(',') |
| | | console.log(this.dataForm.projectTesters) |
| | | } |
| | | if(this.dataForm && this.dataForm.projectReviewer){ |
| | | this.dataForm.projectReviewer=this.dataForm.projectReviewer.split(',') |
| | | console.log(this.dataForm.projectReviewer) |
| | | }, |
| | | async getUserList() { |
| | | let res = await this.$http.get(`/project/Project/getUsersLists?deptId=${this.dataForm.bizDeptId}`) |
| | | if (res.success) { |
| | | this.projectLeaderList = res.data.zrr |
| | | this.projectTestersList = res.data.csry |
| | | this.projectReviewerList = res.data.shry |
| | | this.projectConfigerList = res.data.pzry |
| | | } |
| | | console.log(this.dataForm,'this.dataForm') |
| | | }, |
| | | async getbizDept() { |
| | | let res = await this.$http.get(`/sys/dept/getList`) |
| | | if (res.success) { |
| | | this.bizDeptList = res.data; |
| | | } |
| | | console.log(this.bizDeptList, "getbizDept") |
| | | }, |
| | | // 表单提交 |
| | | async formSubmit() { |
| | | if(this.dataForm && this.dataForm.projectTesters){ |
| | | if (this.dataForm && this.dataForm.projectTesters instanceof Array) { |
| | | this.dataForm.projectTesters=this.dataForm.projectTesters.join(',') |
| | | console.log(this.dataForm.projectTesters) |
| | | } |
| | | if(this.dataForm && this.dataForm.projectReviewer){ |
| | | if (this.dataForm && this.dataForm.projectReviewer instanceof Array) { |
| | | this.dataForm.projectReviewer=this.dataForm.projectReviewer.join(',') |
| | | console.log(this.dataForm.projectReviewer) |
| | | } |
| | | let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/project/Project//', this.dataForm) |
| | | if (this.dataForm && this.dataForm.projectConfiger instanceof Array) { |
| | | this.dataForm.projectConfiger = this.dataForm.projectConfiger.join(',') |
| | | console.log(this.dataForm.projectConfiger) |
| | | } |
| | | let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/project/Project/', this.dataForm) |
| | | if (res.success) { |
| | | await this.$tip.success() |
| | | this.$refs.dialog.close() |
| | | this.$emit('refreshDataList') |
| | | }else { |
| | | if(this.dataForm && this.dataForm.projectTesters){ |
| | | if (this.dataForm && this.dataForm.projectTesters instanceof Array) { |
| | | this.dataForm.projectTesters=this.dataForm.projectTesters.split(',') |
| | | console.log(this.dataForm.projectTesters) |
| | | } |
| | | if(this.dataForm && this.dataForm.projectReviewer){ |
| | | if (this.dataForm && this.dataForm.projectReviewer instanceof Array) { |
| | | this.dataForm.projectReviewer=this.dataForm.projectReviewer.split(',') |
| | | console.log(this.dataForm.projectReviewer) |
| | | } |
| | | if (this.dataForm && this.dataForm.projectConfiger instanceof Array) { |
| | | this.dataForm.projectConfiger = this.dataForm.projectConfiger.split(',') |
| | | console.log(this.dataForm.projectConfiger) |
| | | } |
| | | } |
| | | } |
| | |
| | | border-left: 1px solid rgba(0,0,0,.2); |
| | | width: 100%; |
| | | } |
| | | |
| | | .el-border-left{ |
| | | border-left: 1px solid rgba(0,0,0,.2); |
| | | } |
| | | |
| | | .DOldForm { |
| | | width: 100%; |
| | | } |
| | | |
| | | .el-border-top-and-bottom{ |
| | | border-top: 1px solid rgba(0,0,0,.2); |
| | | border-bottom: 1px solid rgba(0,0,0,.2); |
| | | } |
| | | |
| | | .DSTOld-1-Form { |
| | | border-left: 1px solid rgba(0,0,0,.2); |
| | | width: 100%; |
| | |
| | | .DSTOld-1-Form > .el-form-item>.el-form-item__content { |
| | | width: calc(100% - 120px); |
| | | } |
| | | |
| | | .DManageForm > .el-form-item>.el-form-item__content { |
| | | width: calc(100% - 120px); |
| | | } |
| | | |
| | | .el-border-bottom { |
| | | border-bottom: 1px solid rgba(0,0,0,.2); |
| | | } |
| | |
| | | .zt .el-table.el-software th > .cell { |
| | | font-weight: 500; |
| | | } |
| | | |
| | | .DHold{ |
| | | font-weight: 600; |
| | | } |
| | | |
| | | .zt .el-table.el-software{ |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .projectAuto .marginTopAndMarginBottom { |
| | | margin-top: 10px !important; |
| | | margin-bottom: 0 !important; |
| | |
| | | <zt-button type="delete" perm="project:delete" @click="table.deleteHandle()"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}" border @selection-change="table.selectionChangeHandle"> |
| | | <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}" |
| | | border @selection-change="table.selectionChangeHandle"> |
| | | <el-table-column type="selection" align="center" width="40"/> |
| | | <el-table-column prop="softwareName" label="软件名称"/> |
| | | <el-table-column prop="code" label="项目编号"/> |
| | |
| | | |
| | | <script> |
| | | import AddOrUpdate from './Project-AddOrUpdate' |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div v-if="!dataForm.disabled" class="icon-container" @click="addMeasuredRow()"> |
| | | <!-- 放置固定的图标 --> |
| | | <i class="el-icon-plus"></i> |
| | | </div> |
| | | </div> |
| | | <div class="el-flex" style="height: 40px;"> |
| | | <div class="DWidth DAlign DHold"> |
| | |
| | | <el-table-column prop="name" min-width="300" label="名称"></el-table-column> |
| | | <el-table-column prop="identify" align="center" width="380" label="标识/版本"></el-table-column> |
| | | </el-table> |
| | | <div v-if="!dataForm.disabled" class="icon-container" @click="addDeliverableRow()"> |
| | | <!-- 放置固定的图标 --> |
| | | <i class="el-icon-plus"></i> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | // console.log(this.dataForm, "this.dataForm") |
| | | console.log(this.dataForm,"getInfo this.dataForm") |
| | | }, |
| | | addDeliverableRow() { |
| | | this.dataForm.deliverableList.push({}) |
| | | this.$nextTick(() => { |
| | | const tableBody = this.$refs.tableDeliverableList.$el.querySelector('.el-table__body-wrapper') |
| | | tableBody.scrollTop = tableBody.scrollHeight |
| | | }) |
| | | }, |
| | | addMeasuredRow() { |
| | | this.dataForm.measuredList.push({}) |
| | | this.$nextTick(() => { |
| | | const tableBody = this.$refs.tableMeasuredList.$el.querySelector('.el-table__body-wrapper') |
| | | tableBody.scrollTop = tableBody.scrollHeight |
| | | }) |
| | | }, |
| | | async print(){ |
| | | var params = qs.stringify({ |
| | | token: Cookies.get('token'), |
| | |
| | | <div style="border: 1px solid rgba(0,0,0,.2);width: 99%"> |
| | | <div style="border-bottom: 1px solid rgba(0,0,0,.2);" class="QaAuditContentWidth"> |
| | | <el-form-item class="marginTopAndMarginBottom" label="项目名称" style="width: 49%"> |
| | | <el-input v-model="dataForm.testAgencyInfo.agencyName" placeholder="请输入项目名称"></el-input> |
| | | <el-input v-model="dataForm.project.softwareName" placeholder="请输入项目名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="marginTopAndMarginBottom" label="项目标识" style="width: 49%"> |
| | | <el-input v-model="dataForm.testAgencyInfo.labContactNum" placeholder="请输入项目标识"></el-input> |
| | | <el-input v-model="dataForm.project.softwareIdentity" placeholder="请输入项目标识"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="el-flexQaAuditDialog el-border-bottom"> |
| | |
| | | </div> |
| | | <div class="el-border-left" style="width: calc(100% - 120px);min-height: 40px"> |
| | | <el-form-item style="width: 50%;padding: 0 5px"> |
| | | <span>项目负责人:{{dataForm.contractReview.technicalDirector || '项目负责人'}} </span> |
| | | <span>项目负责人:{{dataForm.project.projectLeader || '项目负责人'}} </span> |
| | | </el-form-item> |
| | | <el-form-item style="width: 40%;padding: 0 5px"> |
| | | <span>测试人员:{{dataForm.contractReview.technicalDirector || '测试人员'}} </span> |
| | | <span>测试人员:{{dataForm.project.projectTesters || '测试人员'}} </span> |
| | | </el-form-item> |
| | | <el-form-item style="width: 100%;padding: 0 5px"> |
| | | <span>配置管理员:{{dataForm.contractReview.technicalDirector || '配置管理员'}} </span> |
| | | <el-form-item style="width: 40%;padding: 0 5px"> |
| | | <span>配置人员:{{dataForm.project.projectConfiger || '配置人员'}} </span> |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | |
| | | 已完成的检查 |
| | | </div> |
| | | <div class="el-border-left" style="width: calc(100% - 120px);min-height: 40px"> |
| | | <el-form-item class="el-QaTextarea" label-width="20px" style="width: 100%;padding: 5px"> |
| | | <el-input type="textarea" :rows="2" placeholder="请输入内容" |
| | | v-model="dataForm.auditReport.completedCheck"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | | <div class=" el-border-bottom"> |
| | |
| | | <div> |
| | | <div class="table-container"> |
| | | <el-table ref="tableConfigItemList" class="el-software el-margin-top-bot" |
| | | style="width: 99%;margin-left: 5px" border :data="dataForm.reviewItemList" |
| | | style="width: 99%;margin-left: 5px" border :data="dataForm.incongruentList" |
| | | stripe> |
| | | <el-table-column prop="no" align="center" width="60" label="序号"> |
| | | <template slot-scope="scope"> |
| | | <span v-html="indexFormat(scope.$index)"></span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="item" min-width="400" label="评审项"> |
| | | <el-table-column prop="oddNum" min-width="350" label="不符合项单号"> |
| | | <template v-slot="{ row }"> |
| | | <el-input v-model="row.item" placeholder="评审项"></el-input> |
| | | <el-input v-model="row.oddNum" placeholder="不符合项单号"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="result" width="220" align="center" label="评审结果"> |
| | | <el-table-column prop="notTrueDescribe" width="220" align="center" label="不符合项描述"> |
| | | <template v-slot="{ row }"> |
| | | <zt-dict v-model="row.result" placeholder="评审结果" dict="tristate1" :radio="true" |
| | | clearable></zt-dict> |
| | | <el-input v-model="row.notTrueDescribe" placeholder="不符合项描述"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="workProcess" width="100" align="center" label="所属工作产品/过程"> |
| | | <template v-slot="{ row }"> |
| | | <el-input v-model="row.workProcess" placeholder="所属工作产品/过程"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="discoveryPhase" width="80" align="center" label="发现阶段"> |
| | | <template v-slot="{ row }"> |
| | | <el-input v-model="row.discoveryPhase" placeholder="发现阶段"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="chargePerson" width="80" align="center" label="责任人"> |
| | | <template v-slot="{ row }"> |
| | | <el-input v-model="row.chargePerson" placeholder="责任人"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="status" width="80" align="center" label="状态"> |
| | | <template v-slot="{ row }"> |
| | | <el-input v-model="row.status" placeholder="状态"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="remark" width="100" align="center" label="备注"> |
| | | <template v-slot="{ row }"> |
| | | <el-input v-model="row.remark" placeholder="备注"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | </div> |
| | | <div class="el-border-bottom"> |
| | | <el-form-item class="el-QaTextarea" label-width="20px" style="width: 100%;padding: 5px"> |
| | | <el-input type="textarea" :rows="2" placeholder="请输入内容" |
| | | v-model="dataForm.contractReview.reviewRecord"></el-input> |
| | | <el-input v-if="stepMarker=='qashbg_first'" type="textarea" :rows="2" placeholder="请输入内容" |
| | | v-model="dataForm.auditReport.qaSummary"></el-input> |
| | | <span v-else>{{ dataForm.auditReport.qaSummary}}</span> |
| | | </el-form-item> |
| | | <el-form-item label="检查人(签字):" label-width="160px" style="width: 48%;padding: 5px;"> |
| | | <el-input v-model="dataForm.contractReview.technicalDirector"></el-input> |
| | | {{ dataForm.auditReport.checker }} |
| | | </el-form-item> |
| | | <el-form-item style="width: 48%;padding: 5px;"> |
| | | {{ dataForm.contractReview.reviewDate | filterTime('YYYY年MM月DD日') }} |
| | | {{ dataForm.auditReport.checkDate | filterTime('YYYY年MM月DD日') }} |
| | | </el-form-item> |
| | | </div> |
| | | <div> |
| | | <el-form-item label="质量监督员意见:" class="el-QaTextarea1" label-width="160px" style="width: 100%;padding: 5px"> |
| | | <el-input type="textarea" :rows="2" placeholder="请输入内容" |
| | | v-model="dataForm.contractReview.technicalDirector"></el-input> |
| | | <el-input v-if="stepMarker=='qashbg_zljd'" type="textarea" :rows="2" placeholder="请输入内容" |
| | | v-model="dataForm.auditReport.supervisorOpinion"></el-input> |
| | | <span v-else>{{ dataForm.auditReport.supervisorOpinion}}</span> |
| | | </el-form-item> |
| | | <el-form-item label="质量监督员(签字):" label-width="160px" style="width: 48%;padding: 5px;"> |
| | | <el-input v-model="dataForm.contractReview.technicalDirector"></el-input> |
| | | {{ dataForm.auditReport.supervisorSign }} |
| | | </el-form-item> |
| | | <el-form-item style="width: 48%;padding: 5px;"> |
| | | {{ dataForm.contractReview.reviewDate | filterTime('YYYY年MM月DD日') }} |
| | | {{ dataForm.auditReport.superviseDate | filterTime('YYYY年MM月DD日') }} |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="el-flex review-sc" style="height: 60px"> |
| | | <div class="el-flex qa-sc" style="height: 60px"> |
| | | <el-form-item class="marginTopAndMarginBottom" style="width: 100%"> |
| | | <config-uploader :lineHeight="true" busi-type="qa_audit_report" model-name="dataForm" :dataForm="dataForm" |
| | | v-model="dataForm.files"/> |
| | |
| | | id: '', |
| | | project: { |
| | | softwareIdentity: '', |
| | | softwarName: '', |
| | | softwareName: '', |
| | | projectLeader: '', |
| | | projectTesters: '' |
| | | projectTesters: '', |
| | | projectConfiger: '' |
| | | }, |
| | | contractReview: { |
| | | code: '', |
| | | orderCode: '', |
| | | reviewType: '', |
| | | reviewRecord: '', |
| | | specialRequire: '', |
| | | subcontract: '', |
| | | reviewConclusion: '', |
| | | technicalDirector: '', |
| | | reviewDate: '', |
| | | reviewPanelMember: '', |
| | | }, |
| | | incongruentList: [], |
| | | testAgencyInfo: { |
| | | agencyName: '', |
| | | labContactNum: '' |
| | | }, |
| | | incongruentList: [] |
| | | } |
| | | // dataForm: { |
| | | // id: '', |
| | | // files:'', |
| | | // contractReview: { |
| | | // code: '', |
| | | // orderCode: '', |
| | | // reviewType: '', |
| | | // reviewRecord: '', |
| | | // specialRequire: '', |
| | | // subcontract: '', |
| | | // reviewConclusion: '', |
| | | // technicalDirector: '', |
| | | // reviewDate: '', |
| | | // reviewPanelMember: '', |
| | | // }, |
| | | // testAgencyInfo: { |
| | | // agencyName: '', |
| | | // labContactNum: '' |
| | | // }, |
| | | // reviewItemList: [] |
| | | // } |
| | | } |
| | | }, |
| | | methods: { |
| | |
| | | indexFormat(index) { |
| | | return index += 1 |
| | | }, |
| | | |
| | | async getNameById() { |
| | | let params = { |
| | | projectLeaderId: this.dataForm.project.projectLeader, |
| | | projectTestersId: this.dataForm.project.projectTesters, |
| | | projectConfigerId: this.dataForm.project.projectConfiger |
| | | } |
| | | let res = await this.$http.get(`/qaAuditReport/QaAuditReport/getNameById`, {params: params}) |
| | | if (res.success) { |
| | | this.dataForm.project.projectLeader = res.data.projectLeaderName |
| | | this.dataForm.project.projectTesters = res.data.projectTestersName |
| | | this.dataForm.project.projectConfiger = res.data.projectConfigerName |
| | | } |
| | | }, |
| | | addCirculatRow() { |
| | | this.dataForm.technicalList.push({}) |
| | | this.$nextTick(() => { |
| | |
| | | ...this.dataForm, |
| | | ...res.data |
| | | } |
| | | this.getNameById() |
| | | if (this.dataForm.project === null) { |
| | | this.dataForm.project = {} |
| | | } |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .QaFormWidth{ |
| | | width: 120px; |
| | | } |
| | | |
| | | .QaAuditContentWidth > .el-form-item > .el-form-item__content { |
| | | width: calc(100% - 120px); |
| | | } |
| | | |
| | | .el-form-item.el-QaTextarea > .el-form-item__content { |
| | | width: 100%; |
| | | } |
| | | |
| | | .el-form-item.el-QaTextarea1 > .el-form-item__content { |
| | | width: calc(100% - 160px); |
| | | } |
| | | </style> |
| | | <style> |
| | | .qa-sc > .el-form-item > .el-form-item__content { |
| | | width: 100%; |
| | | } |
| | | </style> |
| | |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <zt-button type="query" @click="table.query()"/> |
| | | <zt-button type="primary" class="el-icon-edit" @click="add()">新增</zt-button> |
| | | <zt-button type="delete" @click="table.deleteHandle()"/> |
| | | <zt-button type="primary" class="el-icon-edit" perm="qaAuditReport:add" @click="add()">新增</zt-button> |
| | | <zt-button type="delete" perm="qaAuditReport:delete" @click="table.deleteHandle()"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}" border @selection-change="table.selectionChangeHandle"> |
New file |
| | |
| | | <template> |
| | | <zt-dialog ref="dialog" @confirm="formSubmit"> |
| | | <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px"> |
| | | <zt-form-item label="排序" prop="sort" rules="required"> |
| | | <el-input v-model="dataForm.sort"></el-input> |
| | | </zt-form-item> |
| | | <zt-form-item label="风险名称" prop="riskName" rules="required"> |
| | | <el-input v-model="dataForm.riskName"></el-input> |
| | | </zt-form-item> |
| | | <zt-form-item label="风险描述" prop="riskDesc" rules="required"> |
| | | <el-input v-model="dataForm.riskDesc"></el-input> |
| | | </zt-form-item> |
| | | <zt-form-item label="风险等级" prop="riskLevel" rules="required"> |
| | | <el-input v-model="dataForm.riskLevel"></el-input> |
| | | </zt-form-item> |
| | | </el-form> |
| | | </zt-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | dataForm: { |
| | | id: '', |
| | | sort: '', |
| | | riskName: '', |
| | | riskDesc: '', |
| | | riskLevel: '' |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | init(id, row) { |
| | | if (id) { |
| | | this.dataForm.id = id |
| | | } else { |
| | | this.dataForm.id = row.id |
| | | } |
| | | if (row.projectId) { |
| | | this.dataForm.projectId = row.projectId |
| | | } |
| | | // this.dataForm.disabled |
| | | this.getInfo() |
| | | }, |
| | | // 获取信息 |
| | | async getInfo() { |
| | | let params = { |
| | | riskId: this.dataForm.id, |
| | | projectId: this.dataForm.projectId |
| | | } |
| | | let res = await this.$http.get(`/riskTraceRecord/RiskTraceItem/`,{params:params}) |
| | | this.dataForm = { |
| | | ...this.dataForm, |
| | | ...res.data |
| | | } |
| | | }, |
| | | // 表单提交 |
| | | async formSubmit() { |
| | | let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/riskTraceRecord/RiskTraceItem/', this.dataForm) |
| | | if (res.success) { |
| | | await this.$tip.success() |
| | | this.$refs.dialog.close() |
| | | this.$emit('refreshDataList') |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
New file |
| | |
| | | <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" |
| | | v-slot="{ table }"> |
| | | <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()"> |
| | | <el-form-item> |
| | | <el-input v-model="dataForm.softwareName" placeholder="请输入项目名称" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-input v-model="dataForm.softwareIdentity" placeholder="请输入项目标识" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <zt-button type="query" @click="table.query()"/> |
| | | <zt-button type="primary" class="el-icon-edit" perm="riskTraceRecord:add" @click="add()">新增</zt-button> |
| | | <zt-button type="delete" perm="riskTraceRecord:delete" @click="table.deleteHandle()"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}" |
| | | border @selection-change="table.selectionChangeHandle"> |
| | | <el-table-column type="selection" width="40"/> |
| | | <el-table-column prop="softwareName" label="项目名称"/> |
| | | <el-table-column prop="softwareIdentity" label="项目标识"/> |
| | | <zt-table-column-handle :table="table" edit-perm="riskTraceRecord:update" |
| | | delete-perm="riskTraceRecord::delete"> |
| | | <template v-slot="{ row }"> |
| | | <zt-table-button size="small" v-show="row.accessoryMap" type="primary" |
| | | @click="preview(row)">预览 |
| | | </zt-table-button> |
| | | </template> |
| | | </zt-table-column-handle> |
| | | </el-table> |
| | | <!-- 弹窗, 新增 / 修改 --> |
| | | <add-or-update ref="addOrUpdate" @refreshDataList="table.query"/> |
| | | <ProjectSelect ref="projectSelect" |
| | | @refreshDataList="table.query" |
| | | @setProjectInfo="openAddWin"> |
| | | </ProjectSelect> |
| | | <Preview ref="view" :pageMarkerfun="RiskTrace"></Preview> |
| | | </zt-table-wraper> |
| | | </div> |
| | | </el-card> |
| | | </template> |
| | | |
| | | <script> |
| | | import AddOrUpdate from './RiskTraceItem-AddOrUpdate' |
| | | import Preview from '@/views/pages/view' |
| | | import ProjectSelect from "../project/Project-select"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | RiskTrace:'RiskTrace', |
| | | dataForm: { |
| | | softwareName: '', |
| | | softwareIdentity: '' |
| | | } |
| | | } |
| | | }, |
| | | components: { |
| | | AddOrUpdate, |
| | | ProjectSelect, |
| | | Preview |
| | | }, |
| | | methods:{ |
| | | add() { |
| | | this.$refs.projectSelect.$refs.dialog.init("risk_measure") |
| | | }, |
| | | openAddWin(row) { |
| | | console.log(row.id, 'row.id') |
| | | this.$refs.addOrUpdate.$refs.dialog.init(null, {id: null, projectId: row.id}) |
| | | }, |
| | | preview(row){ |
| | | this.$refs.view.openAccessoryFormatSingle(row) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <ConfigItemOutbound ref="configItemOutbound" @refreshDataList="getQuery()"></ConfigItemOutbound> |
| | | <TestCheckOrder ref="testCheckOrder" @refreshDataList="getQuery()"></TestCheckOrder> |
| | | <BaselineRelease ref="baselineRelease" @refreshDataList="getQuery()"></BaselineRelease> |
| | | <QaAuditReport ref="qaAuditReport" @refreshDataList="getQuery()"></QaAuditReport> |
| | | <!-- </zt-table-wraper>--> |
| | | </div> |
| | | </template> |
| | |
| | | import ConfigItemChange from "@/views/modules/configItemChange/ConfigItemChange-AddOrUpdate.vue"; |
| | | import ConfigItemOutbound from "@/views/modules/configItemOutbound/ConfigItemOutbound-AddOrUpdate.vue"; |
| | | import BaselineRelease from "@/views/modules/baselineRelease/BaselineRelease-AddOrUpdate.vue"; |
| | | import QaAuditReport from '@/views/modules/qaAuditReport/QaAuditReport-AddOrUpdate' |
| | | |
| | | export default { |
| | | data() { |
| | |
| | | ConfigItemWarehouse, |
| | | ConfigItemChange, |
| | | ConfigItemOutbound, |
| | | BaselineRelease |
| | | BaselineRelease, |
| | | QaAuditReport |
| | | }, |
| | | watch:{ |
| | | }, |
| | |
| | | this.$nextTick(()=>{ |
| | | this.$refs.baselineRelease.$refs.dialog.init(row.bizId,row, true) |
| | | }) |
| | | }else if (row.flowCode === 'qashbg') { |
| | | this.$nextTick(()=>{ |
| | | this.$refs.qaAuditReport.$refs.dialog.init(row.bizId,row, true) |
| | | }) |
| | | } |
| | | else { |
| | | if (row.stepReadRouterId === null){ |
| | |
| | | <ConfigItemOutbound ref="configItemOutbound" @refreshDataList="getQuery()"></ConfigItemOutbound> |
| | | <TestCheckOrder ref="testCheckOrder" @refreshDataList="getQuery()"></TestCheckOrder> |
| | | <BaselineRelease ref="baselineRelease" @refreshDataList="getQuery()"></BaselineRelease> |
| | | <QaAuditReport ref="qaAuditReport" @refreshDataList="getQuery()"></QaAuditReport> |
| | | <!-- </zt-table-wraper>--> |
| | | </div> |
| | | </template> |
| | |
| | | import ConfigItemChange from '@/views/modules/configItemChange/ConfigItemChange-AddOrUpdate' |
| | | import ConfigItemOutbound from '@/views/modules/configItemOutbound/ConfigItemOutbound-AddOrUpdate' |
| | | import BaselineRelease from '@/views/modules/baselineRelease/BaselineRelease-AddOrUpdate' |
| | | import QaAuditReport from '@/views/modules/qaAuditReport/QaAuditReport-AddOrUpdate' |
| | | |
| | | export default { |
| | | data() { |
| | |
| | | ConfigItemChange, |
| | | ConfigItemOutbound, |
| | | BaselineRelease, |
| | | QaAuditReport |
| | | }, |
| | | created() { |
| | | if (this.$route.path.indexOf('taskCenter') > 0 || this.system == 'smj') { |
| | |
| | | this.$refs.configItemOutbound.$refs.dialog.init(row.bizId, row) |
| | | }else if (row.flowCode === 'jxfb') { |
| | | this.$refs.baselineRelease.$refs.dialog.init(row.bizId, row) |
| | | }else if (row.flowCode === 'qashbg') { |
| | | this.$refs.qaAuditReport.$refs.dialog.init(row.bizId, row) |
| | | }else { |
| | | if (row.stepRouterId === null) { |
| | | this.$tip.alert("没有配置菜单id") |
| | |
| | | |
| | | <zt-form-item label="任务分组" prop="taskGroup" > |
| | | <el-select v-model="dataForm.taskGroup" value-key="value" style="width: 100%"> |
| | | <el-option v-for="item in taskGrouList" :key="item.id" :label="item.name" :value="item.value"></el-option> |
| | | <el-option v-for="item in taskGroupList" :key="item.id" :label="item.name" :value="item.value"></el-option> |
| | | </el-select> |
| | | </zt-form-item> |
| | | |
| | |
| | | stepRouterId:'', |
| | | stepReadRouterId:'' |
| | | }, |
| | | taskGrouList:[{id:'0',value:'',name:'无'}, |
| | | {id:'1',value:'cj',name:'厂家'}, |
| | | {id:'2',value:'zy',name:'专业'}, |
| | | taskGroupList:[{id:'0',value:'',name:'无'}, |
| | | {id:'3',value:'sqr',name:'申请人'}, |
| | | {id:'4',value:'br',name:'指定人'}, |
| | | {id:'5',value:'js',name:'用户角色'} |
| | | {id:'5',value:'js',name:'用户角色'}, |
| | | {id:'10',value:'pall',name:'项目所有人员'}, |
| | | {id:'11',value:'zrr',name:'项目责任人'}, |
| | | {id:'12',value:'csr',name:'项目测试员'}, |
| | | {id:'13',value:'shr',name:'项目审核员'}, |
| | | {id:'14',value:'pzr',name:'项目配置员'} |
| | | ], |
| | | menuIdList1:[], |
| | | menuIdListChild:[] |
| | |
| | | productionSourceMap: false, |
| | | devServer: { |
| | | open: true, |
| | | port: 8008, |
| | | port: 8020, |
| | | overlay: { |
| | | errors: true, |
| | | warnings: true |
| | |
| | | @TableName("SYS_DEPT") |
| | | public class SysDept extends CompanyEntity implements TreeNode<SysDept>, Cloneable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | private Long id; |
| | | @ApiModelProperty(value = "上级ID") |
| | | @NotNull(message = "上级ID,不能为空", groups = DefaultGroup.class) |
| | | private Long pid; |
| | |
| | | @RequiresPermissions("sys:dept:list") |
| | | public Result<List<SysDept>> pageList(@RequestParam Long companyId) { |
| | | List<SysDept> list = sysDeptService.getDeptList(companyId); |
| | | return Result.ok(list); |
| | | } |
| | | |
| | | @GetMapping("getList") |
| | | @ApiOperation("部门列表") |
| | | // @RequiresPermissions("sys:dept:list") |
| | | public Result<List<SysDept>> getlist() { |
| | | List<SysDept> list = sysDeptService.getDeptList3(); |
| | | return Result.ok(list); |
| | | } |
| | | |
| | |
| | | // @RequiresPermissions("sys:dept:list") |
| | | public Result<List<SysDept>> list() { |
| | | List<SysDept> list = sysDeptService.getDeptTree(); |
| | | |
| | | return Result.ok(list); |
| | | } |
| | | |
| | |
| | | // @RequiresPermissions("sys:dept:list") |
| | | public Result<List<SysDept>> list2() { |
| | | List<SysDept> list = sysDeptService.getDeptTreeRegister(); |
| | | |
| | | return Result.ok(list); |
| | | } |
| | | |
| | |
| | | |
| | | @PostMapping |
| | | @ApiOperation("新增") |
| | | @LogOperation("角色管理--->新增") |
| | | @LogOperation("权限管理--->新增") |
| | | @RequiresPermissions("sys:role") |
| | | public Result insert(@RequestBody SysRole entity) { |
| | | // 效验数据 |
| | |
| | | |
| | | @PutMapping |
| | | @ApiOperation("修改") |
| | | @LogOperation("角色管理--->修改") |
| | | @LogOperation("权限管理--->修改") |
| | | @RequiresPermissions("sys:role:update") |
| | | public Result update(@RequestBody SysRole entity) { |
| | | // 效验数据 |
| | |
| | | |
| | | @DeleteMapping |
| | | @ApiOperation("删除") |
| | | @LogOperation("角色管理--->删除") |
| | | @LogOperation("权限管理--->删除") |
| | | @RequiresPermissions("sys:role:delete") |
| | | public Result delete(@RequestBody Long[] ids) { |
| | | // 效验数据 |
| | |
| | | |
| | | @PostMapping("menu") |
| | | @ApiOperation("配置菜单权限") |
| | | @LogOperation("权限管理--->配置菜单权限") |
| | | @RequiresPermissions("sys:role:menu") |
| | | public Result setRoleMenu(@RequestBody RoleMenuDto entity) { |
| | | |
| | |
| | | |
| | | @PostMapping("addroleuser") |
| | | @ApiOperation("添加角色人员") |
| | | @LogOperation("角色管理--->添加角色人员") |
| | | @LogOperation("权限管理--->添加角色人员") |
| | | @RequiresPermissions("sys:role:update") |
| | | public Result addRoleUser(@RequestBody RoleMenuDto model) { |
| | | |
| | |
| | | |
| | | @PostMapping("deleteRoleUsers") |
| | | @ApiOperation("删除角色用户") |
| | | @LogOperation("角色管理--->删除角色用户") |
| | | @LogOperation("权限管理--->删除角色用户") |
| | | public Result deleteRoleUsers(@RequestBody SysRoleUser model) { |
| | | List<SysRoleUser> list = sysRoleUserService.getSingleRoleUsers(model.getRoleId(), model.getUserId()); |
| | | sysRoleUserService.deleteLogic(list); |
| | |
| | | sysRoleUserService.saveOrUpdate(dto.getUserId(), dto.getRoleIdList()); |
| | | return Result.ok(); |
| | | } |
| | | @PostMapping("getNameById") |
| | | @ApiOperation("用户名") |
| | | public Result getNameById(@RequestBody String ids) { |
| | | sysUserService.getNames(ids); |
| | | return Result.ok(); |
| | | } |
| | | } |
| | |
| | | List<SysDept> getListByParent(Map<String, Object> params); |
| | | |
| | | |
| | | List<SysDept> getDeptList3(); |
| | | } |
| | |
| | | void updatePassword(SysUser entity); |
| | | |
| | | Integer checkTestHome(String systemId, Long userId); |
| | | List<SysUser> getUsersList(); |
| | | List<SysUser> getUsersList(String type, String deptId); |
| | | |
| | | String getUsersName(String id); |
| | | } |
| | |
| | | QueryFilter queryFilter = new QueryFilter(); |
| | | // 普通管理员,只能查询所属部门及子部门的数据 |
| | | User user = UserContext.getUser(); |
| | | if (!user.isSuperAdmin()) { |
| | | /* if (!user.isSuperAdmin()) { |
| | | queryFilter.addParam("deptIds", this.getWithDescendantIds(user.getDeptId())); |
| | | } |
| | | }*/ |
| | | // 查询公司下部门列表 |
| | | queryFilter.addParam("isCompany", Constant.Bool.NO); |
| | | queryFilter.addParam("companyId", companyId); |
| | |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | public List<SysDept> getDeptList3() { |
| | | return baseDao.getDeptList3(); |
| | | } |
| | | } |
| | |
| | | return num; |
| | | } |
| | | |
| | | public List<SysUser> getUsersList() { |
| | | return baseDao.getUsersList(); |
| | | public List<SysUser> getUsersList(String type, String deptId) { |
| | | List<SysUser> list = baseDao.getUsersList(type,deptId); |
| | | return list; |
| | | } |
| | | |
| | | public String getUsersName(String id) { |
| | |
| | | @Mapper |
| | | public interface WfRunTaskDao extends BaseDao<WfRunTask> { |
| | | |
| | | List<SysUser> getTaskUser(@Param("roleId") String roleId, @Param("deptIds") String deptIds, @Param("zyIds") String zyIds); |
| | | List<SysUser> getTaskUser(@Param("roleId") String roleId, @Param("deptIds") String deptIds); |
| | | List<SysUser> getAssignUser(String code, String stepMarker, Long bizId); |
| | | SysUser getUserById(Long userId); |
| | | |
| | |
| | | String applyUser; |
| | | Date applyTime; |
| | | String param; |
| | | String zrr; |
| | | String csr; |
| | | String shr; |
| | | String pzr; |
| | | String pall; |
| | | } |
| | |
| | | taskParamDto.setBizInfoDto(bizInfoDto); |
| | | |
| | | if (finallyStep.getStepNo() > currentStep.getStepNo()) { |
| | | String roleIds = currentStep.getApproverRoleIds(); |
| | | if (!StringUtils.isBlank(roleIds)) { |
| | | roleIds = roleIds.replace(",,", ","); |
| | | roleIds = roleIds.replace(",,", ","); |
| | | } |
| | | if (StringUtils.isBlank(roleIds)) { |
| | | throw new RuntimeException("没有设置下一步流程角色!"); |
| | | } |
| | | |
| | | Integer isSelfDept = currentStep.getIsSelfDept(); |
| | | String[] roleIdArr = roleIds.split(","); |
| | | if (isSelfDept > 0 && bizInfoList.size() > 0) { |
| | | deptIds = bizInfoList.get(0).getDeptIds(); |
| | | if (isSelfDept > 0 && bizInfoDto!=null) { |
| | | deptIds = bizInfoDto.getDeptIds(); |
| | | } |
| | | if (isSelfDept == 0) |
| | | deptIds = null; |
| | | |
| | | String zyIds = null; |
| | | String bizGroupId = bizInfoList.get(0).getBizId(); |
| | | if (!StringUtils.isBlank(currentStep.getTaskGroup()) |
| | | && !StringUtils.isBlank(currentStep.getTaskGroupSql())) { |
| | | sqlStr = currentStep.getTaskGroupSql(); |
| | | sqlStr = sqlStr.replace("${bizId}", bizId.toString()); |
| | | sqlStr = sqlStr.replace("${bizGroupId}", bizGroupId); |
| | | List<BizInfoDto> bizInfoList2 = baseDao.getSqlResult(sqlStr); |
| | | if ("cj".equals(currentStep.getTaskGroup())) |
| | | deptIds = bizInfoList2.get(0).getId(); |
| | | if ("zy".equals(currentStep.getTaskGroup())) |
| | | zyIds = bizInfoList2.get(0).getId(); |
| | | } |
| | | if ("br".equals(currentStep.getTaskGroup())) { |
| | | List<SysUser> listUser = baseDao.getAssignUser(wfDef.getCode(), currentStep.getStepMarker(), bizId); |
| | | for (SysUser user : listUser) { |
| | |
| | | taskParamDto.setGroupId2(user.getId()); |
| | | insertFlowTaskData(taskParamDto); |
| | | } |
| | | } |
| | | else if (currentStep.getTaskGroup() !=null && "pall,zrr,csr,shr,pzr".contains(currentStep.getTaskGroup())) { |
| | | String userList = null; |
| | | if ("zrr".equals(currentStep.getTaskGroup())){ |
| | | userList = bizInfoDto.getZrr(); |
| | | } |
| | | if ("csr".equals(currentStep.getTaskGroup())){ |
| | | userList = bizInfoDto.getCsr(); |
| | | } |
| | | if ("shr".equals(currentStep.getTaskGroup())){ |
| | | userList = bizInfoDto.getShr(); |
| | | } |
| | | if ("pzr".equals(currentStep.getTaskGroup())){ |
| | | userList = bizInfoDto.getPzr(); |
| | | } |
| | | if ("pall".equals(currentStep.getTaskGroup())){ |
| | | userList = bizInfoDto.getPall(); |
| | | } |
| | | if (userList != null) { |
| | | String[] userArr = userList.split(","); |
| | | Long groupId2 = UUIDUtil.generateId(); |
| | | for (String userStr : userArr) { |
| | | Long userId = Convert.toLong(userStr); |
| | | SysUser user = baseDao.getUserById(userId); |
| | | existsUsers.put(userId, ""); |
| | | taskParamDto.setUser(user); |
| | | taskParamDto.setGroupId2(groupId2); |
| | | insertFlowTaskData(taskParamDto); |
| | | } |
| | | } |
| | | } else if ("sqr".equals(currentStep.getTaskGroup())) { |
| | | SysUser user = baseDao.getUserById(bizInfoList.get(0).getApplyUserId()); |
| | | existsUsers.put(user.getId(), ""); |
| | |
| | | taskParamDto.setGroupId2(user.getId()); |
| | | insertFlowTaskData(taskParamDto); |
| | | } else { |
| | | String roleIds = currentStep.getApproverRoleIds(); |
| | | if (StringUtils.isBlank(roleIds)) { |
| | | throw new RuntimeException("没有设置下一步流程角色!"); |
| | | } |
| | | String[] roleIdArr = roleIds.split(","); |
| | | for (String roleId : roleIdArr) { |
| | | List<SysUser> listUser = baseDao.getTaskUser(roleId, deptIds, zyIds); |
| | | if (StringUtils.isBlank(roleId)) |
| | | continue; |
| | | List<SysUser> listUser = baseDao.getTaskUser(roleId, deptIds); |
| | | for (SysUser user : listUser) { |
| | | if (existsUsers.containsKey(user.getId())) { |
| | | continue; |
| | |
| | | |
| | | <mapper namespace="com.zt.modules.log.dao.SysLogLoginDao"> |
| | | <select id="getList" resultType="com.zt.modules.log.model.SysLogLogin"> |
| | | select * from ( |
| | | select a.* |
| | | ,(SELECT replace(GROUP_CONCAT(aa.name),',',';') FROM sys_role aa,sys_role_user bb WHERE aa.id=bb.role_id AND bb.user_id = a.creator) AS role_names |
| | | from sys_log_login a |
| | | ) a |
| | | select a.* from sys_log_login a |
| | | <where> |
| | | <if test="status!=null"> |
| | | and status=#{status} |
| | |
| | | and 1 = 1 |
| | | </if> |
| | | <if test="action == 'xtbmybm'"> |
| | | and role_names NOT LIKE '%xtgly%' OR role_names NOT LIKE '%xtsjy%' |
| | | and a.creator not in (select user_id from sys_role_user |
| | | where role_id in (select id from sys_role where code in ('xtglybm','xtbmybm','xtsjybm'))) |
| | | </if> |
| | | <if test="action == 'xtsjybm'"> |
| | | and role_names LIKE '%xtgly%' OR role_names LIKE '%xtsjy%' |
| | | and a.creator in (select user_id from sys_role_user |
| | | where role_id in (select id from sys_role where code in ('xtglybm','xtbmybm'))) |
| | | </if> |
| | | <if test="action == 'other'"> |
| | | and a.CREATOR = ${currentUserId} |
| | |
| | | <if test="order!=null and order!=''"> |
| | | order by a.CREATE_DATE ${order} |
| | | </if> |
| | | |
| | | <if test="order==null"> |
| | | order by a.CREATE_DATE |
| | | </if> |
| | |
| | | </sql> |
| | | |
| | | <select id="getList" resultType="com.zt.modules.log.model.SysLogOperation"> |
| | | select * from ( |
| | | select a.* |
| | | ,(SELECT replace(GROUP_CONCAT(aa.name),',',';') FROM sys_role aa,sys_role_user bb WHERE aa.id=bb.role_id AND bb.user_id = a.creator) AS role_names |
| | | from sys_log_operation a |
| | | ) a |
| | | <where> |
| | | <if test="whereSql!=null"> |
| | | ${whereSql} |
| | |
| | | and 1 = 1 |
| | | </if> |
| | | <if test="action == 'xtbmybm'"> |
| | | and role_names NOT LIKE '%xtgly%' OR role_names NOT LIKE '%xtsjy%' |
| | | and request_uri not IN ( |
| | | SELECT |
| | | a.dict_label AS urlLabel |
| | | FROM |
| | | sys_dict_data a, |
| | | sys_dict_type b |
| | | WHERE 1=1 |
| | | AND b.dict_type = 'adminURL' |
| | | AND b.id = a.dict_type_id |
| | | AND b.is_delete = 0 |
| | | ) |
| | | and a.creator not in (select user_id from sys_role_user |
| | | where role_id in (select id from sys_role where code in ('xtglybm','xtbmybm','xtsjybm'))) |
| | | </if> |
| | | <if test="action == 'xtsjybm'"> |
| | | and role_names LIKE '%xtgly%' OR role_names LIKE '%xtsjy%' |
| | | and request_uri IN ( |
| | | SELECT |
| | | a.dict_label AS urlLabel |
| | | FROM |
| | | sys_dict_data a, |
| | | sys_dict_type b |
| | | WHERE 1=1 |
| | | AND b.dict_type = 'adminURL' |
| | | AND b.id = a.dict_type_id |
| | | AND b.is_delete = 0 |
| | | ) |
| | | and a.creator in (select user_id from sys_role_user |
| | | where role_id in (select id from sys_role where code in ('xtglybm','xtbmybm'))) |
| | | </if> |
| | | <if test="action == 'other'"> |
| | | and a.creator = ${currentUserId} |
| | |
| | | <if test="pId != null"> |
| | | and pid = #{pId} |
| | | </if> |
| | | </select> |
| | | <select id="getDeptList3" resultType="com.zt.core.sys.model.SysDept"> |
| | | select id, name |
| | | from sys_dept |
| | | where IS_COMPANY = 0 |
| | | order by sort |
| | | </select> |
| | | </mapper> |
| | |
| | | </select> |
| | | <select id="getUsersList" resultType="com.zt.core.sys.model.SysUser"> |
| | | select real_name as name,id as id from sys_user |
| | | where is_delete = 0 |
| | | <if test="type == null or type == ''"> |
| | | and id not in ( |
| | | select user_id from sys_role_user where role_id |
| | | in (select id from sys_role where code in ('xtglybm','xtbmybm','xtsjybm','rx'))) |
| | | </if> |
| | | <if test="deptId != null and deptId != ''"> |
| | | and dept_id = #{deptId} |
| | | </if> |
| | | <if test="type == 'zrr'"> |
| | | and id in ( |
| | | select user_id from sys_role_user where role_id |
| | | in (select id from sys_role where code in ('jcry'))) |
| | | </if> |
| | | <if test="type == 'csry'"> |
| | | and id in ( |
| | | select user_id from sys_role_user where role_id |
| | | in (select id from sys_role where code in ('jcry'))) |
| | | </if> |
| | | <if test="type == 'shry'"> |
| | | and id in ( |
| | | select user_id from sys_role_user where role_id |
| | | in (select id from sys_role where code in ('jcry','zljdy','shry'))) |
| | | </if> |
| | | <if test="type == 'pzry'"> |
| | | and id in ( |
| | | select user_id from sys_role_user where role_id |
| | | in (select id from sys_role where code in ('jcry','shry'))) |
| | | </if> |
| | | </select> |
| | | <select id="getUsersName" resultType="java.lang.String"> |
| | | select real_name from sys_user WHERE id=${id} |
| | |
| | | CONCAT( ',', #{deptIds}, ',' ) LIKE CONCAT( '%,', id, ',%' ) |
| | | ) |
| | | </if> |
| | | |
| | | <if test="zyIds!=null and zyIds!=''"> |
| | | AND CONCAT( ',', #{zyIds}, ',' ) LIKE CONCAT( '%,', teamgroup, ',%' ) |
| | | </if> |
| | | </select> |
| | | |
| | | <select id="getAssignUser" resultType="com.zt.core.sys.model.SysUser"> |
| | |
| | | |
| | | ) a |
| | | LEFT JOIN sys_dept d ON a.company_id = d.id |
| | | WHERE a.id not in (select id from sys_role where code in ('xtglybm','xtbmybm','xtsjybm','rx')) |
| | | ORDER BY d.name, a.sort |
| | | </select> |
| | | |