feat: scc流程 是否与上一版本相同逻辑

This commit is contained in:
2024-07-23 16:26:57 +08:00
parent 701ed83141
commit 0776eb2f71
3 changed files with 28 additions and 40 deletions
@@ -222,6 +222,11 @@ public class ProcessStandardComplianceCheckDetail implements Serializable {
@ApiModelProperty(value = "分发批次唯一Id")
private String batchId;
@ApiModelProperty(value = "是否与上一版相同(字典:1:是,0:否)")
@Excel(name = "是否与上一版相同", width = 15, dicCode = "yn")
@Dict(dicCode = "yn")
private String isSameAsPrevVersion;
/**
* 附件
*/
@@ -3,7 +3,6 @@ package com.jero.modules.activiti.process.standardComplianceCheck.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.CommonAPI;
import com.jero.common.api.vo.ResultCommon;
@@ -40,7 +39,6 @@ import com.jero.modules.activiti.util.ExcelUtils;
import com.jero.modules.laws.common.service.impl.LawsCommonServiceImpl;
import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit;
import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper;
import com.jero.modules.laws.documenttool.service.IDocumentSplitService;
import com.jero.modules.laws.enterprise.util.BeanCopyUtils;
import com.jero.modules.laws.utils.ExcelExportUtilPro;
import com.jero.modules.oss.entity.OSSFile;
@@ -67,6 +65,7 @@ import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
@@ -89,6 +88,7 @@ import static com.jero.modules.activiti.process.standardComplianceCheck.common.P
* @description 针对表【process_standard_compliance_check】的数据库操作Service实现
* @createDate 2024-07-04 10:21:21
*/
@Transactional(rollbackFor = JeroBootException.class)
@Service
@Slf4j
public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<ProcessStandardComplianceCheckMapper, ProcessStandardComplianceCheck>
@@ -109,8 +109,6 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
@Resource
private IProcessStandardComplianceCheckDetailService sccDetailService;
@Resource
private IDocumentSplitService documentSplitService;
@Resource
private IOSSFileService ossFileService;
@Resource
private ISarFileSplitInfoService sarFileSplitInfoService;
@@ -438,6 +436,13 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
detailInfoList = this.getSplitData(scc, splitFile);
} else {
detailInfoList = this.getSplitDataByStandard(scc);
// 是否与上一般一致
String isSameLastVersion = scc.getIsSameLastVersion();
if (YesOrNoEnum.NO.getValue().equals(isSameLastVersion)) {
// 过滤出也为否的数据
detailInfoList = detailInfoList.stream().filter(detail -> YesOrNoEnum.NO.getValue().equals
(detail.getIsSameAsPrevVersion())).collect(Collectors.toList());
}
}
// 获取两个文件
MultipartFile modelFile = this.getFileById(scc.getModelFile());
@@ -460,7 +465,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
boolean mkdirs = file.mkdirs();
log.info("创建临时目录:{}", mkdirs);
}
try (FileOutputStream fos = new FileOutputStream(url + File.separator + fileName + ".xls")){
try (FileOutputStream fos = new FileOutputStream(url + File.separator + fileName + ".xls")) {
// 获取数据
excelExportUtilPro.settleDocuments(url, detailInfoList,
ProcessStandardComplianceCheckDetail::obtainFileIds,
@@ -503,7 +508,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
boolean mkdirs = file.mkdirs();
log.info("创建临时目录:{}", mkdirs);
}
try (FileOutputStream fos = new FileOutputStream(url + File.separator + fileName + ".xls")){
try (FileOutputStream fos = new FileOutputStream(url + File.separator + fileName + ".xls")) {
// 获取数据
excelExportUtilPro.settleDocuments(url, detailInfoList,
ProcessStandardComplianceCheckDetail::obtainFileIds,
@@ -723,7 +728,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
.eq(SarFileSplitInfoEO::getStandardId, standardId)
.eq(SarFileSplitInfoEO::getFileType, fileType)
.isNull(SarFileSplitInfoEO::getPublishBeforeId), false);
if (!Objects.isNull(sarFileSplitInfoEO)){
if (!Objects.isNull(sarFileSplitInfoEO)) {
LawsDocumentSplit lawsDocumentSplit = new LawsDocumentSplit();
lawsDocumentSplit.setInfoId(sarFileSplitInfoEO.getId());
list = documentSplitMapper.selectClauseListScc(lawsDocumentSplit);
@@ -935,39 +940,16 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
*/
private List<ProcessStandardComplianceCheckDetail> getSplitData(ProcessStandardComplianceCheck scc, MultipartFile splitFile) {
List<ProcessStandardComplianceCheckDetail> result = new ArrayList<>();
boolean newStandard = StrUtil.isBlank(scc.getStandardId());
// 是否手动新增标准
if (newStandard) {
// 是否上传分解单
if (splitFile == null) {
ProcessStandardComplianceCheckDetail detail = new ProcessStandardComplianceCheckDetail();
detail.setTermNumber(scc.getStandardNumber());
detail.setTermTitle(scc.getStandardName());
detail.setCheckId(scc.getId());
result.add(detail);
} else {
// 获取数据返回
result.addAll(this.getSplitExcelData(splitFile, scc.getId()));
}
// 是否上传分解单
if (splitFile == null) {
ProcessStandardComplianceCheckDetail detail = new ProcessStandardComplianceCheckDetail();
detail.setTermNumber(scc.getStandardNumber());
detail.setTermTitle(scc.getStandardName());
detail.setCheckId(scc.getId());
result.add(detail);
} else {
// 根据标准Id获取所有拆分数据
String infoId = scc.getSplitFileSource();
Map<String, Object> parameter = new HashMap<>();
parameter.put("infoId", infoId);
parameter.put("pageNo", 1);
parameter.put("pageSize", Integer.MAX_VALUE);
IPage<Map<String, Object>> data = documentSplitService.queryDocumentSplitDetail(parameter, false);
if (data.getRecords().isEmpty()) {
throw new JeroBootException("标准拆分数据为空");
}
data.getRecords().forEach(item -> {
ProcessStandardComplianceCheckDetail detail = new ProcessStandardComplianceCheckDetail();
detail.setTermNumber(item.get("termNumber").toString());
detail.setTermTitle(item.get("termTitle").toString());
detail.setTermContent(item.get("termContent").toString());
detail.setCheckId(scc.getId());
result.add(detail);
});
// 获取数据返回
result.addAll(this.getSplitExcelData(splitFile, scc.getId()));
}
if (result.isEmpty()) {
throw new JeroBootException("拆分单数据为空");
@@ -279,7 +279,8 @@
item_num as termNumber,
item_title as termTitle,
item_content as termContent,
responsible_department as authDept
responsible_department as authDept,
is_same_as_prev_version
FROM laws_document_split s
LEFT JOIN SAR_FILE_SPLIT_MENU m ON s.MENU_ID = m.id
WHERE del_flag = 0