feat: scc流程 是否与上一版本相同逻辑
This commit is contained in:
+5
@@ -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;
|
||||
|
||||
/**
|
||||
* 附件
|
||||
*/
|
||||
|
||||
+21
-39
@@ -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("拆分单数据为空");
|
||||
|
||||
+2
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user