package com.zt.life.modules.riskTraceRecord.service; import cn.hutool.core.convert.Convert; import com.zt.common.service.BaseService; import com.zt.common.utils.CommonUtils; import com.zt.core.context.User; import com.zt.core.context.UserContext; import com.zt.life.export.dto.WordFile; import com.zt.life.export.service.WordFileService; import com.zt.life.modules.project.service.ProjectService; import com.zt.life.modules.qaAuditReport.dto.QaAuditReportDto; import com.zt.life.modules.qaAuditReport.model.QaAuditReport; 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.oss.service.SysOssService; import com.zt.modules.workflow.dto.FlowInfoDto; import com.zt.modules.workflow.service.WorkflowService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.zt.common.db.query.QueryFilter; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileNotFoundException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * risk_trace_item * * @author zt generator * @since 1.0.0 2024-01-09 */ @Service public class RiskTraceItemService extends BaseService { @Autowired private RiskMeasureService measureService; @Autowired private RiskTraceRecordService recordService; @Autowired private ProjectService projectService; @Autowired private SysOssService sysOssService; @Autowired private WordFileService wordFileService; @Autowired private SysOssConfigService sysOssConfigService; /** * 分页查询 * * @param queryFilter * @return */ public List page(QueryFilter queryFilter) { List list = baseDao.getList(queryFilter.getQueryParams()); /* if (list != null && list.size() > 0) { sysOssService.setListOsses(list, "risk_trace_item"); }*/ return list; } /** * 删除 * * @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 riskList = recordService.getList(riskId); data.setRiskList(riskList); } else { RiskMeasure riskMeasure = new RiskMeasure(); data.setRiskMeasure(riskMeasure); List itemList = this.getList(riskId); data.setItemList(itemList); List riskList = recordService.getList(riskId); data.setRiskList(riskList); } if (projectId != null) { data.setProjectId(projectId); data.getRiskMeasure().setProjectId(projectId); data.setProject(projectService.get(projectId)); } return data; } private List getList(Long riskId) { Map params = new HashMap<>(); params.put("riskId", riskId); return baseDao.getList(params); } 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 (RiskTraceItem item : riskTraceDto.getItemList()) { if (item.getRiskId() == null) { item.setId(null); item.setRiskId(riskId); this.insert(item); } } for (int i = 0; i < riskTraceDto.getRiskList().size(); i++) { RiskTraceRecord risk = riskTraceDto.getRiskList().get(i); RiskTraceItem item = null; if (riskTraceDto.getItemList().size() > 0) { item = riskTraceDto.getItemList().get(i); } risk.setRiskId(riskId); if (risk.getId() != null) { recordService.update(risk); } else { risk.setItemId(item.getId()); recordService.insert(risk); } } sysOssConfigService.updateOss(riskTraceDto.getId(), riskTraceDto.getFiles());// 保存附件 return true; } public void exportRiskRecord(Long id, HttpServletRequest request, HttpServletResponse response) { try { RiskTraceDto dataObj = this.getDto(null, id); WordFile wordFile = new WordFile(); wordFile.setModulePath("测试风险跟踪记录.docx"); if (dataObj.getProject() == null) { dataObj.setProject(projectService.get(dataObj.getRiskMeasure().getProjectId())); } wordFile.setWordName(dataObj.getProject().getSoftwareName() + "_测试风险跟踪记录.docx"); wordFileService.exportWordFile(request, dataObj, wordFile, response); } catch (UnsupportedEncodingException | FileNotFoundException e) { e.printStackTrace(); } } }