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<RiskTraceItemDao, RiskTraceItem> {
|
@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<RiskTraceItem> page(QueryFilter queryFilter) {
|
List<RiskTraceItem> 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<RiskTraceRecord> riskList = recordService.getList(riskId);
|
data.setRiskList(riskList);
|
} else {
|
RiskMeasure riskMeasure = new RiskMeasure();
|
data.setRiskMeasure(riskMeasure);
|
List<RiskTraceItem> itemList = this.getList(riskId);
|
data.setItemList(itemList);
|
List<RiskTraceRecord> riskList = recordService.getList(riskId);
|
data.setRiskList(riskList);
|
}
|
if (projectId != null) {
|
data.setProjectId(projectId);
|
data.getRiskMeasure().setProjectId(projectId);
|
data.setProject(projectService.get(projectId));
|
}
|
return data;
|
}
|
|
private List<RiskTraceItem> getList(Long riskId) {
|
Map<String, Object> params = new HashMap<>();
|
params.put("riskId", riskId);
|
return baseDao.getList(params);
|
}
|
|
|
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();
|
}
|
}
|
}
|