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