package com.zt.life.modules.project.service;
|
|
import com.zt.common.service.BaseService;
|
import com.zt.core.sys.dto.DictDto;
|
import com.zt.core.sys.dto.DictItemDto;
|
import com.zt.core.sys.dto.DictLeafDto;
|
import com.zt.life.export.dto.WordFile;
|
import com.zt.life.export.service.WordFileService;
|
import com.zt.life.modules.project.dao.SoftwareTestOrderDao;
|
import com.zt.life.modules.project.dto.SoftwareTestOrderDto;
|
import com.zt.life.modules.project.model.SoftwareTestOrder;
|
import com.zt.life.modules.project.model.SoftwareTestOrderDeliverable;
|
import com.zt.life.modules.project.model.SoftwareTestOrderMeasured;
|
import com.zt.life.modules.sysBaseInfo.service.TestAgencyInfoService;
|
import com.zt.modules.coderule.service.SysCodeRuleService;
|
import com.zt.modules.sys.service.SysDictTypeService;
|
import lombok.val;
|
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;
|
import java.util.stream.Collectors;
|
|
|
/**
|
* software_test_order
|
*
|
* @author zt generator
|
* @since 1.0.0 2023-11-08
|
*/
|
@Service
|
public class SoftwareTestOrderService extends BaseService<SoftwareTestOrderDao, SoftwareTestOrder> {
|
|
@Autowired
|
private ProjectService projectService;
|
@Autowired
|
private SoftwareTestOrderDeliverableService softwareTestOrderDeliverableService;
|
@Autowired
|
private SoftwareTestOrderMeasuredService softwareTestOrderMeasuredService;
|
@Autowired
|
private TestAgencyInfoService testAgencyInfoService;
|
@Autowired
|
private SysCodeRuleService sysCodeRuleService;
|
|
@Autowired
|
private SysDictTypeService sysDictTypeService;
|
@Autowired
|
private WordFileService wordFileService;
|
|
/**
|
* 分页查询
|
*
|
* @param queryFilter
|
* @return
|
*/
|
public List<SoftwareTestOrder> page(QueryFilter queryFilter) {
|
return baseDao.getList(queryFilter.getQueryParams());
|
}
|
|
|
/**
|
* 删除
|
*
|
* @param ids
|
*/
|
public void delete(Long[] ids) {
|
super.deleteLogic(ids);
|
}
|
|
|
public Boolean save(SoftwareTestOrderDto softwareTestOrderDto) {
|
Long softwareTestOrderId = softwareTestOrderDto.getSoftwareTestOrder().getId();
|
if (softwareTestOrderId != null)
|
baseDao.updateById(softwareTestOrderDto.getSoftwareTestOrder());
|
else {
|
Map<String, String> map = new HashMap<>();
|
map.put("funCode", "software_test_order");
|
softwareTestOrderDto.getSoftwareTestOrder().setCode(sysCodeRuleService.getNewCode(map));
|
baseDao.insert(softwareTestOrderDto.getSoftwareTestOrder());
|
softwareTestOrderId = softwareTestOrderDto.getSoftwareTestOrder().getId();
|
}
|
|
for (SoftwareTestOrderMeasured softwareTestOrderMeasured : softwareTestOrderDto.getMeasuredList()) {
|
softwareTestOrderMeasured.setOrderId(softwareTestOrderId);
|
if (softwareTestOrderMeasured.getId() != null) {
|
softwareTestOrderMeasuredService.update(softwareTestOrderMeasured);
|
} else {
|
softwareTestOrderMeasuredService.insert(softwareTestOrderMeasured);
|
}
|
}
|
|
for (SoftwareTestOrderDeliverable softwareTestOrderDeliverable : softwareTestOrderDto.getDeliverableList()) {
|
softwareTestOrderDeliverable.setOrderId(softwareTestOrderId);
|
if (softwareTestOrderDeliverable.getId() != null) {
|
softwareTestOrderDeliverableService.update(softwareTestOrderDeliverable);
|
} else {
|
softwareTestOrderDeliverableService.insert(softwareTestOrderDeliverable);
|
}
|
}
|
|
if (softwareTestOrderDto.getTestAgencyInfo().getId() == 10000) {
|
softwareTestOrderDto.getTestAgencyInfo().setId(softwareTestOrderId);
|
testAgencyInfoService.insert(softwareTestOrderDto.getTestAgencyInfo());
|
} else {
|
testAgencyInfoService.update(softwareTestOrderDto.getTestAgencyInfo());
|
}
|
return true;
|
}
|
|
public SoftwareTestOrderDto getDto(Long orderId, Long projectId) {
|
SoftwareTestOrderDto data = new SoftwareTestOrderDto();
|
if (orderId != null) {
|
data.setId(orderId);
|
SoftwareTestOrder softwareTestOrder = this.get(orderId);
|
data.setSoftwareTestOrder(softwareTestOrder);
|
|
if (projectId == null)
|
projectId = softwareTestOrder.getProjectId();
|
|
data.setTestAgencyInfo(testAgencyInfoService.get(orderId));
|
List<SoftwareTestOrderDeliverable> deliverableList = softwareTestOrderDeliverableService.childrenTables(orderId);
|
if (deliverableList.isEmpty()) {
|
deliverableList = this.deliverableDict();
|
deliverableList = deliverableList.stream()
|
.peek(deliverable -> {
|
if (deliverable.getIdentify() == null) {
|
// 修改 identify 字段的值为新值
|
deliverable.setIdentify("1.0.0");
|
}
|
})
|
.collect(Collectors.toList());
|
}
|
data.setDeliverableList(deliverableList);
|
|
List<SoftwareTestOrderMeasured> measuredList = softwareTestOrderMeasuredService.childrenTables(orderId);
|
if (measuredList.isEmpty()) {
|
measuredList = this.MeasuredDict();
|
measuredList = measuredList.stream()
|
.peek(measured -> {
|
if (measured.getIdentify() == null) {
|
// 修改 identify 字段的值为新值
|
measured.setIdentify("1.0.0");
|
}
|
})
|
.collect(Collectors.toList());
|
}
|
data.setMeasuredList(measuredList);
|
} else {
|
data.setTestAgencyInfo(testAgencyInfoService.get(10000L));
|
}
|
if (projectId != null) {
|
data.setProjectId(projectId);
|
data.setProject(projectService.get(projectId));
|
}
|
return data;
|
}
|
|
|
public List<SoftwareTestOrderDeliverable> deliverableDict() {
|
return baseDao.getdeliverableDictList();
|
}
|
|
public List<SoftwareTestOrderMeasured> MeasuredDict() {
|
return baseDao.getMeasuredDictList();
|
}
|
|
public void exportWord(Long id, HttpServletRequest request, HttpServletResponse response) {
|
WordFile wordFile = new WordFile();
|
wordFile.setModulePath("aaaa");
|
wordFile.setWordName("aaa");
|
SoftwareTestOrderDto dataObj = this.getDto(id, null);
|
|
List<DictDto> userDicts = sysDictTypeService.getUserDicts();
|
DictDto testType1Dict = userDicts.stream()
|
.filter(c -> c.getDictType().equals("test_type1"))
|
.collect(Collectors.toList()).get(0);
|
|
List<String> testType11 = new ArrayList<>();
|
List<String> testType12 = new ArrayList<>();
|
List<String> testType21 = new ArrayList<>();
|
List<String> testType22 = new ArrayList<>();
|
|
int i = 0;
|
String testType = "," + dataObj.getSoftwareTestOrder().getTestType1() + ",";
|
for (DictItemDto dictItemDto : ((DictLeafDto) testType1Dict).getDataList()) {
|
String value = dictItemDto.getDictValue();
|
String desc = (testType.contains("," + value + ",")?"☑":"□")+dictItemDto.getDictLabel();
|
if ((i++) % 2 == 0) {
|
testType12.add(desc);
|
} else {
|
testType11.add(desc);
|
}
|
}
|
|
i = 0;
|
testType = "," + dataObj.getSoftwareTestOrder().getTestType2() + ",";
|
for (DictItemDto dictItemDto : ((DictLeafDto) testType1Dict).getDataList()) {
|
String value = dictItemDto.getDictValue();
|
String desc = (testType.contains("," + value + ",")?"☑":"□")+dictItemDto.getDictLabel();
|
if ((i++) % 2 == 0) {
|
testType22.add(desc);
|
} else {
|
testType21.add(desc);
|
}
|
}
|
|
dataObj.getSoftwareTestOrder().setTestType11(testType11);
|
dataObj.getSoftwareTestOrder().setTestType12(testType12);
|
dataObj.getSoftwareTestOrder().setTestType21(testType21);
|
dataObj.getSoftwareTestOrder().setTestType22(testType22);
|
|
List<Object> measuredList = new ArrayList<>();
|
|
try {
|
wordFileService.exportWordFile(request, dataObj, wordFile, response);
|
} catch (UnsupportedEncodingException e) {
|
e.printStackTrace();
|
} catch (FileNotFoundException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|