package com.zt.life.modules.baselineRelease.service;
|
|
import cn.hutool.core.convert.Convert;
|
import com.zt.common.service.BaseService;
|
import com.zt.life.export.dto.WordFile;
|
import com.zt.life.export.service.WordFileService;
|
import com.zt.life.modules.baselineRelease.dao.BaselineReleaseDao;
|
import com.zt.life.modules.baselineRelease.dto.BaselineDto;
|
import com.zt.life.modules.baselineRelease.model.BaselineRelease;
|
import com.zt.life.modules.baselineRelease.model.BaselineReleaseRemark;
|
import com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem;
|
import com.zt.life.modules.mainPart.utils.GetFilesPath;
|
import com.zt.life.modules.mainPart.utils.GetShowDictList;
|
import com.zt.life.modules.project.service.ProjectService;
|
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.life.sys.service.SysOssConfigService;
|
import com.zt.modules.coderule.service.SysCodeRuleService;
|
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.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
|
/**
|
* baseline_release
|
*
|
* @author zt generator
|
* @since 1.0.0 2023-12-18
|
*/
|
@Service
|
public class BaselineReleaseService extends BaseService<BaselineReleaseDao, BaselineRelease> {
|
@Autowired
|
private ProjectService projectService;
|
|
@Autowired
|
private GetShowDictList getShowDictList;
|
|
@Autowired
|
private SysOssConfigService sysOssConfigService;
|
|
@Autowired
|
private SysCodeRuleService sysCodeRuleService;
|
|
@Autowired
|
private WorkflowService workflowService;
|
|
@Autowired
|
private GetFilesPath getFilesPath;
|
|
@Autowired
|
private WordFileService wordFileService;
|
|
@Autowired
|
private BaselineReleaseRemarkService remarkService;
|
|
@Autowired
|
private SysOssService sysOssService;
|
|
/**
|
* 分页查询
|
*
|
* @param queryFilter
|
* @return
|
*/
|
public List<BaselineRelease> page(QueryFilter queryFilter) {
|
List<BaselineRelease> list = baseDao.getList(queryFilter.getQueryParams());
|
if (list.size() > 0) {
|
workflowService.getRunFlow(list, "jxfb");
|
sysOssService.setListOsses(list, "baseline_release");
|
}
|
return list;
|
}
|
|
/**
|
* 删除
|
*
|
* @param ids
|
*/
|
public void delete(Long[] ids) {
|
super.deleteLogic(ids);
|
}
|
|
public BaselineDto getDto(Long baselineId, Long projectId, String pageCode) {
|
BaselineDto data = new BaselineDto();
|
data.setPageCode(pageCode);
|
if (baselineId != null) {
|
data.setId(baselineId);
|
BaselineRelease baseline = this.get(baselineId);
|
data.setBaseline(baseline);
|
if (projectId == null) {
|
projectId = baseline.getProjectId();
|
}
|
List<BaselineReleaseRemark> remarkList = remarkService.getList(baselineId);
|
data.setRemarkList(remarkList);
|
|
} else {
|
BaselineRelease baseline = new BaselineRelease();
|
baseline.setPageCode(pageCode);
|
data.setBaseline(baseline);
|
}
|
if ("demand".equals(pageCode)){
|
data.getBaseline().setBaselineType("1");
|
}else if("product".equals(pageCode)){
|
data.getBaseline().setBaselineType("2");
|
}
|
for (BaselineReleaseRemark remark : data.getRemarkList()) {
|
if (remark.getWarehouseDetailId() != null) {
|
Long configItemId = remark.getWarehouseDetailId();
|
OssDto ossDto = sysOssConfigService.getOssByBusiType(configItemId, "config_item_warehouse");
|
if (ossDto != null) {
|
remark.setFiles(ossDto);
|
}
|
}
|
}
|
if (projectId != null) {
|
data.setProjectId(projectId);
|
data.setProject(projectService.get(projectId));
|
}
|
return data;
|
}
|
|
|
public Long save(BaselineDto baselineDto) {
|
Long baselineId = baselineDto.getBaseline().getId();
|
if (baselineId != null)
|
baseDao.updateById(baselineDto.getBaseline());
|
else {
|
Map<String, String> map = new HashMap<>();
|
String pagecode = baselineDto.getPageCode();
|
map.put("funCode", "baseline_release_" + pagecode);
|
map.put("projectId", baselineDto.getProjectId().toString());
|
baselineDto.getBaseline().setProjectId(baselineDto.getProjectId());
|
baselineDto.getBaseline().setCode(sysCodeRuleService.getNewCode(map));
|
baseDao.insert(baselineDto.getBaseline());
|
baselineId = baselineDto.getBaseline().getId();
|
}
|
|
for (BaselineReleaseRemark remark : baselineDto.getRemarkList()) {
|
remark.setBaselineId(baselineId);
|
remark.setLibraryType(remark.getLibraryType());
|
remark.setWarehouseDetailId(remark.getSelectId());
|
if (remark.getId() != null) {
|
remarkService.update(remark);
|
} else {
|
remark.setBaselineId(baselineId);
|
remarkService.insert(remark);
|
}
|
}
|
|
Long bizId = baselineDto.getBaseline().getId();
|
FlowInfoDto flowInfoDto = baselineDto.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 baselineId;
|
}
|
|
public void exportBaseline(Long id, String pageCode, HttpServletRequest request, HttpServletResponse response) {
|
try {
|
BaselineDto dataObj = this.getDto(id, null, pageCode);
|
|
String publisherPath = "文件图片:" + getFilesPath.getSignPath(Convert.toLong(dataObj.getBaseline().getPublisherId()));
|
dataObj.getBaseline().setPublisher(publisherPath);
|
String departSignPath = "文件图片:" + getFilesPath.getSignPath(Convert.toLong(dataObj.getBaseline().getSignId()));
|
dataObj.getBaseline().setDepartSign(departSignPath);
|
//通用字典列表字符串生成
|
String baselineTypeStr = getShowDictList.getShowDictList(dataObj.getBaseline().getBaselineType(), "baseline_type", false);
|
dataObj.getBaseline().setBaselineType(baselineTypeStr);
|
|
WordFile wordFile = new WordFile();
|
wordFile.setModulePath("基线发布书.docx");
|
wordFile.setWordName(dataObj.getProject().getSoftwareName() + "_基线发布书.docx");
|
wordFileService.exportWordFile(request, dataObj, wordFile, response);
|
} catch (UnsupportedEncodingException e) {
|
e.printStackTrace();
|
} catch (FileNotFoundException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|