标准拆分,拆分之后分解单里也有数据

This commit is contained in:
yanyizhou
2021-08-20 21:50:40 +08:00
parent afe965d44e
commit 23365ffa16
3 changed files with 80 additions and 37 deletions
@@ -1,5 +1,6 @@
package com.adc.da.slrs.standardSplit.dao;
import com.adc.da.slrs.sarStandItems.entity.SarStandItems;
import com.adc.da.slrs.standardSplit.dto.FileSplitItemsExportDto;
import com.adc.da.slrs.standardSplit.entity.SarFileSplitItemsEO;
import com.adc.da.slrs.standardSplit.entity.SarFileSplitItemsEOPage;
@@ -21,6 +22,8 @@ public interface SarFileSplitItemsEODao extends BaseMapper<SarFileSplitItemsEO>
int insertForeach(List<SarFileSplitItemsEO> list);
int insertStandSplitForeach(@Param(value = "list") List<SarStandItems> list);
int deleteByIds(SarFileSplitItemsEO sarFileSplitItemsEO);
int deleteByItemsIds(SarFileSplitItemsEO sarFileSplitItemsEO);
@@ -2,6 +2,7 @@ package com.adc.da.slrs.standardSplit.service.impl;
import com.adc.da.att.service.IAttFileEOService;
import com.adc.da.person.entity.PersonMsgEO;
import com.adc.da.slrs.sarStandItems.entity.SarStandItems;
import com.adc.da.slrs.standardSplit.dao.*;
import com.adc.da.slrs.standardSplit.service.SarLawsInfoEOService;
import com.adc.da.att.entity.AttFileEO;
@@ -31,10 +32,12 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.adc.da.common.SplitFilePragraTypeEnum;
import java.io.*;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.adc.da.person.dao.PersonShareEODao;
import com.adc.da.person.dao.PersonCollectEODao;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -105,7 +108,12 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
@Override
@Transactional
public int fileAplit(SarFileSplitInfoEO sarFileSplitInfoEO){
public int fileAplit(SarFileSplitInfoEO sarFileSplitInfoEO) {
//用来往标准分解单里添加数据
List<SarStandItems> standList = new ArrayList<>();
// 拆分文件主表中插入数据
sarFileSplitInfoEO.setId(UUIDUtils.randomUUID20());
sarFileSplitInfoEO.setValidFlag(0);
@@ -244,8 +252,7 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
addItermsConditionsText(messageList.get(messageList.size()-1),itemValList, p.getText());
}
}
}
else if (messageNumber>=3){
} else if (messageNumber >= 3) {
ptest = Pattern.compile("^[\\d.]*$");
boolean hasGoIf = false;
for (int i=0;i<nowStart.size();i++){
@@ -326,6 +333,24 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
sarFileSplitMenuEODao.insertForeach(treeList);
sarFileSplitItemsEODao.insertForeach(messageList);
sarFileSplitItemsValEODao.insertForeach(itemValList);
//用来往标准分解单插入数据
messageList.forEach(item -> {
//new一个对象
SarStandItems standItems1 = new SarStandItems();
//standItems1里的这个值为messageList里的ItermsConditions
standItems1.setId(UUIDUtils.randomUUID20())
.setFileType(sarFileSplitInfoEO.getFileType())
.setStandId(sarFileSplitInfoEO.getStandId())
.setItemsNum(item.getItemsNum())
.setItemsName(item.getItemsName())
.setTermsConditions(item.getItermsConditions());
standList.add(standItems1);
});
sarFileSplitItemsEODao.insertStandSplitForeach(standList);
} else {
return -1;
}
@@ -368,7 +393,7 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
if (o instanceof CTDrawing) {
CTDrawing drawing = (CTDrawing) o;
CTInline[] ctInlines = drawing.getInlineArray();
CTAnchor[] ctAnchors = drawing.getAnchorArray();
CTAnchor[] ctAnchors = drawing.getAnchorArray();
for (CTInline ctInline : ctInlines) {
CTGraphicalObject graphic = ctInline.getGraphic();
//
@@ -398,7 +423,7 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
}
}
}
} else if (o instanceof CTLevelText){
} else if (o instanceof CTLevelText) {
logger.info(((CTLevelText) o).getVal());
}
}
@@ -407,14 +432,14 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
}
// 像每个条款中依次插入每一段的内容
private void addItermsConditionsImage(SarFileSplitItemsEO message,List<SarFileSplitItemsValEO> itemsValList,XWPFParagraph p,List<String> imageBundleList) {
private void addItermsConditionsImage(SarFileSplitItemsEO message, List<SarFileSplitItemsValEO> itemsValList, XWPFParagraph p, List<String> imageBundleList) {
for (String pictureId : imageBundleList) {
XWPFPictureData pictureData = p.getDocument().getPictureDataByID(pictureId);
String imageName = UUIDUtils.randomUUID10() + pictureData.getFileName();
byte[] bytev = pictureData.getData();
String outPath = filePath + "/img/";
File file1 = new File(outPath);
if(!file1.exists()){
if (!file1.exists()) {
file1.mkdirs();
}
String filepathandname = filePath + "/img/" + imageName;
@@ -425,14 +450,14 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
String imgCon = "<img class=\'wordImg\' src=\'" + path + "\'>";
message.getItemsCondi().add(imgCon);
message.setItermsConditions(message.getItermsConditions() + imgCon);
itemsValList.add(getSplitItemsValObject(message.getId(),SplitFilePragraTypeEnum.IMG.getValue(),imgCon,message.getItemsCondi().size(),null));
itemsValList.add(getSplitItemsValObject(message.getId(), SplitFilePragraTypeEnum.IMG.getValue(), imgCon, message.getItemsCondi().size(), null));
} catch (IOException e) {
e.printStackTrace();
}
}
}
private SarFileSplitItemsValEO getSplitItemsValObject (String itemId,String type,String itemContent,int disPlaySql,List<SarFileSplitItemsTableEO> tableList) {
private SarFileSplitItemsValEO getSplitItemsValObject(String itemId, String type, String itemContent, int disPlaySql, List<SarFileSplitItemsTableEO> tableList) {
SarFileSplitItemsValEO sarFileSplitItemsValEO = new SarFileSplitItemsValEO();
sarFileSplitItemsValEO.setId(UUIDUtils.randomUUID20());
sarFileSplitItemsValEO.setValidFlag(0);
@@ -444,13 +469,13 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
sarFileSplitItemsValEO.setType(type);
sarFileSplitItemsValEO.setDisplaySeq(disPlaySql);
sarFileSplitItemsValEO.setItemContent(itemContent);
return sarFileSplitItemsValEO;
return sarFileSplitItemsValEO;
}
// 像每个条款中依次插入每一段的内容
private void addItermsConditionsText(SarFileSplitItemsEO message,List<SarFileSplitItemsValEO> itemsValList,String p) {
private void addItermsConditionsText(SarFileSplitItemsEO message, List<SarFileSplitItemsValEO> itemsValList, String p) {
message.getItemsCondi().add(p);
message.setItermsConditions(message.getItermsConditions() + "<p>"+p+ "<p>");
message.setItermsConditions(message.getItermsConditions() + "<p>" + p + "<p>");
// 判断message中是否引用到其他标准
// String testString = p;
// Pattern ptest = Pattern.compile("[A-Z]{1,}/{0,1}[A-Z]{1,}\\s{0,1}[0-9]\\d*\\.?\\d*");
@@ -473,51 +498,52 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
// message.setReferenceStand(matcher.group());
// }
// }
itemsValList.add(getSplitItemsValObject(message.getId(),SplitFilePragraTypeEnum.TEXT.getValue(),p,message.getItemsCondi().size(),null));
itemsValList.add(getSplitItemsValObject(message.getId(), SplitFilePragraTypeEnum.TEXT.getValue(), p, message.getItemsCondi().size(), null));
}
private SarFileSplitMenuEO getTreeList(String name, List<SarFileSplitMenuEO> treeList,String generalCatalogueId,SarFileSplitInfoEO sarFileSplitInfoEO ,Long treeListDisplay,String itemName){
SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(UUIDUtils.randomUUID20(),name,sarFileSplitInfoEO.getId(),treeListDisplay,itemName);
private SarFileSplitMenuEO getTreeList(String name, List<SarFileSplitMenuEO> treeList, String generalCatalogueId, SarFileSplitInfoEO sarFileSplitInfoEO, Long treeListDisplay, String itemName) {
SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(UUIDUtils.randomUUID20(), name, sarFileSplitInfoEO.getId(), treeListDisplay, itemName);
// 用现在得name 和之前得name 做比较,确定,parentId
if (name.indexOf(".")>=0) {
if (name.indexOf(".") >= 0) {
for (SarFileSplitMenuEO forDocumentTree : treeList) {
if (name.substring(0, name.lastIndexOf(".")).equals(forDocumentTree.getName())) {
documentTreeEO.setPId(forDocumentTree.getId());
break;
}
}
}else {
} else {
documentTreeEO.setPId(generalCatalogueId);
}
return documentTreeEO;
return documentTreeEO;
}
/**
* 通过传递过来的编号,得出下次可能出现的编号
*
* @param nowStart
* @return
*/
private List<String> getNewNowStart(String nowStart){
private List<String> getNewNowStart(String nowStart) {
List<String> nowStartList = new ArrayList<>();
List<String> nowResultStartList = new ArrayList<>();
String[] numberStr = nowStart.split("\\.");
String startnumber = "";
for(int i=0;i<numberStr.length;i++) {
if (i==0) {
for (int i = 0; i < numberStr.length; i++) {
if (i == 0) {
startnumber = "";
} else if (i==1) {
} else if (i == 1) {
startnumber = numberStr[0];
} else {
startnumber = startnumber +"." +numberStr[i-1];
startnumber = startnumber + "." + numberStr[i - 1];
}
Integer lastnumber = Integer.valueOf(numberStr[i])+1;
nowResultStartList.add((startnumber.equals("")?"":(startnumber+".")) + lastnumber);
Integer lastnumber = Integer.valueOf(numberStr[i]) + 1;
nowResultStartList.add((startnumber.equals("") ? "" : (startnumber + ".")) + lastnumber);
}
nowResultStartList.add(nowStart+".1");
nowResultStartList.add(nowStart + ".1");
return nowResultStartList;
}
private void addItermsConditionsOfTable(SarFileSplitItemsEO message,List<SarFileSplitItemsValEO> itemsValList,XWPFTable table) throws IOException {
private void addItermsConditionsOfTable(SarFileSplitItemsEO message, List<SarFileSplitItemsValEO> itemsValList, XWPFTable table) throws IOException {
StringBuilder tabaleStringNew = new StringBuilder("");
//将表格转为html字符串
ReadWordTable readWordTable = new ReadWordTable();
@@ -525,25 +551,25 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
tabaleStringNew.append(tableStr);
message.getItemsCondi().add(table.getText());
message.setItermsConditions(message.getItermsConditions() + tabaleStringNew);
itemsValList.add(getSplitItemsValObject(message.getId(),SplitFilePragraTypeEnum.TABLE.getValue(),tabaleStringNew.toString(),message.getItemsCondi().size(),null));
itemsValList.add(getSplitItemsValObject(message.getId(), SplitFilePragraTypeEnum.TABLE.getValue(), tabaleStringNew.toString(), message.getItemsCondi().size(), null));
}
@Override
public List<SarFileSplitInfoEO> queryByPageOwn(SarFileSplitInfoEOPage page){
public List<SarFileSplitInfoEO> queryByPageOwn(SarFileSplitInfoEOPage page) {
int rowCount = sarFileSplitInfoEODao.queryByCountOwn(page);
page.getPager().setRowCount(rowCount);
List<SarFileSplitInfoEO> rows = sarFileSplitInfoEODao.queryByPageOwn(page);
Map<String,String> map = new HashMap<>();
map.put("CA","草稿");
map.put("ZQYJG","征求意见稿");
map.put("BPG","报批稿");
map.put("SSG","送审稿");
map.put("FBGBJBD","发布稿(必读)");
Map<String, String> map = new HashMap<>();
map.put("CA", "草稿");
map.put("ZQYJG", "征求意见稿");
map.put("BPG", "报批稿");
map.put("SSG", "送审稿");
map.put("FBGBJBD", "发布稿(必读)");
if (rows != null && !rows.isEmpty()) {
for (SarFileSplitInfoEO infoEO : rows) {
infoEO.setFileTypeShow(String.valueOf(map.get(infoEO.getFileType())));
infoEO.setFileTypeShow(String.valueOf(map.get(infoEO.getFileType())));
// if (!infoEO.getSplitStatus().equals("0") && infoEO.getShowNumber() == null){
// SarLawsInfoEOPage sarLawsInfoEOPage = new SarLawsInfoEOPage();
// sarLawsInfoEOPage.setId(infoEO.getStandId());
@@ -571,7 +597,7 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
}
@Override
public int deleteByIds(String ids){
public int deleteByIds(String ids) {
String[] infoIds = ids.split(",");
// 删除info表数据
SarFileSplitInfoEO sarFileSplitInfoEO = new SarFileSplitInfoEO();