itemsValList,String p) {
+ message.getItemsCondi().add(p);
+ message.setItermsConditions(message.getItermsConditions() + ""+p+ "
");
+ // 判断message中是否引用到其他标准
+// String testString = p;
+// Pattern ptest = Pattern.compile("[A-Z]{1,}/{0,1}[A-Z]{1,}\\s{0,1}[0-9]\\d*\\.?\\d*");
+// Pattern ptest2 = Pattern.compile("[A-Z]{1,}/{0,1}[A-Z]{1,}\\s{0,1}[0-9]\\d*\\.?\\d*-[0-9]{1,4}");
+// Matcher matcher = ptest2.matcher(testString);
+// while (matcher.find()){
+// String standNumber = matcher.group();
+// if (StringUtils.isNotEmpty(message.getReferenceStand()) && message.getReferenceStand()!=""){
+// message.setReferenceStand(message.getReferenceStand() + ","+standNumber);
+// } else {
+// message.setReferenceStand(standNumber);
+// }
+// testString = testString.replaceAll(standNumber," ");
+// }
+// matcher = ptest.matcher(testString);
+// while (matcher.find()){
+// if (StringUtils.isNotEmpty(message.getReferenceStand()) && message.getReferenceStand()!=""){
+// message.setReferenceStand(message.getReferenceStand() + ","+matcher.group());
+// } else {
+// message.setReferenceStand(matcher.group());
+// }
+// }
+ itemsValList.add(getSplitItemsValObject(message.getId(),SplitFilePragraTypeEnum.TEXT.getValue(),p,message.getItemsCondi().size(),null));
+ }
+
+ public static void addItermsConditionsOfTable(SarFileSplitItemsEO message,List itemsValList,XWPFTable table) throws IOException {
+ StringBuilder tabaleStringNew = new StringBuilder("");
+ //将表格转为html字符串
+ ReadWordTable readWordTable = new ReadWordTable();
+ String tableStr = readWordTable.readTable(table);
+ tabaleStringNew.append(tableStr);
+ /*List rows = table.getRows();
+ List tableList = new ArrayList<>();
+ int rowNum = 1;
+ for (XWPFTableRow row : rows) {
+ List cells = row.getTableCells();
+ int colNum = 1;
+ for (XWPFTableCell cell : cells) {
+ CTTcPr tcpr = cell.getCTTc().getTcPr();
+ CTVMerge vMerge = tcpr.getVMerge();
+ CTDecimalNumber gridSpan = tcpr.getGridSpan();
+ if (gridSpan != null) {
+ String aa = gridSpan.getVal().toString();
+ }
+ // 简单获取内容(简单方式是不能获取字体对齐方式的)
+ SarFileSplitItemsTableEO sarFileSplitItemsTableEO = new SarFileSplitItemsTableEO();
+ sarFileSplitItemsTableEO.setRowNum(rowNum);
+ sarFileSplitItemsTableEO.setColNum(colNum);
+ sarFileSplitItemsTableEO.setContent(cell.getText());
+ tableList.add(sarFileSplitItemsTableEO);
+ // 一个单元格可以理解为一个word文档,单元格里也可以加段落与表格
+ *//* List paragraphs = cell.getParagraphs();
+ for (XWPFParagraph paragraph : paragraphs) {
+ getParagraphText(paragraph);
+ }*//*
+ colNum++;
+ }
+ rowNum++;
+ }*/
+ message.getItemsCondi().add(table.getText());
+ message.setItermsConditions(message.getItermsConditions() + tabaleStringNew);
+ itemsValList.add(getSplitItemsValObject(message.getId(),SplitFilePragraTypeEnum.TABLE.getValue(),tabaleStringNew.toString(),message.getItemsCondi().size(),null));
+
+ }
+
+ // 像每个条款中依次插入每一段的内容
+ private void addItermsConditionsImage(SarFileSplitItemsEO message,List itemsValList,XWPFParagraph p,List 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()){
+ file1.mkdirs();
+ }
+ String filepathandname = filePath + "/img/" + imageName;
+ try {
+ FileOutputStream fos = new FileOutputStream(filepathandname);
+ fos.write(bytev);
+ String path = "uploadPath/img/" + imageName;
+ String imgCon = "
";
+ message.getItemsCondi().add(imgCon);
+ message.setItermsConditions(message.getItermsConditions() + imgCon);
+ itemsValList.add(getSplitItemsValObject(message.getId(), SplitFilePragraTypeEnum.IMG.getValue(),imgCon,message.getItemsCondi().size(),null));
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ private static SarFileSplitItemsValEO getSplitItemsValObject (String itemId,String type,String itemContent,int disPlaySql,List tableList) {
+ SarFileSplitItemsValEO sarFileSplitItemsValEO = new SarFileSplitItemsValEO();
+ sarFileSplitItemsValEO.setId(UUIDUtils.randomUUID20());
+ sarFileSplitItemsValEO.setValidFlag(0);
+ sarFileSplitItemsValEO.setCreationTime(new Date());
+ //TODO 需要修改
+// sarFileSplitItemsValEO.setCreationUser(LoginUserUtil.getUserId());
+ sarFileSplitItemsValEO.setModifyTime(new Date());
+ //TODO 需要修改
+// sarFileSplitItemsValEO.setModifyUser(LoginUserUtil.getUserId());
+ sarFileSplitItemsValEO.setItemId(itemId);
+ sarFileSplitItemsValEO.setType(type);
+ sarFileSplitItemsValEO.setDisplaySeq(disPlaySql);
+ sarFileSplitItemsValEO.setItemContent(itemContent);
+ /*if (tableList != null && tableList.size() > 0) {
+ for (SarFileSplitItemsTableEO tableEO : tableList) {
+ tableEO.setId(UUIDUtils.randomUUID20());
+ tableEO.setItemsValId(sarFileSplitItemsValEO.getId());
+ tableEO.setItemsId(itemId);
+ tableEO.setValidFlag(0);
+ tableEO.setCreationTime(new Date());
+ tableEO.setModifyTime(new Date());
+ tableEO.setModifyUser("yxn");
+ }
+ }*/
+// sarFileSplitItemsValEO.setTableList(tableList);
+ return sarFileSplitItemsValEO;
+ }
+
+// public String addToStandItems(SarFileSplitInfoEO sarFileSplitInfoEO,SarStandardsInfoEO sarStandardsInfoEO ) throws Exception {
+// //查询拆分中所有条款信息
+// SarFileSplitItemsEOPage splitItemsEOPage = new SarFileSplitItemsEOPage();
+// splitItemsEOPage.setInfoId(sarFileSplitInfoEO.getId());
+// //
+// String fileType=sarFileSplitInfoEO.getFileType();
+// List getSplitItemsList = sarFileSplitItemsEODao.queryByList(splitItemsEOPage);
+// if (getSplitItemsList != null && !getSplitItemsList.isEmpty()) {
+// List addList = new ArrayList<>();
+// List updateList = new ArrayList<>();
+// //查询在标准条目表中数据
+// SarStandItemsEOPage itemPage = new SarStandItemsEOPage();
+// String standId = sarStandardsInfoEO.getId();
+// itemPage.setStandId(standId);
+// itemPage.setValidFlag("0");
+// List getItemsIds = sarStandItemsEODao.queryIdsByList(itemPage);
+// List idList = new ArrayList<>();
+// List itemValEOS = new ArrayList<>();
+// List delValItemIds = new ArrayList<>();
+// if (getItemsIds != null && !getItemsIds.isEmpty()) {
+// for (SarStandItemsEO standItemsEO : getItemsIds) {
+// idList.add(standItemsEO.getId());
+// }
+// }
+// List zrbmList= new ArrayList<>();
+// List svppsList= new ArrayList<>();
+// List foList= new ArrayList<>();
+// List xmpgjsList= new ArrayList<>();
+// String zrbm = SarStandAttrInfoEOService.selectFieldValByStandId("ZRBM", standId);
+// if(StringUtils.isNotBlank(zrbm)){
+// zrbmList = Arrays.asList(zrbm.split(","));
+// }
+//
+// String svpps = SarStandAttrInfoEOService.selectFieldValByStandId("SVPPS", standId);
+// if(StringUtils.isNotBlank(svpps)){
+// svppsList = Arrays.asList(svpps.split(","));
+// }
+// String fo = SarStandAttrInfoEOService.selectFieldValByStandId("FO", standId);
+// if(StringUtils.isNotBlank(fo)){
+// foList = Arrays.asList(fo.split(","));
+// }
+// String xmpgjs = SarStandAttrInfoEOService.selectFieldValByStandId("XMPGJS", standId);
+// if(StringUtils.isNotBlank(xmpgjs)){
+// xmpgjsList = Arrays.asList(xmpgjs.split(","));
+// }
+// List zrbmListNew = new ArrayList(zrbmList);
+// List svppsListNew = new ArrayList(svppsList);
+// List foListNew = new ArrayList(foList);
+// List xmpgjsListNew = new ArrayList(xmpgjsList);
+// for(SarFileSplitItemsEO splitItems : getSplitItemsList){
+// SarStandItemsEO newStandItem = new SarStandItemsEO();
+// newStandItem.setId(splitItems.getId());
+// newStandItem.setItemsNum(splitItems.getItemsNum());
+// newStandItem.setItemsName(splitItems.getItemsName());
+// newStandItem.setApplyArctic(splitItems.getApplyArctic());
+// newStandItem.setStandId(standId);
+// newStandItem.setTermsConditions(splitItems.getItermsConditions());
+// newStandItem.setParts(splitItems.getSvpps());
+// newStandItem.setCreationUser(UserUtils.getUserId());
+// newStandItem.setValidFlag(0);
+// if(null!=fileType){
+// newStandItem.setFileType(fileType);
+// }
+// newStandItem.setRemarks(splitItems.getRemarks());
+// newStandItem.setModifyTime(new Date());
+//
+// newStandItem.setResponsibleUnit(splitItems.getResponsibleUnit());
+// newStandItem.setFo(splitItems.getFo());
+// newStandItem.setDutyEngineer(splitItems.getDutyEngineer());
+// newStandItem.setSvpps(splitItems.getSvpps());
+// newStandItem.setClaimType(splitItems.getClaimType());
+// newStandItem.setBusStandCover(splitItems.getBusStandCover());
+//
+// String splitItemsId = splitItems.getId();
+// if (idList != null && !idList.isEmpty()) {
+// if (idList.contains(splitItemsId)) {
+// updateList.add(newStandItem);
+// } else {
+// newStandItem.setCreationTime(new Date());
+// addList.add(newStandItem);
+// }
+// } else {
+// newStandItem.setCreationTime(new Date());
+// addList.add(newStandItem);
+// }
+// //apply数据
+// if(StringUtils.isNotEmpty(splitItems.getApplyArctic())){
+// delValItemIds.add(splitItems.getId());
+// String[] applyarr = splitItems.getApplyArctic().trim().split(",");
+// for(String applya:applyarr){
+// SarStandItemValEO sarStandItemValEO = new SarStandItemValEO();
+// sarStandItemValEO.setValidFlag(ValueStateEnum.VALUE_TRUE.getValue());
+// sarStandItemValEO.setCreationTime(new Date());
+// sarStandItemValEO.setModifyTime(new Date());
+// sarStandItemValEO.setItemId(splitItems.getId());
+// sarStandItemValEO.setId(UUIDUtils.randomUUID20());
+// sarStandItemValEO.setPropertyType(PropertyTypeEnum.APPLY_ARCTIC.getValue());
+// sarStandItemValEO.setPropertyVal(applya);
+// itemValEOS.add(sarStandItemValEO);
+// }
+//
+// }
+// //更新自定义属性表属性
+// if(splitItems.getResponsibleUnit()!=null){
+// zrbmListNew.add(splitItems.getResponsibleUnit());
+// }
+// if(splitItems.getSvpps()!=null){
+// svppsListNew.add(splitItems.getSvpps());
+// }
+// if(splitItems.getFo()!=null){
+// foListNew.add(splitItems.getFo());
+// }
+// if(splitItems.getDutyEngineer()!=null){
+// xmpgjsListNew.add(splitItems.getDutyEngineer());
+// }
+// }
+// //逻辑处理去重拼接
+// Set zrbmSet = new HashSet(zrbmListNew);
+// Set svppsSet = new HashSet(svppsListNew);
+// Set foSet = new HashSet(foListNew);
+// Set xmpgjsSet = new HashSet(xmpgjsListNew);
+//
+// String zrbmStr = String.join(", ", zrbmSet);
+// String svppsStr = String.join(", ", svppsSet);
+// String foStr = String.join(", ", foSet);
+// String xmpgjsStr = String.join(", ", xmpgjsSet);
+// //更新自定义属性表
+// SarStandAttrInfoEOService.updateFiledVal("ZRBM",zrbmStr,standId);
+// SarStandAttrInfoEOService.updateFiledVal("SVPPS",svppsStr,standId);
+// SarStandAttrInfoEOService.updateFiledVal("FO",foStr,standId);
+// SarStandAttrInfoEOService.updateFiledVal("XMPGJS",xmpgjsStr,standId);
+//
+// //执行批量新增操作
+// if(addList != null && !addList.isEmpty()){
+// for (SarStandItemsEO item:addList) {
+// sarStandItemsEODao.insertSelective(item);
+// }
+// }
+// //执行批量修改操作
+// if(updateList != null && !updateList.isEmpty()){
+// for (SarStandItemsEO item:updateList) {
+// sarStandItemsEODao.updateByPrimaryKeySelective(item);
+// }
+// }
+// //执行适用车型批量操作
+// if(itemValEOS != null && !itemValEOS.isEmpty()){
+// sarStandItemValEODao.deleteByItemsIds(delValItemIds);
+// for (SarStandItemValEO sarStandItemValEO:itemValEOS) {
+// sarStandItemValEODao.insertSelective(sarStandItemValEO);
+// }
+// }
+// SarStandardsInfoEO sarStandardsInfoEO1 = sarStandardsInfoEOService.selectByPrimaryKey(standId);
+// createStandMQService.sendStandMQ(sarStandardsInfoEO1, "update");
+// } else {
+// return "关联失败,该条数据下没有拆分条款";
+// }
+// return "关联成功";
+// }
+
+// public String addToStandItems1(SarFileSplitInfoEO sarFileSplitInfoEO,SarLawsInfoEO sarLawsInfoEO ){
+// //查询拆分中所有条款信息
+// SarFileSplitItemsEOPage splitItemsEOPage = new SarFileSplitItemsEOPage();
+// splitItemsEOPage.setInfoId(sarFileSplitInfoEO.getId());
+// //
+// String fileType=sarFileSplitInfoEO.getFileType();
+// List getSplitItemsList = sarFileSplitItemsEODao.queryByList(splitItemsEOPage);
+// if (getSplitItemsList != null && !getSplitItemsList.isEmpty()) {
+// List addList = new ArrayList<>();
+// List updateList = new ArrayList<>();
+// //查询在标准条目表中数据
+// SarStandItemsEOPage itemPage = new SarStandItemsEOPage();
+// String standId = sarLawsInfoEO.getId();
+// itemPage.setStandId(standId);
+// itemPage.setValidFlag("0");
+// List getItemsIds = sarStandItemsEODao.queryIdsByList(itemPage);
+// List idList = new ArrayList<>();
+// List itemValEOS = new ArrayList<>();
+// List delValItemIds = new ArrayList<>();
+// if (getItemsIds != null && !getItemsIds.isEmpty()) {
+// for (SarStandItemsEO standItemsEO : getItemsIds) {
+// idList.add(standItemsEO.getId());
+// }
+// }
+// for(SarFileSplitItemsEO splitItems : getSplitItemsList){
+// SarStandItemsEO newStandItem = new SarStandItemsEO();
+// newStandItem.setId(splitItems.getId());
+// newStandItem.setItemsNum(splitItems.getItemsNum());
+// newStandItem.setItemsName(splitItems.getItemsName());
+// newStandItem.setApplyArctic(splitItems.getApplyArctic());
+// newStandItem.setStandId(standId);
+// newStandItem.setTermsConditions(splitItems.getItermsConditions());
+// newStandItem.setParts(splitItems.getSvpps());
+// newStandItem.setCreationUser(UserUtils.getUserId());
+// newStandItem.setValidFlag(0);
+// if(null!=fileType){
+// newStandItem.setFileType(fileType);
+// }
+// newStandItem.setRemarks(splitItems.getRemarks());
+// newStandItem.setModifyTime(new Date());
+//
+// newStandItem.setResponsibleUnit(splitItems.getResponsibleUnit());
+// newStandItem.setFo(splitItems.getFo());
+// newStandItem.setDutyEngineer(splitItems.getDutyEngineer());
+// newStandItem.setSvpps(splitItems.getSvpps());
+// newStandItem.setClaimType(splitItems.getClaimType());
+// newStandItem.setBusStandCover(splitItems.getBusStandCover());
+//
+// String splitItemsId = splitItems.getId();
+// if (idList != null && !idList.isEmpty()) {
+// if (idList.contains(splitItemsId)) {
+// updateList.add(newStandItem);
+// } else {
+// newStandItem.setCreationTime(new Date());
+// addList.add(newStandItem);
+// }
+// } else {
+// newStandItem.setCreationTime(new Date());
+// addList.add(newStandItem);
+// }
+// //apply数据
+// if(StringUtils.isNotEmpty(splitItems.getApplyArctic())){
+// delValItemIds.add(splitItems.getId());
+// String[] applyarr = splitItems.getApplyArctic().trim().split(",");
+// for(String applya:applyarr){
+// SarStandItemValEO sarStandItemValEO = new SarStandItemValEO();
+// sarStandItemValEO.setValidFlag(ValueStateEnum.VALUE_TRUE.getValue());
+// sarStandItemValEO.setCreationTime(new Date());
+// sarStandItemValEO.setModifyTime(new Date());
+// sarStandItemValEO.setItemId(splitItems.getId());
+// sarStandItemValEO.setId(UUIDUtils.randomUUID20());
+// sarStandItemValEO.setPropertyType(PropertyTypeEnum.APPLY_ARCTIC.getValue());
+// sarStandItemValEO.setPropertyVal(applya);
+// itemValEOS.add(sarStandItemValEO);
+// }
+//
+// }
+// }
+// //执行批量新增操作
+// if(addList != null && !addList.isEmpty()){
+// for (SarStandItemsEO item:addList) {
+// sarStandItemsEODao.insertSelective(item);
+// }
+// }
+// //执行批量修改操作
+// if(updateList != null && !updateList.isEmpty()){
+// for (SarStandItemsEO item:updateList) {
+// sarStandItemsEODao.updateByPrimaryKeySelective(item);
+// }
+// }
+// //执行适用车型批量操作
+// if(itemValEOS != null && !itemValEOS.isEmpty()){
+// sarStandItemValEODao.deleteByItemsIds(delValItemIds);
+// for (SarStandItemValEO sarStandItemValEO:itemValEOS) {
+// sarStandItemValEODao.insertSelective(sarStandItemValEO);
+// }
+// }
+// } else {
+// return "关联失败,该条数据下没有拆分条款";
+// }
+// return "关联成功";
+// }
+
+// public String getClauseBySplitId(String standNum, String fileType){
+// SarFileSplitInfoEOPage sarFileSplitInfoEOPage = new SarFileSplitInfoEOPage();
+// sarFileSplitInfoEOPage.setNumOrName(standNum);
+// sarFileSplitInfoEOPage.setFileType(fileType);
+// sarFileSplitInfoEOPage.setSplitStatus("2");
+// List rows = dao.queryByPageOwn(sarFileSplitInfoEOPage);
+// return rows.get(0).getId();
+// }
+
+// public PersonMsgEO updateNew(PersonMsgEO val) throws Exception {
+// PersonMsgEO personMsgEO = personMsgEOService.selectByPrimaryKey(val.getId());
+// personMsgEO.setMsgResult(val.getMsgResult());
+// personMsgEOService.updateByPrimaryKeySelective(personMsgEO);
+// if (personMsgEO.getMsgType().equals("SPLIT")){
+// PersonMsgEOPage page = new PersonMsgEOPage();
+// page.setMsgType("SPLIT");
+// page.setBusiId(personMsgEO.getBusiId());
+// page.setMsgTitle(personMsgEO.getMsgTitle());
+// List list = personMsgEOService.queryByList(page);
+// for (PersonMsgEO item:list) {
+// item.setMsgResult(personMsgEO.getMsgResult());
+// personMsgEOService.updateByPrimaryKeySelective(item);
+// }
+// SarFileSplitInfoEO sarFileSplitInfoEO = new SarFileSplitInfoEO();
+// sarFileSplitInfoEO.setId(personMsgEO.getBusiId());
+// if (personMsgEO.getMsgResult().equals("0")){
+// sarFileSplitInfoEO.setSplitStatus("2");
+// }else {
+// sarFileSplitInfoEO.setSplitStatus("0");
+// }
+// sarFileSplitInfoEO.setModifyTime(new Date());
+// this.updateByPrimaryKeySelective(sarFileSplitInfoEO);
+// if (list.size() > 0 && list.get(0).getSenderId() != null){
+// PersonMsgEO personMsgEO1 = new PersonMsgEO();
+// personMsgEO1.setUserIds(list.get(0).getSenderId());
+// personMsgEO1.setMsgTitle(list.get(0).getMsgTitle().replace("确认","")+"审核结果");
+// personMsgEO1.setMsgContent(list.get(0).getMsgTitle().replace("确认","") + (personMsgEO.getMsgResult().equals("0")?"已审核通过":"未审核通过"));
+// personMsgEO1.setMsgType("TEXT");
+// personMsgEOService.saveNew(personMsgEO1);
+// List emailList = new ArrayList<>();
+// UserEO userEO = userEOService.selectByPrimaryKey(list.get(0).getSenderId());
+// if(userEO!=null){
+// emailList.add(userEO.getEmail());
+// String[] array=emailList.toArray(new String[0]);
+// mailUtil.sendMsg(array,personMsgEO1.getMsgContent());
+// }
+//
+// }
+// SarFileSplitInfoEOPage sarFileSplitInfoEOPage = new SarFileSplitInfoEOPage();
+// sarFileSplitInfoEOPage.setId(personMsgEO.getBusiId());
+// sarFileSplitInfoEOPage.setSplitStatus("2");
+// List list1 =this.queryByPageOwn(sarFileSplitInfoEOPage);
+// for (SarFileSplitInfoEO data:list1) {
+// //根据标准号查询标准是否存在
+// String standNum="";
+// if (StringUtils.isNotEmpty(data.getStandId())) {
+// standNum=data.getShowNumber();
+// } else if(StringUtils.isNotEmpty(data.getStandNumSplit())){
+// standNum=data.getStandNumSplit();
+// }
+// List getList = sarStandardsInfoEOService.selectStandardsByStandnumber(standNum,null);
+// SarStandardsInfoEO result = new SarStandardsInfoEO();
+// if(getList != null && getList.size()>0){
+// result = getList.get(0);
+// SarStandItemsEOPage itemPage = new SarStandItemsEOPage();
+// String standId = data.getStandId();
+// itemPage.setStandId(standId);
+// itemPage.setValidFlag("0");
+// itemPage.setFileType(data.getFileType());
+// List getItemsIds = sarStandItemsEODao.queryIdsByList(itemPage);
+// if (getItemsIds.size()>0){
+// this.addToStandItems(data,result);
+// }
+// }
+// }
+// }
+// return personMsgEO;
+// }
+}
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java
index b5e23e1a1..facb788b5 100644
--- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java
@@ -11,7 +11,6 @@ import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServi
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.split.entity.SarFileSplitInfoEO;
-import com.jero.modules.split.entity.SarFileSplitMenuEO;
import com.jero.modules.split.mapper.SarFileSplitInfoMapper;
import com.jero.modules.split.mapper.SarFileSplitMenuEOMapper;
import com.jero.modules.split.service.ISarFileSplitInfoService;
@@ -47,6 +46,9 @@ public class SarFileSplitInfoServiceImpl extends ServiceImpl messageList) {
+ return dao.insertForeach(messageList);
+ }
}
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitItemsValEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitItemsValEOServiceImpl.java
index 8ee781622..601da46c6 100644
--- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitItemsValEOServiceImpl.java
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitItemsValEOServiceImpl.java
@@ -137,4 +137,10 @@ public class SarFileSplitItemsValEOServiceImpl extends ServiceImpl itemValList) {
+
+ return dao.insertForeach(itemValList);
+ }
+
}
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/util/ReadWordTable.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/util/ReadWordTable.java
new file mode 100644
index 000000000..5fef79bec
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/util/ReadWordTable.java
@@ -0,0 +1,234 @@
+package com.jero.modules.split.util;
+
+import org.apache.poi.xwpf.usermodel.XWPFTable;
+import org.apache.poi.xwpf.usermodel.XWPFTableCell;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTDecimalNumber;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr;
+
+import java.io.IOException;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author: yangxuenan
+ * date: 2020/2/25 16:58
+ */
+public class ReadWordTable {
+
+
+ /**
+ * 保存生成HTML时需要被忽略的单元格
+ */
+ private List omitCellsList = new ArrayList<>();
+
+ /**
+ * 生成忽略的单元格列表中的格式
+ *
+ * @param row
+ * @param col
+ * @return
+ */
+ public String generateOmitCellStr(int row, int col) {
+ return row + ":" + col;
+ }
+
+ /**
+ * 获取当前单元格的colspan(列合并)的列数
+ *
+ * @param tcPr 单元格属性
+ * @return
+ */
+ public int getColspan(CTTcPr tcPr) {
+ // 判断是否存在列合并
+ CTDecimalNumber gridSpan = null;
+ if ((gridSpan = tcPr.getGridSpan()) != null) { // 合并的起始列
+ // 获取合并的列数
+ BigInteger num = gridSpan.getVal();
+ return num.intValue();
+ } else { // 其他被合并的列或正常列
+ return 1;
+ }
+ }
+
+ /**
+ * 获取当前单元格的rowspan(行合并)的行数
+ *
+ * @param table 表格
+ * @param row 行值
+ * @param col 列值
+ * @return
+ */
+ public int getRowspan(XWPFTable table, int row, int col) {
+
+ XWPFTableCell cell = table.getRow(row).getCell(col);
+ // 正常独立单元格
+ if (!isContinueRow(cell) && !isRestartRow(cell)) {
+ return 1;
+ }
+ // 当前单元格的宽度
+ int cellWidth = getCellWidth(table, row, col);
+ // 当前单元格距离左侧边框的距离
+ int leftWidth = getLeftWidth(table, row, col);
+
+ // 用户保存当前单元格行合并的单元格数-1(因为不包含自身)
+ List list = new ArrayList<>();
+ getRowspan(table, row, cellWidth, leftWidth, list);
+
+ return list.size() + 1;
+ }
+
+ private void getRowspan(XWPFTable table, int row, int cellWidth, int leftWidth,
+ List list) {
+ // 已达到最后一行
+ if (row + 1 >= table.getNumberOfRows()) {
+ return;
+ }
+ row = row + 1;
+ int colsNum = table.getRow(row).getTableCells().size();
+ // 因为列合并单元格可能导致行合并的单元格并不在同一列,所以从头遍历列,通过属性、宽度以及距离左边框间距来判断是否是行合并
+ for (int i = 0; i < colsNum; i++) {
+ XWPFTableCell testTable = table.getRow(row).getCell(i);
+ // 是否为合并单元格的中间行(包括结尾行)
+ if (isContinueRow(testTable)) {
+ // 是被上一行单元格合并的单元格
+ if (getCellWidth(table, row, i) == cellWidth
+ && getLeftWidth(table, row, i) == leftWidth) {
+ list.add(true);
+ // 被合并的单元格在生成html时需要忽略
+ addOmitCell(row, i);
+ // 去下一行继续查找
+ getRowspan(table, row, cellWidth, leftWidth, list);
+ break;
+ }
+ }
+ }
+ }
+
+ /**
+ * 判断是否是合并行的起始行单元格
+ *
+ * @param tableCell
+ * @return
+ */
+ public boolean isRestartRow(XWPFTableCell tableCell) {
+ CTTcPr tcPr = tableCell.getCTTc().getTcPr();
+ if (tcPr.getVMerge() == null) {
+ return false;
+ }
+ if (tcPr.getVMerge().getVal() == null) {
+ return false;
+ }
+ if (tcPr.getVMerge().getVal().toString().equalsIgnoreCase("restart")) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * 判断是否是合并行的中间行单元格(包括结尾的最后一行的单元格)
+ *
+ * @param tableCell
+ * @return
+ */
+ public boolean isContinueRow(XWPFTableCell tableCell) {
+ CTTcPr tcPr = tableCell.getCTTc().getTcPr();
+ if (tcPr.getVMerge() == null) {
+ return false;
+ }
+ if (tcPr.getVMerge().getVal() == null) {
+ return true;
+ }
+ return false;
+ }
+
+ public int getLeftWidth(XWPFTable table, int row, int col) {
+ int leftWidth = 0;
+ for (int i = 0; i < col; i++) {
+ leftWidth += getCellWidth(table, row, i);
+ }
+ return leftWidth;
+ }
+
+ public int getCellWidth(XWPFTable table, int row, int col) {
+ BigInteger width = table.getRow(row).getCell(col).getCTTc().getTcPr().getTcW().getW();
+ return width.intValue();
+ }
+
+ /**
+ * 添加忽略的单元格(被行合并的单元格,生成HTML时需要忽略)
+ *
+ * @param row
+ * @param col
+ */
+ public void addOmitCell(int row, int col) {
+ String omitCellStr = generateOmitCellStr(row, col);
+ omitCellsList.add(omitCellStr);
+ }
+
+ public boolean isOmitCell(int row, int col) {
+ String cellStr = generateOmitCellStr(row, col);
+ return omitCellsList.contains(cellStr);
+ }
+
+ public String readTable(XWPFTable table) throws IOException {
+ // 表格行数
+ int tableRowsSize = table.getRows().size();
+ StringBuilder tableToHtmlStr = new StringBuilder("");
+
+ for (int i = 0; i < tableRowsSize; i++) {
+ tableToHtmlStr.append("");
+ int tableCellsSize = table.getRow(i).getTableCells().size();
+ for (int j = 0; j < tableCellsSize; j++) {
+ if (isOmitCell(i, j)) {
+ continue;
+ }
+ XWPFTableCell tableCell = table.getRow(i).getCell(j);
+ // 获取单元格的属性
+ CTTcPr tcPr = tableCell.getCTTc().getTcPr();
+ int colspan = getColspan(tcPr);
+ if (colspan > 1) { // 合并的列
+ tableToHtmlStr.append("| 1) { // 合并的行
+ tableToHtmlStr.append(" rowspan='" + rowspan + "'>");
+ } else {
+ tableToHtmlStr.append(">");
+ }
+ String text = tableCell.getText();
+ tableToHtmlStr.append(text + " | ");
+
+ }
+ tableToHtmlStr.append("
");
+ }
+ tableToHtmlStr.append("
");
+
+ clearTableInfo();
+
+ return tableToHtmlStr.toString();
+ }
+
+ public void clearTableInfo() {
+ // System.out.println(omitCellsList);
+ omitCellsList.clear();
+ }
+
+// public static void main(String[] args) {
+// ReadWordTable readWordTable = new com.adc.da.lawss.common.ReadWordTable();
+//
+// try (FileInputStream fileInputStream = new FileInputStream("E:\\下载\\table1.docx");
+// XWPFDocument document = new XWPFDocument(fileInputStream);) {
+// List tables = document.getTables();
+// for (XWPFTable table : tables) {
+// System.out.println(readWordTable.readTable(table));
+// }
+// } catch (IOException e) {
+// e.printStackTrace();
+// }
+// }
+}
diff --git a/jero-boot/jreo-boot-split/src/main/java/com/jero/modules/entity/SarFileSplitItemsEO.java b/jero-boot/jreo-boot-split/src/main/java/com/jero/modules/entity/SarFileSplitItemsEO.java
index 6ee8b8d8d..2ac2d7d0b 100644
--- a/jero-boot/jreo-boot-split/src/main/java/com/jero/modules/entity/SarFileSplitItemsEO.java
+++ b/jero-boot/jreo-boot-split/src/main/java/com/jero/modules/entity/SarFileSplitItemsEO.java
@@ -1,522 +1,522 @@
-package com.jero.modules.entity;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * 功能:SAR_FILE_SPLIT_ITEMS SarFileSplitItemsEOEntity
- * 作者:code generator
- * 日期: 2020-01-03
- * 版权所有:版权归北京卡达克数据技术中心所有。
- */
-public class SarFileSplitItemsEO {
-
- private String id;
- private String infoId;
- private String itemsNum;
- private String itemsName;
- private String itermsConditions;
- @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
- private Date newcarPutTime;
- @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
- private Date productPutTime;
- private String menuId;
- private String svpps;
- private String applyArctic;
- private String referenceStand;
- private String specialRequest;
- private String relevanceFile;
- private String remarks;
- private Integer validFlag;
- private String creationUser;
- @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
- private Date creationTime;
- @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
- private Date modifyTime;
- private String modifyUser;
- private String[] infoIdList;
- private String[] idList;
-// private List itemValEOList;
- // 前台删除的VAL表条目内容ID
- private String delItemIds;
- private String sMenuId;
- //特殊参数要求
-// private List paramsList;
- private String relevanceFileAttid;
-
- //新加字段 SVPPS在前边已经存在
- private String fo;//FO
- private String dutyEngineer;//责任工程师
- private String claimType;//要求类型
- private String busStandCover;//企标覆盖关系
- private String fileType;//文件类型
-
- //新加字段带show
- private String foShow;//FO
- private String dutyEngineerShow;//责任工程师
- private String svppsShow;//SVPPS
- private String claimTypeShow;//要求类型
- private String busStandCoverShow;//企标覆盖关系
- private String fileTypeShow;//文件类型
-
- private String responsibleUnit;//责任部门
- private String responsibleUnitShow;
- /**
- * java字段名转换为原始数据库列名。如果不存在则返回null
- * 字段列表:
- * id -> id
- * infoId -> info_id
- * itemsNum -> items_num
- * itemsName -> items_name
- * itermsConditions -> iterms_conditions
- * newcarPutTime -> newcar_put_time
- * productPutTime -> product_put_time
- * menuId -> menu_id
- * svpps -> svpps
- * applyArctic -> apply_arctic
- * referenceStand -> reference_stand
- * specialRequest -> special_request
- * relevanceFile -> relevance_file
- * remarks -> remarks
- * validFlag -> valid_flag
- * creationUser -> creation_user
- * creationTime -> creation_time
- * modifyTime -> modify_time
- * modifyUser -> modify_user
- */
- public static String fieldToColumn(String fieldName) {
- if (fieldName == null) return null;
- switch (fieldName) {
- case "id": return "id";
- case "infoId": return "info_id";
- case "itemsNum": return "items_num";
- case "itemsName": return "items_name";
- case "itermsConditions": return "iterms_conditions";
- case "newcarPutTime": return "newcar_put_time";
- case "productPutTime": return "product_put_time";
- case "menuId": return "menu_id";
- case "svpps": return "svpps";
- case "applyArctic": return "apply_arctic";
- case "referenceStand": return "reference_stand";
- case "specialRequest": return "special_request";
- case "relevanceFile": return "relevance_file";
- case "remarks": return "remarks";
- case "validFlag": return "valid_flag";
- case "creationUser": return "creation_user";
- case "creationTime": return "creation_time";
- case "modifyTime": return "modify_time";
- case "modifyUser": return "modify_user";
- default: return null;
- }
- }
-
- /**
- * 原始数据库列名转换为java字段名。如果不存在则返回null
- * 字段列表:
- * id -> id
- * info_id -> infoId
- * items_num -> itemsNum
- * items_name -> itemsName
- * iterms_conditions -> itermsConditions
- * newcar_put_time -> newcarPutTime
- * product_put_time -> productPutTime
- * menu_id -> menuId
- * svpps -> svpps
- * apply_arctic -> applyArctic
- * reference_stand -> referenceStand
- * special_request -> specialRequest
- * relevance_file -> relevanceFile
- * remarks -> remarks
- * valid_flag -> validFlag
- * creation_user -> creationUser
- * creation_time -> creationTime
- * modify_time -> modifyTime
- * modify_user -> modifyUser
- */
- public static String columnToField(String columnName) {
- if (columnName == null) return null;
- switch (columnName) {
- case "id": return "id";
- case "info_id": return "infoId";
- case "items_num": return "itemsNum";
- case "items_name": return "itemsName";
- case "iterms_conditions": return "itermsConditions";
- case "newcar_put_time": return "newcarPutTime";
- case "product_put_time": return "productPutTime";
- case "menu_id": return "menuId";
- case "svpps": return "svpps";
- case "apply_arctic": return "applyArctic";
- case "reference_stand": return "referenceStand";
- case "special_request": return "specialRequest";
- case "relevance_file": return "relevanceFile";
- case "remarks": return "remarks";
- case "valid_flag": return "validFlag";
- case "creation_user": return "creationUser";
- case "creation_time": return "creationTime";
- case "modify_time": return "modifyTime";
- case "modify_user": return "modifyUser";
- default: return null;
- }
- }
-
- /** **/
- public String getId() {
- return this.id;
- }
-
- /** **/
- public void setId(String id) {
- this.id = id;
- }
-
- /** **/
- public String getInfoId() {
- return this.infoId;
- }
-
- /** **/
- public void setInfoId(String infoId) {
- this.infoId = infoId;
- }
-
- /** **/
- public String getItemsNum() {
- return this.itemsNum;
- }
-
- /** **/
- public void setItemsNum(String itemsNum) {
- this.itemsNum = itemsNum;
- }
-
- /** **/
- public String getItemsName() {
- return this.itemsName;
- }
-
- /** **/
- public void setItemsName(String itemsName) {
- this.itemsName = itemsName;
- }
-
- public String getItermsConditions() {
- return itermsConditions;
- }
-
- public void setItermsConditions(String itermsConditions) {
- this.itermsConditions = itermsConditions;
- }
-
- /** **/
- public Date getNewcarPutTime() {
- return this.newcarPutTime;
- }
-
- /** **/
- public void setNewcarPutTime(Date newcarPutTime) {
- this.newcarPutTime = newcarPutTime;
- }
-
- /** **/
- public Date getProductPutTime() {
- return this.productPutTime;
- }
-
- /** **/
- public void setProductPutTime(Date productPutTime) {
- this.productPutTime = productPutTime;
- }
-
- /** **/
- public String getMenuId() {
- return this.menuId;
- }
-
- /** **/
- public void setMenuId(String menuId) {
- this.menuId = menuId;
- }
-
- /** **/
- public String getSvpps() {
- return this.svpps;
- }
-
- /** **/
- public void setSvpps(String svpps) {
- this.svpps = svpps;
- }
-
- /** **/
- public String getApplyArctic() {
- return this.applyArctic;
- }
-
- /** **/
- public void setApplyArctic(String applyArctic) {
- this.applyArctic = applyArctic;
- }
-
- /** **/
- public String getReferenceStand() {
- return this.referenceStand;
- }
-
- /** **/
- public void setReferenceStand(String referenceStand) {
- this.referenceStand = referenceStand;
- }
-
- /** **/
- public String getSpecialRequest() {
- return this.specialRequest;
- }
-
- /** **/
- public void setSpecialRequest(String specialRequest) {
- this.specialRequest = specialRequest;
- }
-
- /** **/
- public String getRelevanceFile() {
- return this.relevanceFile;
- }
-
- /** **/
- public void setRelevanceFile(String relevanceFile) {
- this.relevanceFile = relevanceFile;
- }
-
- /** **/
- public String getRemarks() {
- return this.remarks;
- }
-
- /** **/
- public void setRemarks(String remarks) {
- this.remarks = remarks;
- }
-
- /** **/
- public Integer getValidFlag() {
- return this.validFlag;
- }
-
- /** **/
- public void setValidFlag(Integer validFlag) {
- this.validFlag = validFlag;
- }
-
- /** **/
- public String getCreationUser() {
- return this.creationUser;
- }
-
- /** **/
- public void setCreationUser(String creationUser) {
- this.creationUser = creationUser;
- }
-
- /** **/
- public Date getCreationTime() {
- return this.creationTime;
- }
-
- /** **/
- public void setCreationTime(Date creationTime) {
- this.creationTime = creationTime;
- }
-
- /** **/
- public Date getModifyTime() {
- return this.modifyTime;
- }
-
- /** **/
- public void setModifyTime(Date modifyTime) {
- this.modifyTime = modifyTime;
- }
-
- /** **/
- public String getModifyUser() {
- return this.modifyUser;
- }
-
- /** **/
- public void setModifyUser(String modifyUser) {
- this.modifyUser = modifyUser;
- }
-
-
- List itemsCondi;
-
- public List getItemsCondi() {
- return itemsCondi;
- }
-
- public void setItemsCondi(List itemsCondi) {
- this.itemsCondi = itemsCondi;
- }
-
- public String[] getInfoIdList() {
- return infoIdList;
- }
-
- public void setInfoIdList(String[] infoIdList) {
- this.infoIdList = infoIdList;
- }
-
- public String[] getIdList() {
- return idList;
- }
-
- public void setIdList(String[] idList) {
- this.idList = idList;
- }
-
-// public List getItemValEOList() {
-// return itemValEOList;
+//package com.jero.modules.entity;
+//
+//import com.fasterxml.jackson.annotation.JsonFormat;
+//
+//import java.util.Date;
+//import java.util.List;
+//
+///**
+// * 功能:SAR_FILE_SPLIT_ITEMS SarFileSplitItemsEOEntity
+// * 作者:code generator
+// * 日期: 2020-01-03
+// * 版权所有:版权归北京卡达克数据技术中心所有。
+// */
+//public class SarFileSplitItemsEO {
+//
+// private String id;
+// private String infoId;
+// private String itemsNum;
+// private String itemsName;
+// private String itermsConditions;
+// @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+// private Date newcarPutTime;
+// @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+// private Date productPutTime;
+// private String menuId;
+// private String svpps;
+// private String applyArctic;
+// private String referenceStand;
+// private String specialRequest;
+// private String relevanceFile;
+// private String remarks;
+// private Integer validFlag;
+// private String creationUser;
+// @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+// private Date creationTime;
+// @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+// private Date modifyTime;
+// private String modifyUser;
+// private String[] infoIdList;
+// private String[] idList;
+//// private List itemValEOList;
+// // 前台删除的VAL表条目内容ID
+// private String delItemIds;
+// private String sMenuId;
+// //特殊参数要求
+//// private List paramsList;
+// private String relevanceFileAttid;
+//
+// //新加字段 SVPPS在前边已经存在
+// private String fo;//FO
+// private String dutyEngineer;//责任工程师
+// private String claimType;//要求类型
+// private String busStandCover;//企标覆盖关系
+// private String fileType;//文件类型
+//
+// //新加字段带show
+// private String foShow;//FO
+// private String dutyEngineerShow;//责任工程师
+// private String svppsShow;//SVPPS
+// private String claimTypeShow;//要求类型
+// private String busStandCoverShow;//企标覆盖关系
+// private String fileTypeShow;//文件类型
+//
+// private String responsibleUnit;//责任部门
+// private String responsibleUnitShow;
+// /**
+// * java字段名转换为原始数据库列名。如果不存在则返回null
+// * 字段列表:
+// * id -> id
+// * infoId -> info_id
+// * itemsNum -> items_num
+// * itemsName -> items_name
+// * itermsConditions -> iterms_conditions
+// * newcarPutTime -> newcar_put_time
+// * productPutTime -> product_put_time
+// * menuId -> menu_id
+// * svpps -> svpps
+// * applyArctic -> apply_arctic
+// * referenceStand -> reference_stand
+// * specialRequest -> special_request
+// * relevanceFile -> relevance_file
+// * remarks -> remarks
+// * validFlag -> valid_flag
+// * creationUser -> creation_user
+// * creationTime -> creation_time
+// * modifyTime -> modify_time
+// * modifyUser -> modify_user
+// */
+// public static String fieldToColumn(String fieldName) {
+// if (fieldName == null) return null;
+// switch (fieldName) {
+// case "id": return "id";
+// case "infoId": return "info_id";
+// case "itemsNum": return "items_num";
+// case "itemsName": return "items_name";
+// case "itermsConditions": return "iterms_conditions";
+// case "newcarPutTime": return "newcar_put_time";
+// case "productPutTime": return "product_put_time";
+// case "menuId": return "menu_id";
+// case "svpps": return "svpps";
+// case "applyArctic": return "apply_arctic";
+// case "referenceStand": return "reference_stand";
+// case "specialRequest": return "special_request";
+// case "relevanceFile": return "relevance_file";
+// case "remarks": return "remarks";
+// case "validFlag": return "valid_flag";
+// case "creationUser": return "creation_user";
+// case "creationTime": return "creation_time";
+// case "modifyTime": return "modify_time";
+// case "modifyUser": return "modify_user";
+// default: return null;
+// }
// }
//
-// public void setItemValEOList(List itemValEOList) {
-// this.itemValEOList = itemValEOList;
-// }
-
- public String getDelItemIds() {
- return delItemIds;
- }
-
- public void setDelItemIds(String delItemIds) {
- this.delItemIds = delItemIds;
- }
-
- public String getsMenuId() {
- return sMenuId;
- }
-
- public void setsMenuId(String sMenuId) {
- this.sMenuId = sMenuId;
- }
-
-// public List getParamsList() {
-// return paramsList;
+// /**
+// * 原始数据库列名转换为java字段名。如果不存在则返回null
+// * 字段列表:
+// * id -> id
+// * info_id -> infoId
+// * items_num -> itemsNum
+// * items_name -> itemsName
+// * iterms_conditions -> itermsConditions
+// * newcar_put_time -> newcarPutTime
+// * product_put_time -> productPutTime
+// * menu_id -> menuId
+// * svpps -> svpps
+// * apply_arctic -> applyArctic
+// * reference_stand -> referenceStand
+// * special_request -> specialRequest
+// * relevance_file -> relevanceFile
+// * remarks -> remarks
+// * valid_flag -> validFlag
+// * creation_user -> creationUser
+// * creation_time -> creationTime
+// * modify_time -> modifyTime
+// * modify_user -> modifyUser
+// */
+// public static String columnToField(String columnName) {
+// if (columnName == null) return null;
+// switch (columnName) {
+// case "id": return "id";
+// case "info_id": return "infoId";
+// case "items_num": return "itemsNum";
+// case "items_name": return "itemsName";
+// case "iterms_conditions": return "itermsConditions";
+// case "newcar_put_time": return "newcarPutTime";
+// case "product_put_time": return "productPutTime";
+// case "menu_id": return "menuId";
+// case "svpps": return "svpps";
+// case "apply_arctic": return "applyArctic";
+// case "reference_stand": return "referenceStand";
+// case "special_request": return "specialRequest";
+// case "relevance_file": return "relevanceFile";
+// case "remarks": return "remarks";
+// case "valid_flag": return "validFlag";
+// case "creation_user": return "creationUser";
+// case "creation_time": return "creationTime";
+// case "modify_time": return "modifyTime";
+// case "modify_user": return "modifyUser";
+// default: return null;
+// }
// }
//
-// public void setParamsList(List paramsList) {
-// this.paramsList = paramsList;
+// /** **/
+// public String getId() {
+// return this.id;
// }
-
- public String getRelevanceFileAttid() {
- return relevanceFileAttid;
- }
-
- public void setRelevanceFileAttid(String relevanceFileAttid) {
- this.relevanceFileAttid = relevanceFileAttid;
- }
-
- public String getFo() {
- return fo;
- }
-
- public void setFo(String fo) {
- this.fo = fo;
- }
-
- public String getDutyEngineer() {
- return dutyEngineer;
- }
-
- public void setDutyEngineer(String dutyEngineer) {
- this.dutyEngineer = dutyEngineer;
- }
-
- public String getClaimType() {
- return claimType;
- }
-
- public void setClaimType(String claimType) {
- this.claimType = claimType;
- }
-
- public String getBusStandCover() {
- return busStandCover;
- }
-
- public void setBusStandCover(String busStandCover) {
- this.busStandCover = busStandCover;
- }
-
- public String getFileType() {
- return fileType;
- }
-
- public void setFileType(String fileType) {
- this.fileType = fileType;
- }
-
- public String getFoShow() {
- return foShow;
- }
-
- public void setFoShow(String foShow) {
- this.foShow = foShow;
- }
-
- public String getDutyEngineerShow() {
- return dutyEngineerShow;
- }
-
- public void setDutyEngineerShow(String dutyEngineerShow) {
- this.dutyEngineerShow = dutyEngineerShow;
- }
-
- public String getSvppsShow() {
- return svppsShow;
- }
-
- public void setSvppsShow(String svppsShow) {
- this.svppsShow = svppsShow;
- }
-
- public String getClaimTypeShow() {
- return claimTypeShow;
- }
-
- public void setClaimTypeShow(String claimTypeShow) {
- this.claimTypeShow = claimTypeShow;
- }
-
- public String getBusStandCoverShow() {
- return busStandCoverShow;
- }
-
- public void setBusStandCoverShow(String busStandCoverShow) {
- this.busStandCoverShow = busStandCoverShow;
- }
-
- public String getFileTypeShow() {
- return fileTypeShow;
- }
-
- public void setFileTypeShow(String fileTypeShow) {
- this.fileTypeShow = fileTypeShow;
- }
-
- public String getResponsibleUnit() {
- return responsibleUnit;
- }
-
- public void setResponsibleUnit(String responsibleUnit) {
- this.responsibleUnit = responsibleUnit;
- }
-
- public String getResponsibleUnitShow() {
- return responsibleUnitShow;
- }
-
- public void setResponsibleUnitShow(String responsibleUnitShow) {
- this.responsibleUnitShow = responsibleUnitShow;
- }
-}
+//
+// /** **/
+// public void setId(String id) {
+// this.id = id;
+// }
+//
+// /** **/
+// public String getInfoId() {
+// return this.infoId;
+// }
+//
+// /** **/
+// public void setInfoId(String infoId) {
+// this.infoId = infoId;
+// }
+//
+// /** **/
+// public String getItemsNum() {
+// return this.itemsNum;
+// }
+//
+// /** **/
+// public void setItemsNum(String itemsNum) {
+// this.itemsNum = itemsNum;
+// }
+//
+// /** **/
+// public String getItemsName() {
+// return this.itemsName;
+// }
+//
+// /** **/
+// public void setItemsName(String itemsName) {
+// this.itemsName = itemsName;
+// }
+//
+// public String getItermsConditions() {
+// return itermsConditions;
+// }
+//
+// public void setItermsConditions(String itermsConditions) {
+// this.itermsConditions = itermsConditions;
+// }
+//
+// /** **/
+// public Date getNewcarPutTime() {
+// return this.newcarPutTime;
+// }
+//
+// /** **/
+// public void setNewcarPutTime(Date newcarPutTime) {
+// this.newcarPutTime = newcarPutTime;
+// }
+//
+// /** **/
+// public Date getProductPutTime() {
+// return this.productPutTime;
+// }
+//
+// /** **/
+// public void setProductPutTime(Date productPutTime) {
+// this.productPutTime = productPutTime;
+// }
+//
+// /** **/
+// public String getMenuId() {
+// return this.menuId;
+// }
+//
+// /** **/
+// public void setMenuId(String menuId) {
+// this.menuId = menuId;
+// }
+//
+// /** **/
+// public String getSvpps() {
+// return this.svpps;
+// }
+//
+// /** **/
+// public void setSvpps(String svpps) {
+// this.svpps = svpps;
+// }
+//
+// /** **/
+// public String getApplyArctic() {
+// return this.applyArctic;
+// }
+//
+// /** **/
+// public void setApplyArctic(String applyArctic) {
+// this.applyArctic = applyArctic;
+// }
+//
+// /** **/
+// public String getReferenceStand() {
+// return this.referenceStand;
+// }
+//
+// /** **/
+// public void setReferenceStand(String referenceStand) {
+// this.referenceStand = referenceStand;
+// }
+//
+// /** **/
+// public String getSpecialRequest() {
+// return this.specialRequest;
+// }
+//
+// /** **/
+// public void setSpecialRequest(String specialRequest) {
+// this.specialRequest = specialRequest;
+// }
+//
+// /** **/
+// public String getRelevanceFile() {
+// return this.relevanceFile;
+// }
+//
+// /** **/
+// public void setRelevanceFile(String relevanceFile) {
+// this.relevanceFile = relevanceFile;
+// }
+//
+// /** **/
+// public String getRemarks() {
+// return this.remarks;
+// }
+//
+// /** **/
+// public void setRemarks(String remarks) {
+// this.remarks = remarks;
+// }
+//
+// /** **/
+// public Integer getValidFlag() {
+// return this.validFlag;
+// }
+//
+// /** **/
+// public void setValidFlag(Integer validFlag) {
+// this.validFlag = validFlag;
+// }
+//
+// /** **/
+// public String getCreationUser() {
+// return this.creationUser;
+// }
+//
+// /** **/
+// public void setCreationUser(String creationUser) {
+// this.creationUser = creationUser;
+// }
+//
+// /** **/
+// public Date getCreationTime() {
+// return this.creationTime;
+// }
+//
+// /** **/
+// public void setCreationTime(Date creationTime) {
+// this.creationTime = creationTime;
+// }
+//
+// /** **/
+// public Date getModifyTime() {
+// return this.modifyTime;
+// }
+//
+// /** **/
+// public void setModifyTime(Date modifyTime) {
+// this.modifyTime = modifyTime;
+// }
+//
+// /** **/
+// public String getModifyUser() {
+// return this.modifyUser;
+// }
+//
+// /** **/
+// public void setModifyUser(String modifyUser) {
+// this.modifyUser = modifyUser;
+// }
+//
+//
+// List itemsCondi;
+//
+// public List getItemsCondi() {
+// return itemsCondi;
+// }
+//
+// public void setItemsCondi(List itemsCondi) {
+// this.itemsCondi = itemsCondi;
+// }
+//
+// public String[] getInfoIdList() {
+// return infoIdList;
+// }
+//
+// public void setInfoIdList(String[] infoIdList) {
+// this.infoIdList = infoIdList;
+// }
+//
+// public String[] getIdList() {
+// return idList;
+// }
+//
+// public void setIdList(String[] idList) {
+// this.idList = idList;
+// }
+//
+//// public List getItemValEOList() {
+//// return itemValEOList;
+//// }
+////
+//// public void setItemValEOList(List itemValEOList) {
+//// this.itemValEOList = itemValEOList;
+//// }
+//
+// public String getDelItemIds() {
+// return delItemIds;
+// }
+//
+// public void setDelItemIds(String delItemIds) {
+// this.delItemIds = delItemIds;
+// }
+//
+// public String getsMenuId() {
+// return sMenuId;
+// }
+//
+// public void setsMenuId(String sMenuId) {
+// this.sMenuId = sMenuId;
+// }
+//
+//// public List getParamsList() {
+//// return paramsList;
+//// }
+////
+//// public void setParamsList(List paramsList) {
+//// this.paramsList = paramsList;
+//// }
+//
+// public String getRelevanceFileAttid() {
+// return relevanceFileAttid;
+// }
+//
+// public void setRelevanceFileAttid(String relevanceFileAttid) {
+// this.relevanceFileAttid = relevanceFileAttid;
+// }
+//
+// public String getFo() {
+// return fo;
+// }
+//
+// public void setFo(String fo) {
+// this.fo = fo;
+// }
+//
+// public String getDutyEngineer() {
+// return dutyEngineer;
+// }
+//
+// public void setDutyEngineer(String dutyEngineer) {
+// this.dutyEngineer = dutyEngineer;
+// }
+//
+// public String getClaimType() {
+// return claimType;
+// }
+//
+// public void setClaimType(String claimType) {
+// this.claimType = claimType;
+// }
+//
+// public String getBusStandCover() {
+// return busStandCover;
+// }
+//
+// public void setBusStandCover(String busStandCover) {
+// this.busStandCover = busStandCover;
+// }
+//
+// public String getFileType() {
+// return fileType;
+// }
+//
+// public void setFileType(String fileType) {
+// this.fileType = fileType;
+// }
+//
+// public String getFoShow() {
+// return foShow;
+// }
+//
+// public void setFoShow(String foShow) {
+// this.foShow = foShow;
+// }
+//
+// public String getDutyEngineerShow() {
+// return dutyEngineerShow;
+// }
+//
+// public void setDutyEngineerShow(String dutyEngineerShow) {
+// this.dutyEngineerShow = dutyEngineerShow;
+// }
+//
+// public String getSvppsShow() {
+// return svppsShow;
+// }
+//
+// public void setSvppsShow(String svppsShow) {
+// this.svppsShow = svppsShow;
+// }
+//
+// public String getClaimTypeShow() {
+// return claimTypeShow;
+// }
+//
+// public void setClaimTypeShow(String claimTypeShow) {
+// this.claimTypeShow = claimTypeShow;
+// }
+//
+// public String getBusStandCoverShow() {
+// return busStandCoverShow;
+// }
+//
+// public void setBusStandCoverShow(String busStandCoverShow) {
+// this.busStandCoverShow = busStandCoverShow;
+// }
+//
+// public String getFileTypeShow() {
+// return fileTypeShow;
+// }
+//
+// public void setFileTypeShow(String fileTypeShow) {
+// this.fileTypeShow = fileTypeShow;
+// }
+//
+// public String getResponsibleUnit() {
+// return responsibleUnit;
+// }
+//
+// public void setResponsibleUnit(String responsibleUnit) {
+// this.responsibleUnit = responsibleUnit;
+// }
+//
+// public String getResponsibleUnitShow() {
+// return responsibleUnitShow;
+// }
+//
+// public void setResponsibleUnitShow(String responsibleUnitShow) {
+// this.responsibleUnitShow = responsibleUnitShow;
+// }
+//}
diff --git a/jero-boot/jreo-boot-split/src/main/java/com/jero/modules/utils/ReadWordTable.java b/jero-boot/jreo-boot-split/src/main/java/com/jero/modules/utils/ReadWordTable.java
new file mode 100644
index 000000000..3428397fe
--- /dev/null
+++ b/jero-boot/jreo-boot-split/src/main/java/com/jero/modules/utils/ReadWordTable.java
@@ -0,0 +1,234 @@
+package com.jero.modules.utils;
+
+import org.apache.poi.xwpf.usermodel.XWPFTable;
+import org.apache.poi.xwpf.usermodel.XWPFTableCell;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTDecimalNumber;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr;
+
+import java.io.IOException;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author: yangxuenan
+ * date: 2020/2/25 16:58
+ */
+public class ReadWordTable {
+
+
+ /**
+ * 保存生成HTML时需要被忽略的单元格
+ */
+ private List omitCellsList = new ArrayList<>();
+
+ /**
+ * 生成忽略的单元格列表中的格式
+ *
+ * @param row
+ * @param col
+ * @return
+ */
+ public String generateOmitCellStr(int row, int col) {
+ return row + ":" + col;
+ }
+
+ /**
+ * 获取当前单元格的colspan(列合并)的列数
+ *
+ * @param tcPr 单元格属性
+ * @return
+ */
+ public int getColspan(CTTcPr tcPr) {
+ // 判断是否存在列合并
+ CTDecimalNumber gridSpan = null;
+ if ((gridSpan = tcPr.getGridSpan()) != null) { // 合并的起始列
+ // 获取合并的列数
+ BigInteger num = gridSpan.getVal();
+ return num.intValue();
+ } else { // 其他被合并的列或正常列
+ return 1;
+ }
+ }
+
+ /**
+ * 获取当前单元格的rowspan(行合并)的行数
+ *
+ * @param table 表格
+ * @param row 行值
+ * @param col 列值
+ * @return
+ */
+ public int getRowspan(XWPFTable table, int row, int col) {
+
+ XWPFTableCell cell = table.getRow(row).getCell(col);
+ // 正常独立单元格
+ if (!isContinueRow(cell) && !isRestartRow(cell)) {
+ return 1;
+ }
+ // 当前单元格的宽度
+ int cellWidth = getCellWidth(table, row, col);
+ // 当前单元格距离左侧边框的距离
+ int leftWidth = getLeftWidth(table, row, col);
+
+ // 用户保存当前单元格行合并的单元格数-1(因为不包含自身)
+ List list = new ArrayList<>();
+ getRowspan(table, row, cellWidth, leftWidth, list);
+
+ return list.size() + 1;
+ }
+
+ private void getRowspan(XWPFTable table, int row, int cellWidth, int leftWidth,
+ List list) {
+ // 已达到最后一行
+ if (row + 1 >= table.getNumberOfRows()) {
+ return;
+ }
+ row = row + 1;
+ int colsNum = table.getRow(row).getTableCells().size();
+ // 因为列合并单元格可能导致行合并的单元格并不在同一列,所以从头遍历列,通过属性、宽度以及距离左边框间距来判断是否是行合并
+ for (int i = 0; i < colsNum; i++) {
+ XWPFTableCell testTable = table.getRow(row).getCell(i);
+ // 是否为合并单元格的中间行(包括结尾行)
+ if (isContinueRow(testTable)) {
+ // 是被上一行单元格合并的单元格
+ if (getCellWidth(table, row, i) == cellWidth
+ && getLeftWidth(table, row, i) == leftWidth) {
+ list.add(true);
+ // 被合并的单元格在生成html时需要忽略
+ addOmitCell(row, i);
+ // 去下一行继续查找
+ getRowspan(table, row, cellWidth, leftWidth, list);
+ break;
+ }
+ }
+ }
+ }
+
+ /**
+ * 判断是否是合并行的起始行单元格
+ *
+ * @param tableCell
+ * @return
+ */
+ public boolean isRestartRow(XWPFTableCell tableCell) {
+ CTTcPr tcPr = tableCell.getCTTc().getTcPr();
+ if (tcPr.getVMerge() == null) {
+ return false;
+ }
+ if (tcPr.getVMerge().getVal() == null) {
+ return false;
+ }
+ if (tcPr.getVMerge().getVal().toString().equalsIgnoreCase("restart")) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * 判断是否是合并行的中间行单元格(包括结尾的最后一行的单元格)
+ *
+ * @param tableCell
+ * @return
+ */
+ public boolean isContinueRow(XWPFTableCell tableCell) {
+ CTTcPr tcPr = tableCell.getCTTc().getTcPr();
+ if (tcPr.getVMerge() == null) {
+ return false;
+ }
+ if (tcPr.getVMerge().getVal() == null) {
+ return true;
+ }
+ return false;
+ }
+
+ public int getLeftWidth(XWPFTable table, int row, int col) {
+ int leftWidth = 0;
+ for (int i = 0; i < col; i++) {
+ leftWidth += getCellWidth(table, row, i);
+ }
+ return leftWidth;
+ }
+
+ public int getCellWidth(XWPFTable table, int row, int col) {
+ BigInteger width = table.getRow(row).getCell(col).getCTTc().getTcPr().getTcW().getW();
+ return width.intValue();
+ }
+
+ /**
+ * 添加忽略的单元格(被行合并的单元格,生成HTML时需要忽略)
+ *
+ * @param row
+ * @param col
+ */
+ public void addOmitCell(int row, int col) {
+ String omitCellStr = generateOmitCellStr(row, col);
+ omitCellsList.add(omitCellStr);
+ }
+
+ public boolean isOmitCell(int row, int col) {
+ String cellStr = generateOmitCellStr(row, col);
+ return omitCellsList.contains(cellStr);
+ }
+
+ public String readTable(XWPFTable table) throws IOException {
+ // 表格行数
+ int tableRowsSize = table.getRows().size();
+ StringBuilder tableToHtmlStr = new StringBuilder("");
+
+ for (int i = 0; i < tableRowsSize; i++) {
+ tableToHtmlStr.append("");
+ int tableCellsSize = table.getRow(i).getTableCells().size();
+ for (int j = 0; j < tableCellsSize; j++) {
+ if (isOmitCell(i, j)) {
+ continue;
+ }
+ XWPFTableCell tableCell = table.getRow(i).getCell(j);
+ // 获取单元格的属性
+ CTTcPr tcPr = tableCell.getCTTc().getTcPr();
+ int colspan = getColspan(tcPr);
+ if (colspan > 1) { // 合并的列
+ tableToHtmlStr.append("| 1) { // 合并的行
+ tableToHtmlStr.append(" rowspan='" + rowspan + "'>");
+ } else {
+ tableToHtmlStr.append(">");
+ }
+ String text = tableCell.getText();
+ tableToHtmlStr.append(text + " | ");
+
+ }
+ tableToHtmlStr.append("
");
+ }
+ tableToHtmlStr.append("
");
+
+ clearTableInfo();
+
+ return tableToHtmlStr.toString();
+ }
+
+ public void clearTableInfo() {
+ // System.out.println(omitCellsList);
+ omitCellsList.clear();
+ }
+
+// public static void main(String[] args) {
+// ReadWordTable readWordTable = new com.adc.da.lawss.common.ReadWordTable();
+//
+// try (FileInputStream fileInputStream = new FileInputStream("E:\\下载\\table1.docx");
+// XWPFDocument document = new XWPFDocument(fileInputStream);) {
+// List tables = document.getTables();
+// for (XWPFTable table : tables) {
+// System.out.println(readWordTable.readTable(table));
+// }
+// } catch (IOException e) {
+// e.printStackTrace();
+// }
+// }
+}