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") @ApiModelProperty(value = "分发批次唯一Id")
private String batchId; 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 cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.CommonAPI; import com.jero.common.api.CommonAPI;
import com.jero.common.api.vo.ResultCommon; 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.common.service.impl.LawsCommonServiceImpl;
import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit; import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit;
import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper; 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.enterprise.util.BeanCopyUtils;
import com.jero.modules.laws.utils.ExcelExportUtilPro; import com.jero.modules.laws.utils.ExcelExportUtilPro;
import com.jero.modules.oss.entity.OSSFile; 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.beans.factory.annotation.Value;
import org.springframework.mock.web.MockMultipartFile; import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
@@ -89,6 +88,7 @@ import static com.jero.modules.activiti.process.standardComplianceCheck.common.P
* @description 针对表【process_standard_compliance_check】的数据库操作Service实现 * @description 针对表【process_standard_compliance_check】的数据库操作Service实现
* @createDate 2024-07-04 10:21:21 * @createDate 2024-07-04 10:21:21
*/ */
@Transactional(rollbackFor = JeroBootException.class)
@Service @Service
@Slf4j @Slf4j
public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<ProcessStandardComplianceCheckMapper, ProcessStandardComplianceCheck> public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<ProcessStandardComplianceCheckMapper, ProcessStandardComplianceCheck>
@@ -109,8 +109,6 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
@Resource @Resource
private IProcessStandardComplianceCheckDetailService sccDetailService; private IProcessStandardComplianceCheckDetailService sccDetailService;
@Resource @Resource
private IDocumentSplitService documentSplitService;
@Resource
private IOSSFileService ossFileService; private IOSSFileService ossFileService;
@Resource @Resource
private ISarFileSplitInfoService sarFileSplitInfoService; private ISarFileSplitInfoService sarFileSplitInfoService;
@@ -438,6 +436,13 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
detailInfoList = this.getSplitData(scc, splitFile); detailInfoList = this.getSplitData(scc, splitFile);
} else { } else {
detailInfoList = this.getSplitDataByStandard(scc); 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()); MultipartFile modelFile = this.getFileById(scc.getModelFile());
@@ -460,7 +465,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
boolean mkdirs = file.mkdirs(); boolean mkdirs = file.mkdirs();
log.info("创建临时目录:{}", 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, excelExportUtilPro.settleDocuments(url, detailInfoList,
ProcessStandardComplianceCheckDetail::obtainFileIds, ProcessStandardComplianceCheckDetail::obtainFileIds,
@@ -503,7 +508,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
boolean mkdirs = file.mkdirs(); boolean mkdirs = file.mkdirs();
log.info("创建临时目录:{}", 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, excelExportUtilPro.settleDocuments(url, detailInfoList,
ProcessStandardComplianceCheckDetail::obtainFileIds, ProcessStandardComplianceCheckDetail::obtainFileIds,
@@ -723,7 +728,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
.eq(SarFileSplitInfoEO::getStandardId, standardId) .eq(SarFileSplitInfoEO::getStandardId, standardId)
.eq(SarFileSplitInfoEO::getFileType, fileType) .eq(SarFileSplitInfoEO::getFileType, fileType)
.isNull(SarFileSplitInfoEO::getPublishBeforeId), false); .isNull(SarFileSplitInfoEO::getPublishBeforeId), false);
if (!Objects.isNull(sarFileSplitInfoEO)){ if (!Objects.isNull(sarFileSplitInfoEO)) {
LawsDocumentSplit lawsDocumentSplit = new LawsDocumentSplit(); LawsDocumentSplit lawsDocumentSplit = new LawsDocumentSplit();
lawsDocumentSplit.setInfoId(sarFileSplitInfoEO.getId()); lawsDocumentSplit.setInfoId(sarFileSplitInfoEO.getId());
list = documentSplitMapper.selectClauseListScc(lawsDocumentSplit); list = documentSplitMapper.selectClauseListScc(lawsDocumentSplit);
@@ -935,39 +940,16 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
*/ */
private List<ProcessStandardComplianceCheckDetail> getSplitData(ProcessStandardComplianceCheck scc, MultipartFile splitFile) { private List<ProcessStandardComplianceCheckDetail> getSplitData(ProcessStandardComplianceCheck scc, MultipartFile splitFile) {
List<ProcessStandardComplianceCheckDetail> result = new ArrayList<>(); List<ProcessStandardComplianceCheckDetail> result = new ArrayList<>();
boolean newStandard = StrUtil.isBlank(scc.getStandardId()); // 是否上传分解单
// 是否手动新增标准 if (splitFile == null) {
if (newStandard) { ProcessStandardComplianceCheckDetail detail = new ProcessStandardComplianceCheckDetail();
// 是否上传分解单 detail.setTermNumber(scc.getStandardNumber());
if (splitFile == null) { detail.setTermTitle(scc.getStandardName());
ProcessStandardComplianceCheckDetail detail = new ProcessStandardComplianceCheckDetail(); detail.setCheckId(scc.getId());
detail.setTermNumber(scc.getStandardNumber()); result.add(detail);
detail.setTermTitle(scc.getStandardName());
detail.setCheckId(scc.getId());
result.add(detail);
} else {
// 获取数据返回
result.addAll(this.getSplitExcelData(splitFile, scc.getId()));
}
} else { } else {
// 根据标准Id获取所有拆分数据 // 获取数据返回
String infoId = scc.getSplitFileSource(); result.addAll(this.getSplitExcelData(splitFile, scc.getId()));
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);
});
} }
if (result.isEmpty()) { if (result.isEmpty()) {
throw new JeroBootException("拆分单数据为空"); throw new JeroBootException("拆分单数据为空");
@@ -279,7 +279,8 @@
item_num as termNumber, item_num as termNumber,
item_title as termTitle, item_title as termTitle,
item_content as termContent, item_content as termContent,
responsible_department as authDept responsible_department as authDept,
is_same_as_prev_version
FROM laws_document_split s FROM laws_document_split s
LEFT JOIN SAR_FILE_SPLIT_MENU m ON s.MENU_ID = m.id LEFT JOIN SAR_FILE_SPLIT_MENU m ON s.MENU_ID = m.id
WHERE del_flag = 0 WHERE del_flag = 0