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

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; 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.dto.FileSplitItemsExportDto;
import com.adc.da.slrs.standardSplit.entity.SarFileSplitItemsEO; import com.adc.da.slrs.standardSplit.entity.SarFileSplitItemsEO;
import com.adc.da.slrs.standardSplit.entity.SarFileSplitItemsEOPage; import com.adc.da.slrs.standardSplit.entity.SarFileSplitItemsEOPage;
@@ -21,6 +22,8 @@ public interface SarFileSplitItemsEODao extends BaseMapper<SarFileSplitItemsEO>
int insertForeach(List<SarFileSplitItemsEO> list); int insertForeach(List<SarFileSplitItemsEO> list);
int insertStandSplitForeach(@Param(value = "list") List<SarStandItems> list);
int deleteByIds(SarFileSplitItemsEO sarFileSplitItemsEO); int deleteByIds(SarFileSplitItemsEO sarFileSplitItemsEO);
int deleteByItemsIds(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.att.service.IAttFileEOService;
import com.adc.da.person.entity.PersonMsgEO; 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.dao.*;
import com.adc.da.slrs.standardSplit.service.SarLawsInfoEOService; import com.adc.da.slrs.standardSplit.service.SarLawsInfoEOService;
import com.adc.da.att.entity.AttFileEO; 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.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.adc.da.common.SplitFilePragraTypeEnum; import com.adc.da.common.SplitFilePragraTypeEnum;
import java.io.*; import java.io.*;
import java.util.*; import java.util.*;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import com.adc.da.person.dao.PersonShareEODao; import com.adc.da.person.dao.PersonShareEODao;
import com.adc.da.person.dao.PersonCollectEODao; import com.adc.da.person.dao.PersonCollectEODao;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -105,7 +108,12 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
@Override @Override
@Transactional @Transactional
public int fileAplit(SarFileSplitInfoEO sarFileSplitInfoEO){ public int fileAplit(SarFileSplitInfoEO sarFileSplitInfoEO) {
//用来往标准分解单里添加数据
List<SarStandItems> standList = new ArrayList<>();
// 拆分文件主表中插入数据 // 拆分文件主表中插入数据
sarFileSplitInfoEO.setId(UUIDUtils.randomUUID20()); sarFileSplitInfoEO.setId(UUIDUtils.randomUUID20());
sarFileSplitInfoEO.setValidFlag(0); sarFileSplitInfoEO.setValidFlag(0);
@@ -244,8 +252,7 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
addItermsConditionsText(messageList.get(messageList.size()-1),itemValList, p.getText()); addItermsConditionsText(messageList.get(messageList.size()-1),itemValList, p.getText());
} }
} }
} } else if (messageNumber >= 3) {
else if (messageNumber>=3){
ptest = Pattern.compile("^[\\d.]*$"); ptest = Pattern.compile("^[\\d.]*$");
boolean hasGoIf = false; boolean hasGoIf = false;
for (int i=0;i<nowStart.size();i++){ for (int i=0;i<nowStart.size();i++){
@@ -326,6 +333,24 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
sarFileSplitMenuEODao.insertForeach(treeList); sarFileSplitMenuEODao.insertForeach(treeList);
sarFileSplitItemsEODao.insertForeach(messageList); sarFileSplitItemsEODao.insertForeach(messageList);
sarFileSplitItemsValEODao.insertForeach(itemValList); 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 { } else {
return -1; return -1;
} }
@@ -368,7 +393,7 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
if (o instanceof CTDrawing) { if (o instanceof CTDrawing) {
CTDrawing drawing = (CTDrawing) o; CTDrawing drawing = (CTDrawing) o;
CTInline[] ctInlines = drawing.getInlineArray(); CTInline[] ctInlines = drawing.getInlineArray();
CTAnchor[] ctAnchors = drawing.getAnchorArray(); CTAnchor[] ctAnchors = drawing.getAnchorArray();
for (CTInline ctInline : ctInlines) { for (CTInline ctInline : ctInlines) {
CTGraphicalObject graphic = ctInline.getGraphic(); 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()); 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) { for (String pictureId : imageBundleList) {
XWPFPictureData pictureData = p.getDocument().getPictureDataByID(pictureId); XWPFPictureData pictureData = p.getDocument().getPictureDataByID(pictureId);
String imageName = UUIDUtils.randomUUID10() + pictureData.getFileName(); String imageName = UUIDUtils.randomUUID10() + pictureData.getFileName();
byte[] bytev = pictureData.getData(); byte[] bytev = pictureData.getData();
String outPath = filePath + "/img/"; String outPath = filePath + "/img/";
File file1 = new File(outPath); File file1 = new File(outPath);
if(!file1.exists()){ if (!file1.exists()) {
file1.mkdirs(); file1.mkdirs();
} }
String filepathandname = filePath + "/img/" + imageName; String filepathandname = filePath + "/img/" + imageName;
@@ -425,14 +450,14 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
String imgCon = "<img class=\'wordImg\' src=\'" + path + "\'>"; String imgCon = "<img class=\'wordImg\' src=\'" + path + "\'>";
message.getItemsCondi().add(imgCon); message.getItemsCondi().add(imgCon);
message.setItermsConditions(message.getItermsConditions() + 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) { } catch (IOException e) {
e.printStackTrace(); 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 sarFileSplitItemsValEO = new SarFileSplitItemsValEO();
sarFileSplitItemsValEO.setId(UUIDUtils.randomUUID20()); sarFileSplitItemsValEO.setId(UUIDUtils.randomUUID20());
sarFileSplitItemsValEO.setValidFlag(0); sarFileSplitItemsValEO.setValidFlag(0);
@@ -444,13 +469,13 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
sarFileSplitItemsValEO.setType(type); sarFileSplitItemsValEO.setType(type);
sarFileSplitItemsValEO.setDisplaySeq(disPlaySql); sarFileSplitItemsValEO.setDisplaySeq(disPlaySql);
sarFileSplitItemsValEO.setItemContent(itemContent); 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.getItemsCondi().add(p);
message.setItermsConditions(message.getItermsConditions() + "<p>"+p+ "<p>"); message.setItermsConditions(message.getItermsConditions() + "<p>" + p + "<p>");
// 判断message中是否引用到其他标准 // 判断message中是否引用到其他标准
// String testString = p; // String testString = p;
// Pattern ptest = Pattern.compile("[A-Z]{1,}/{0,1}[A-Z]{1,}\\s{0,1}[0-9]\\d*\\.?\\d*"); // 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()); // 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){ 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); SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(UUIDUtils.randomUUID20(), name, sarFileSplitInfoEO.getId(), treeListDisplay, itemName);
// 用现在得name 和之前得name 做比较,确定,parentId // 用现在得name 和之前得name 做比较,确定,parentId
if (name.indexOf(".")>=0) { if (name.indexOf(".") >= 0) {
for (SarFileSplitMenuEO forDocumentTree : treeList) { for (SarFileSplitMenuEO forDocumentTree : treeList) {
if (name.substring(0, name.lastIndexOf(".")).equals(forDocumentTree.getName())) { if (name.substring(0, name.lastIndexOf(".")).equals(forDocumentTree.getName())) {
documentTreeEO.setPId(forDocumentTree.getId()); documentTreeEO.setPId(forDocumentTree.getId());
break; break;
} }
} }
}else { } else {
documentTreeEO.setPId(generalCatalogueId); documentTreeEO.setPId(generalCatalogueId);
} }
return documentTreeEO; return documentTreeEO;
} }
/** /**
* 通过传递过来的编号,得出下次可能出现的编号 * 通过传递过来的编号,得出下次可能出现的编号
*
* @param nowStart * @param nowStart
* @return * @return
*/ */
private List<String> getNewNowStart(String nowStart){ private List<String> getNewNowStart(String nowStart) {
List<String> nowStartList = new ArrayList<>(); List<String> nowStartList = new ArrayList<>();
List<String> nowResultStartList = new ArrayList<>(); List<String> nowResultStartList = new ArrayList<>();
String[] numberStr = nowStart.split("\\."); String[] numberStr = nowStart.split("\\.");
String startnumber = ""; String startnumber = "";
for(int i=0;i<numberStr.length;i++) { for (int i = 0; i < numberStr.length; i++) {
if (i==0) { if (i == 0) {
startnumber = ""; startnumber = "";
} else if (i==1) { } else if (i == 1) {
startnumber = numberStr[0]; startnumber = numberStr[0];
} else { } else {
startnumber = startnumber +"." +numberStr[i-1]; startnumber = startnumber + "." + numberStr[i - 1];
} }
Integer lastnumber = Integer.valueOf(numberStr[i])+1; Integer lastnumber = Integer.valueOf(numberStr[i]) + 1;
nowResultStartList.add((startnumber.equals("")?"":(startnumber+".")) + lastnumber); nowResultStartList.add((startnumber.equals("") ? "" : (startnumber + ".")) + lastnumber);
} }
nowResultStartList.add(nowStart+".1"); nowResultStartList.add(nowStart + ".1");
return nowResultStartList; 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(""); StringBuilder tabaleStringNew = new StringBuilder("");
//将表格转为html字符串 //将表格转为html字符串
ReadWordTable readWordTable = new ReadWordTable(); ReadWordTable readWordTable = new ReadWordTable();
@@ -525,25 +551,25 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
tabaleStringNew.append(tableStr); tabaleStringNew.append(tableStr);
message.getItemsCondi().add(table.getText()); message.getItemsCondi().add(table.getText());
message.setItermsConditions(message.getItermsConditions() + tabaleStringNew); 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 @Override
public List<SarFileSplitInfoEO> queryByPageOwn(SarFileSplitInfoEOPage page){ public List<SarFileSplitInfoEO> queryByPageOwn(SarFileSplitInfoEOPage page) {
int rowCount = sarFileSplitInfoEODao.queryByCountOwn(page); int rowCount = sarFileSplitInfoEODao.queryByCountOwn(page);
page.getPager().setRowCount(rowCount); page.getPager().setRowCount(rowCount);
List<SarFileSplitInfoEO> rows = sarFileSplitInfoEODao.queryByPageOwn(page); List<SarFileSplitInfoEO> rows = sarFileSplitInfoEODao.queryByPageOwn(page);
Map<String,String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
map.put("CA","草稿"); map.put("CA", "草稿");
map.put("ZQYJG","征求意见稿"); map.put("ZQYJG", "征求意见稿");
map.put("BPG","报批稿"); map.put("BPG", "报批稿");
map.put("SSG","送审稿"); map.put("SSG", "送审稿");
map.put("FBGBJBD","发布稿(必读)"); map.put("FBGBJBD", "发布稿(必读)");
if (rows != null && !rows.isEmpty()) { if (rows != null && !rows.isEmpty()) {
for (SarFileSplitInfoEO infoEO : rows) { 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){ // if (!infoEO.getSplitStatus().equals("0") && infoEO.getShowNumber() == null){
// SarLawsInfoEOPage sarLawsInfoEOPage = new SarLawsInfoEOPage(); // SarLawsInfoEOPage sarLawsInfoEOPage = new SarLawsInfoEOPage();
// sarLawsInfoEOPage.setId(infoEO.getStandId()); // sarLawsInfoEOPage.setId(infoEO.getStandId());
@@ -571,7 +597,7 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
} }
@Override @Override
public int deleteByIds(String ids){ public int deleteByIds(String ids) {
String[] infoIds = ids.split(","); String[] infoIds = ids.split(",");
// 删除info表数据 // 删除info表数据
SarFileSplitInfoEO sarFileSplitInfoEO = new SarFileSplitInfoEO(); SarFileSplitInfoEO sarFileSplitInfoEO = new SarFileSplitInfoEO();
@@ -471,6 +471,20 @@
</foreach> </foreach>
</insert> </insert>
<!-- 用来往标准分解单插入数据 -->
<insert id="insertStandSplitForeach" parameterType="java.util.List">
insert into SAR_STAND_ITEMS
(id, STAND_ID, items_num, items_name, TERMS_CONDITIONS,FILE_TYPE)
values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.id, jdbcType=VARCHAR}, #{item.standId, jdbcType=VARCHAR}, #{item.itemsNum, jdbcType=VARCHAR},
#{item.itemsName, jdbcType=VARCHAR}, #{item.termsConditions, jdbcType=CLOB},
#{item.fileType, jdbcType=VARCHAR}
)
</foreach>
</insert>
<delete id="deleteByIds" parameterType="com.adc.da.slrs.standardSplit.entity.SarFileSplitItemsEO"> <delete id="deleteByIds" parameterType="com.adc.da.slrs.standardSplit.entity.SarFileSplitItemsEO">
delete from SAR_FILE_SPLIT_ITEMS delete from SAR_FILE_SPLIT_ITEMS
where info_id in where info_id in