package com.zt.life.modules.testCheckOrder.service;
|
|
import cn.hutool.core.convert.Convert;
|
import com.zt.common.service.BaseService;
|
import com.zt.core.context.User;
|
import com.zt.core.context.UserContext;
|
import com.zt.life.export.dto.WordFile;
|
import com.zt.life.export.service.WordFileService;
|
import com.zt.life.modules.configItemWarehouse.dto.ConfigItemWarehouseDto;
|
import com.zt.life.modules.configItemWarehouse.model.WarehouseCmAudit;
|
import com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem;
|
import com.zt.life.modules.configItemWarehouse.model.WarehouseQaAudit;
|
import com.zt.life.modules.itemCirculatOrder.dto.ItemCirculatOrderDto;
|
import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrder;
|
import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrderTechnical;
|
import com.zt.life.modules.mainPart.utils.GetFilesPath;
|
import com.zt.life.modules.mainPart.utils.GetShowDictList;
|
import com.zt.life.modules.project.model.Project;
|
import com.zt.life.modules.project.service.ProjectService;
|
import com.zt.life.modules.testCheckOrder.dao.TestCheckOrderDao;
|
import com.zt.life.modules.testCheckOrder.dto.CheckOrderDto;
|
import com.zt.life.modules.testCheckOrder.model.TestCheckOrder;
|
import com.zt.life.modules.testCheckOrder.model.TestCheckOrderList;
|
import com.zt.life.sys.dto.OssDto;
|
import com.zt.modules.coderule.service.SysCodeRuleService;
|
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;
|
|
|
/**
|
* test_check_order
|
*
|
* @author zt generator
|
* @since 1.0.0 2023-12-05
|
*/
|
@Service
|
public class TestCheckOrderService extends BaseService<TestCheckOrderDao, TestCheckOrder> {
|
@Autowired
|
private TestCheckOrderListService checkOrderListService;
|
|
@Autowired
|
private ProjectService projectService;
|
|
@Autowired
|
private GetShowDictList getShowDictList;
|
|
@Autowired
|
private SysCodeRuleService sysCodeRuleService;
|
|
@Autowired
|
private WorkflowService workflowService;
|
|
@Autowired
|
private GetFilesPath getFilesPath;
|
|
@Autowired
|
private WordFileService wordFileService;
|
|
|
/**
|
* 分页查询
|
*
|
* @param queryFilter
|
* @return
|
*/
|
public List<TestCheckOrder> page(QueryFilter queryFilter) {
|
User user = UserContext.getUser();
|
Integer secretClass = user.getSecretClass();
|
queryFilter.getQueryParams().put("secretClass",secretClass);
|
List<TestCheckOrder> list = baseDao.getList(queryFilter.getQueryParams());
|
if (list.size() > 0) {
|
workflowService.getRunFlow(list, "csjcd");
|
}
|
return list;
|
}
|
|
/**
|
* 删除
|
*
|
* @param ids
|
*/
|
public void delete(Long[] ids) {
|
super.deleteLogic(ids);
|
}
|
|
|
public CheckOrderDto getDto(Long checkId, Long projectId, String pageCode) {
|
CheckOrderDto data = new CheckOrderDto();
|
data.setPageCode(pageCode);
|
if (checkId != null) {
|
data.setId(checkId);
|
TestCheckOrder checkOrder = this.get(checkId);
|
data.setCheckOrder(checkOrder);
|
if (projectId == null) {
|
projectId = checkOrder.getProjectId();
|
}
|
List<TestCheckOrderList> checkOrderList = checkOrderListService.getList(checkId);
|
data.setCheckOrderList(checkOrderList);
|
|
} else {
|
TestCheckOrder checkOrder = new TestCheckOrder();
|
checkOrder.setPageCode(pageCode);
|
data.setCheckOrder(checkOrder);
|
List<TestCheckOrderList> checkOrderList = checkOrderListService.itemList(pageCode + "_check_item");
|
data.setCheckOrderList(checkOrderList);
|
}
|
if (projectId != null) {
|
data.setProjectId(projectId);
|
data.setProject(projectService.get(projectId));
|
}
|
return data;
|
}
|
|
public Long save(CheckOrderDto checkOrderDto) {
|
Long checkId = checkOrderDto.getCheckOrder().getId();
|
if (checkId != null)
|
baseDao.updateById(checkOrderDto.getCheckOrder());
|
else {
|
Map<String, String> map = new HashMap<>();
|
String pagecode = checkOrderDto.getPageCode();
|
map.put("funCode", "test_check_order_" + pagecode);
|
map.put("projectId", checkOrderDto.getProjectId().toString());
|
checkOrderDto.getCheckOrder().setProjectId(checkOrderDto.getProjectId());
|
checkOrderDto.getCheckOrder().setCode(sysCodeRuleService.getNewCode(map));
|
baseDao.insert(checkOrderDto.getCheckOrder());
|
checkId = checkOrderDto.getCheckOrder().getId();
|
}
|
|
for (TestCheckOrderList checkOrderList : checkOrderDto.getCheckOrderList()) {
|
checkOrderList.setCheckOrderId(checkId);
|
if (checkOrderList.getId() != null) {
|
checkOrderListService.update(checkOrderList);
|
} else {
|
checkOrderList.setCheckOrderId(checkId);
|
checkOrderListService.insert(checkOrderList);
|
}
|
}
|
|
Long bizId = checkOrderDto.getCheckOrder().getId();
|
FlowInfoDto flowInfoDto = checkOrderDto.getFlowInfoDto();
|
|
if (flowInfoDto != null && flowInfoDto.getSubmitType() != null && "tj,bl".contains(flowInfoDto.getSubmitType())) {
|
if ("tj".equals(flowInfoDto.getSubmitType())) {
|
workflowService.startFlow(flowInfoDto.getFlowCode(), bizId);
|
}
|
workflowService.approvePass(flowInfoDto.getFlowCode(), bizId, flowInfoDto.getStepIdMark());
|
}
|
return checkId;
|
}
|
|
public void exportCheckOrder(Long id, String pageCode, HttpServletRequest request, HttpServletResponse response) {
|
try {
|
CheckOrderDto dataObj = this.getDto(id, null, pageCode);
|
if (dataObj.getCheckOrder().getProcessorId() != null && dataObj.getCheckOrder().getVerifierId() != null) {
|
String processorPath = "文件图片:" + getFilesPath.getSignPath(Convert.toLong(dataObj.getCheckOrder().getProcessorId()));
|
dataObj.getCheckOrder().setProcessor(processorPath);
|
String verifierPath = "文件图片:" + getFilesPath.getSignPath(Convert.toLong(dataObj.getCheckOrder().getVerifierId()));
|
dataObj.getCheckOrder().setVerifier(verifierPath);
|
}
|
|
//通用字典列表字符串生成
|
for (TestCheckOrderList checkOrderList : dataObj.getCheckOrderList()) {
|
String value = checkOrderList.getCheckResult();
|
String checkResultStr = "";
|
if ("plan".equals(pageCode) || "report".equals(pageCode) || "record".equals(pageCode) || "explain".equals(pageCode)) {
|
checkResultStr = getShowDictList.getShowDictList(value, "tristate1", false);
|
} else {
|
checkResultStr = getShowDictList.getShowDictList(value, "tristate2", false);
|
}
|
checkOrderList.setCheckResult(checkResultStr);
|
}
|
|
Map<String, String> map = new HashMap<>();
|
map.put("plan", "计划");
|
map.put("report", "报告");
|
map.put("record", "记录");
|
map.put("explain", "说明");
|
map.put("contract", "合同评审");
|
map.put("require", "测试需求分析与策划");
|
map.put("execute", "测试设计、实现与执行");
|
map.put("summary", "测试总结");
|
String type = map.get(pageCode);
|
dataObj.setPageCode(type);
|
WordFile wordFile = new WordFile();
|
|
if ("plan".equals(pageCode) || "report".equals(pageCode) || "record".equals(pageCode) || "explain".equals(pageCode)) {
|
wordFile.setModulePath("软件测试检查单.docx");
|
wordFile.setWordName(dataObj.getProject().getSoftwareName() + "_软件测试" + type + "检查单.docx");
|
} else {
|
wordFile.setModulePath("质量保证检查单.docx");
|
wordFile.setWordName(dataObj.getProject().getSoftwareName() + "_质量保证检查单(" + type + ").docx");
|
}
|
wordFileService.exportWordFile(request, dataObj, wordFile, response);
|
} catch (UnsupportedEncodingException e) {
|
e.printStackTrace();
|
} catch (FileNotFoundException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|