fix(新旧拆分单对比): 发起对比

This commit is contained in:
yjz
2023-10-20 10:54:57 +08:00
parent 3dbe5c8ce1
commit 249ee12690
8 changed files with 88 additions and 57 deletions
@@ -125,8 +125,8 @@ public class SarFileCompareInfoController extends JeroController<SarFileCompareI
for (SarFileCompareInfo info : pageList.getRecords()) {
info.setReleaseStateTitle(ReleaseConditionEnum.getTextByValue(info.getReleaseState(), cut));
info.setFileTypeLeft(getFileTypeText(info.getFileTypeLeft(), cut));
info.setFileTypeRight(getFileTypeText(info.getFileTypeRight(), cut));
// info.setFileTypeLeft(getFileTypeText(info.getFileTypeLeft(), cut));
// info.setFileTypeRight(getFileTypeText(info.getFileTypeRight(), cut));
// 根据编号赋值标准ID、标准来源、补充创建人
setProperty(info, lawsDomesticStandards, lawsOverseasStandards, lawsEnterpriseStandards);
}
@@ -83,6 +83,7 @@ public class SarFileCompareInfo implements Serializable {
/**文本状态1*/
@Excel(name = "文本状态1", width = 15)
@ApiModelProperty(value = "文本状态1")
@Dict(dicCode = "process_manuscript")
private String fileTypeLeft;
/**文件名称1*/
@@ -113,6 +114,7 @@ public class SarFileCompareInfo implements Serializable {
/**文本状态2*/
@Excel(name = "文本状态2", width = 15)
@ApiModelProperty(value = "文本状态2")
@Dict(dicCode = "process_manuscript")
private String fileTypeRight;
/**文件名称2*/
@@ -1,15 +1,14 @@
package com.jero.modules.compare.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.compare.entity.*;
import com.jero.modules.compare.enums.ReleaseConditionEnum;
import com.jero.modules.compare.mapper.SarFileCompareInfoMapper;
import com.jero.modules.compare.service.ISarFileCompareInfoService;
import com.jero.modules.compare.service.ISarFileCompareItemService;
import com.jero.modules.compare.service.ISarFileCompareMenuService;
import com.jero.modules.compare.utils.CompHanLPUtils;
import com.jero.modules.compare.utils.CompareConst;
import com.jero.modules.compare.enums.ReleaseConditionEnum;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.split.entity.SarFileSplitInfoEO;
import com.jero.modules.split.entity.SarFileSplitItemsEO;
@@ -207,10 +206,10 @@ public class SarFileCompareInfoServiceImpl extends ServiceImpl<SarFileCompareInf
for (SarFileSplitItemsEO itemsEO : list) {
SarFileCompareItem item = new SarFileCompareItem();
item.setInfoId(infoId);
item.setItemsName(itemsEO.getItemsName());
item.setItemsName(itemsEO.getItemTitle());
item.setMenuId(itemsEO.getMenuId());
item.setItemsNum(itemsEO.getItemsNum());
item.setItemsText(itemsEO.getItermsConditions());
item.setItemsNum(itemsEO.getItemNum());
item.setItemsText(itemsEO.getItemContent());
SarFileCompareMenu menu = menuMap.get(itemsEO.getMenuId());
if (menu != null) {
item.setItemsDisplayNum(menu.getDisplaySeq());
@@ -241,10 +240,11 @@ public class SarFileCompareInfoServiceImpl extends ServiceImpl<SarFileCompareInf
sarFileCompareInfo.setId(id);
sarFileCompareInfo.setFileIdLeft(leftInfo.getFileId());
// 处理文档库id字段 根据编号和标题查询
List<Map<String, Object>> bussDocumentLibraryEOList = bussDocumentLibraryEOService.getListBySerialNumber(leftInfo.getSerialNumber());
if (CollectionUtil.isNotEmpty(bussDocumentLibraryEOList)) {
sarFileCompareInfo.setFileKeyLeft(bussDocumentLibraryEOList.get(0).get("id").toString());
}
// List<Map<String, Object>> bussDocumentLibraryEOList = bussDocumentLibraryEOService.getListBySerialNumber(leftInfo.getSerialNumber());
// if (CollectionUtil.isNotEmpty(bussDocumentLibraryEOList)) {
// sarFileCompareInfo.setFileKeyLeft(bussDocumentLibraryEOList.get(0).get("id").toString());
// }
sarFileCompareInfo.setFileKeyLeft(leftInfo.getStandardId());
sarFileCompareInfo.setFileNameLeft(leftInfo.getFileName());
sarFileCompareInfo.setTitleLeft(leftInfo.getTitle());
sarFileCompareInfo.setFileTypeLeft(leftInfo.getFileType());
@@ -252,11 +252,11 @@ public class SarFileCompareInfoServiceImpl extends ServiceImpl<SarFileCompareInf
sarFileCompareInfo.setFileIdRight(rightInfo.getFileId());
// 处理文档库id字段 根据编号和标题查询
List<Map<String, Object>> bussDocumentLibraryEOList1 = bussDocumentLibraryEOService.getListBySerialNumber(rightInfo.getSerialNumber());
if (CollectionUtil.isNotEmpty(bussDocumentLibraryEOList1)) {
sarFileCompareInfo.setFileKeyRight(bussDocumentLibraryEOList1.get(0).get("id").toString());
}
sarFileCompareInfo.setFileKeyRight(rightInfo.getConnectId());
// List<Map<String, Object>> bussDocumentLibraryEOList1 = bussDocumentLibraryEOService.getListBySerialNumber(rightInfo.getSerialNumber());
// if (CollectionUtil.isNotEmpty(bussDocumentLibraryEOList1)) {
// sarFileCompareInfo.setFileKeyRight(bussDocumentLibraryEOList1.get(0).get("id").toString());
// }
sarFileCompareInfo.setFileKeyRight(rightInfo.getStandardId());
sarFileCompareInfo.setFileNameRight(rightInfo.getFileName());
sarFileCompareInfo.setFileTypeRight(rightInfo.getFileType());
sarFileCompareInfo.setTitleRight(rightInfo.getTitle());
@@ -112,6 +112,12 @@ public interface DocumentSplitMapper {
*/
Map<String, Object> queryLawsDocumentSplitById(@Param("id") String id);
/**
* 文档拆分详情通过id范围查询
* @param id
*/
Map<String, Object> queryLawsDocumentSplitInId(@Param("idList") String id);
/**
* 文档拆分详情-新增
* @param insertField
@@ -189,6 +189,15 @@
where valid_flag = 0 and item_id = #{itemId}
</select>
<select id="queryLawsDocumentSplitInId" resultType="java.util.Map">
select *
from laws_document_split
where id in
<foreach collection="idList.split(',')" item="item" separator="or" open="(" close=")">
#{item}
</foreach>
</select>
<update id="editDocumentSplitDetail">
UPDATE laws_document_split
SET ${updateSet}
@@ -819,37 +819,51 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
@Override
public void exportDocumentSplitDetail(Map<String, Object> parameter, HttpServletRequest request, HttpServletResponse response) {
// 文档拆分详情数据
List<Map<String, Object>> mapList = queryDocumentSplitDetailByList(parameter);
// 创建工作簿
Workbook workbook = new XSSFWorkbook();
// 创建sheet页
Sheet sheet = workbook.createSheet("条款内容");
// 字段名
List<String> keyList = new ArrayList<>();
if(!Objects.isNull(mapList) && !mapList.isEmpty()){
Map<String, Object> map = mapList.get(0);
keyList = map.entrySet().stream().map(Map.Entry::getKey).collect(Collectors.toList());
}
try (Workbook workbook = new XSSFWorkbook()){
// 文档拆分详情数据
List<Map<String, Object>> mapList = queryDocumentSplitDetailByList(parameter);
// 创建工作簿
// 样式1
CellStyle cellStyleOne = workbook.createCellStyle();
cellStyleOne.setWrapText(true);
cellStyleOne.setVerticalAlignment(VerticalAlignment.CENTER);
// 样式2
CellStyle cellStyleTwo = workbook.createCellStyle();
cellStyleTwo.setWrapText(true);
cellStyleTwo.setAlignment(HorizontalAlignment.CENTER);
// 样式3
CellStyle cellStyleThree = workbook.createCellStyle();
Font font = workbook.createFont();
font.setColor(IndexedColors.LIGHT_BLUE.getIndex());
cellStyleThree.setWrapText(true);
cellStyleThree.setVerticalAlignment(VerticalAlignment.CENTER);
// 创建sheet页
Sheet sheet = workbook.createSheet("条款内容");
// 字段名
List<String> keyList = new ArrayList<>();
if(!Objects.isNull(mapList) && !mapList.isEmpty()){
Map<String, Object> map = mapList.get(0);
keyList = map.entrySet().stream().map(Map.Entry::getKey).collect(Collectors.toList());
}
// 设置表头
for (String key : keyList) {
// 样式1
CellStyle cellStyleOne = workbook.createCellStyle();
cellStyleOne.setWrapText(true);
cellStyleOne.setVerticalAlignment(VerticalAlignment.CENTER);
// 样式2
CellStyle cellStyleTwo = workbook.createCellStyle();
cellStyleTwo.setWrapText(true);
cellStyleTwo.setAlignment(HorizontalAlignment.CENTER);
// 样式3
CellStyle cellStyleThree = workbook.createCellStyle();
Font font = workbook.createFont();
font.setColor(IndexedColors.LIGHT_BLUE.getIndex());
cellStyleThree.setWrapText(true);
cellStyleThree.setVerticalAlignment(VerticalAlignment.CENTER);
// 设置表头
Row row = sheet.createRow(0);
for (int i = 0; i < keyList.size(); i++) {
// 创建列,应用样式
Cell cell = row.createCell(i);
cell.setCellValue(new XSSFRichTextString(keyList.get(i)));
cell.setCellStyle(cellStyleOne);
if("条文内容".equals(keyList.get(i))) {
sheet.setColumnWidth(i, 80 * 256);
} else {
sheet.setColumnWidth(i, 20 * 256);
}
}
}catch (Exception e){
throw new JeroBootException("导出失败!");
}
}
@@ -24,13 +24,13 @@ public class SarFileSplitItemsEO implements Serializable {
private String infoId;
@ApiModelProperty(value = "条款号")
private String itemsNum;
private String itemNum;
@ApiModelProperty(value = "条款名称")
private String itemsName;
private String itemTitle;
@ApiModelProperty(value = "条款内容")
private String itermsConditions;
private String itemContent;
@ApiModelProperty(value = "拆分目录id")
private String menuId;
@@ -238,7 +238,7 @@ public class FileSpiltService {
String numberParent = p.getNumLevelText().substring(0, p.getNumLevelText().lastIndexOf("."));
if (numberMap.containsKey(numberParent)) {
Integer numbernow = (Integer) numberMap.get(numberParent) + 1;
if (messageList != null && !messageList.isEmpty() && messageList.get(messageList.size() - 1).getItemsNum().equals(numberParent + "." + String.valueOf(numbernow))) {
if (messageList != null && !messageList.isEmpty() && messageList.get(messageList.size() - 1).getItemNum().equals(numberParent + "." + String.valueOf(numbernow))) {
numberMap.put(numberParent, numbernow + 1);
paragraphString = numberParent + "." + String.valueOf(numbernow + 1) + paragraphString;
} else {
@@ -265,7 +265,7 @@ public class FileSpiltService {
documentTreeEO1.setPId(generalCatalogueId);
documentTreeEO1.setInfoId(sarFileSplitInfoEO.getId());
documentTreeEO1.setDisplaySeq(treeListDisplay++);
documentTreeEO1.setName(message.getItemsNum());
documentTreeEO1.setName(message.getItemNum());
documentTreeEO1.setValidFlag(0);
// treeList.add(documentTreeEO1);
@@ -346,8 +346,8 @@ public class FileSpiltService {
ptest = Pattern.compile("^附录\\s{0,3}[A-Z]{1}");
matcher = ptest.matcher(paragraphString);
// 获取当前最后一项num
String appendixNum = messageList.get(messageList.size() - 1).getItemsNum().split("\\.")[0];
if (matcher.find()&& !messageList.get(messageList.size() - 1).getItemsNum().equals("附录")) {
String appendixNum = messageList.get(messageList.size() - 1).getItemNum().split("\\.")[0];
if (matcher.find()&& !messageList.get(messageList.size() - 1).getItemNum().equals("附录")) {
if (Integer.valueOf(appendixNum) + 1 <= sarFileSplitInfoEO.getStopNumber()) {
String itemName = "附录";
List<String> clauseContent = new ArrayList<>();
@@ -789,10 +789,10 @@ public class FileSpiltService {
public static SarFileSplitItemsEO getSarFileSplitItemsEO(String infoId, String itemsNum, String itemsName, List<String> itemsCondi) {
SarFileSplitItemsEO sarFileSplitItemsEO = new SarFileSplitItemsEO();
sarFileSplitItemsEO.setInfoId(infoId);
sarFileSplitItemsEO.setItemsNum(itemsNum);
sarFileSplitItemsEO.setItemsName(itemsName);
sarFileSplitItemsEO.setItemNum(itemsNum);
sarFileSplitItemsEO.setItemTitle(itemsName);
sarFileSplitItemsEO.setItemsCondi(itemsCondi);
sarFileSplitItemsEO.setItermsConditions("");
sarFileSplitItemsEO.setItemContent("");
sarFileSplitItemsEO.setId(UUIDUtils.randomUUID20());
sarFileSplitItemsEO.setValidFlag(0);
sarFileSplitItemsEO.setCreationTime(new Date());
@@ -872,7 +872,7 @@ public class FileSpiltService {
// 像每个条款中依次插入每一段的内容
public static void addItermsConditionsText(SarFileSplitItemsEO message, List<SarFileSplitItemsValEO> itemsValList, String p) {
message.getItemsCondi().add(p);
message.setItermsConditions(message.getItermsConditions() + "<p>" + p + "</p>");
message.setItemTitle(message.getItemContent() + "<p>" + p + "</p>");
itemsValList.add(getSplitItemsValObject(message.getId(), SplitFilePragraTypeEnum.TEXT.getValue(), p, message.getItemsCondi().size(), null));
}
@@ -911,7 +911,7 @@ public class FileSpiltService {
rowNum++;
}*/
message.getItemsCondi().add(table.getText());
message.setItermsConditions(message.getItermsConditions() + tabaleStringNew);
message.setItemContent(message.getItemContent() + tabaleStringNew);
itemsValList.add(getSplitItemsValObject(message.getId(), SplitFilePragraTypeEnum.TABLE.getValue(), tabaleStringNew.toString(), message.getItemsCondi().size(), null));
}
@@ -929,7 +929,7 @@ public class FileSpiltService {
String imgCon = path;
String imgConVal = "<img class=\"wordImg\" style=\"width:100%;height:100%\" src=\"" + path + "\">";
message.getItemsCondi().add(imgConVal);
message.setItermsConditions(message.getItermsConditions() + imgConVal);
message.setItemContent(message.getItemContent() + imgConVal);
itemsValList.add(getSplitItemsValObject(message.getId(), SplitFilePragraTypeEnum.IMG.getValue(), imgCon, message.getItemsCondi().size(), null));
} catch (Exception e) {
e.printStackTrace();