From 561c2bfd2a3fc4dfdee1d8b5482aaf7a6413349b Mon Sep 17 00:00:00 2001 From: wangchengjun <616865598@qq.com> Date: Mon, 14 Mar 2022 09:28:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=86=E5=88=86=E5=8A=9F=E8=83=BD=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SarFileSplitInfoController.java | 170 +++ .../split/entity/SarFileSplitInfo.java | 91 ++ .../split/mapper/SarFileSplitInfoMapper.java | 17 + .../mapper/xml/SarFileSplitInfoMapper.xml | 18 + .../service/ISarFileSplitInfoService.java | 61 + .../impl/SarFileSplitInfoServiceImpl.java | 89 ++ jero-boot/jreo-boot-split/pom.xml | 63 + .../modules/entity/SarFileSplitItemsEO.java | 522 +++++++ .../com/jero/modules/service/FileSpilt.java | 1266 +++++++++++++++++ .../com/jero/modules/utils/FileSpilt.java | 1174 +++++++++++++++ jero-boot/pom.xml | 1 + 11 files changed, 3472 insertions(+) create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitInfoController.java create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/entity/SarFileSplitInfo.java create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitInfoMapper.java create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/mapper/xml/SarFileSplitInfoMapper.xml create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitInfoService.java create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java create mode 100644 jero-boot/jreo-boot-split/pom.xml create mode 100644 jero-boot/jreo-boot-split/src/main/java/com/jero/modules/entity/SarFileSplitItemsEO.java create mode 100644 jero-boot/jreo-boot-split/src/main/java/com/jero/modules/service/FileSpilt.java create mode 100644 jero-boot/jreo-boot-split/src/main/java/com/jero/modules/utils/FileSpilt.java diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitInfoController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitInfoController.java new file mode 100644 index 000000000..a4bd057b8 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitInfoController.java @@ -0,0 +1,170 @@ +package com.jero.modules.split.controller; + +import java.util.Arrays; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import com.jero.common.api.vo.Result; +import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.split.entity.SarFileSplitInfo; +import com.jero.modules.split.service.ISarFileSplitInfoService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; +import com.jero.common.system.base.controller.JeroController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.jero.common.aspect.annotation.AutoLog; + + + /** + * @Description: 文档拆分表 + * @Author: wcj + * @Date: 2022-03-03 + * @Version: V1.0 + */ +@Api(tags="文档拆分表") +@RestController +@RequestMapping("/split/sarFileSplitInfo") +@Slf4j +public class SarFileSplitInfoController extends JeroController { + @Autowired + private ISarFileSplitInfoService sarFileSplitInfoService; + + /** + * 分页列表查询 + * + * @param sarFileSplitInfo + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "文档拆分表-分页列表查询") + @ApiOperation(value="文档拆分表-分页列表查询", notes="文档拆分表-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(SarFileSplitInfo sarFileSplitInfo, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(sarFileSplitInfo, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = sarFileSplitInfoService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 列表查询 + * + * @return + */ + @AutoLog(value = "文档拆分表-列表查询") + @ApiOperation(value="文档拆分表-列表查询", notes="文档拆分表-列表查询") + @GetMapping(value = "/list") + public Result> queryList() { + List list = sarFileSplitInfoService.queryList(); + return Result.OK(list); + } + + /** + * 添加 + * + * @param sarFileSplitInfo + * @return + */ + @AutoLog(value = "文档拆分表-添加") + @ApiOperation(value="文档拆分表-添加", notes="文档拆分表-添加") + @PostMapping(value = "/add") + public Result add(@Validated @RequestBody SarFileSplitInfo sarFileSplitInfo) { + sarFileSplitInfoService.add(sarFileSplitInfo); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param sarFileSplitInfo + * @return + */ + @AutoLog(value = "文档拆分表-编辑") + @ApiOperation(value="文档拆分表-编辑", notes="文档拆分表-编辑") + @PutMapping(value = "/edit") + public Result edit(@Validated @RequestBody SarFileSplitInfo sarFileSplitInfo) { + sarFileSplitInfoService.editById(sarFileSplitInfo); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "文档拆分表-通过id删除") + @ApiOperation(value="文档拆分表-通过id删除", notes="文档拆分表-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + sarFileSplitInfoService.deleteById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "文档拆分表-批量删除") + @ApiOperation(value="文档拆分表-批量删除", notes="文档拆分表-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.sarFileSplitInfoService.deleteByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @AutoLog(value = "文档拆分表-通过id查询") + @ApiOperation(value="文档拆分表-通过id查询", notes="文档拆分表-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + SarFileSplitInfo sarFileSplitInfo = sarFileSplitInfoService.queryById(id); + if(sarFileSplitInfo==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(sarFileSplitInfo); + } + + /** + * 导出excel + * + * @param request + * @param sarFileSplitInfo + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, SarFileSplitInfo sarFileSplitInfo) { + return super.exportXls(request, sarFileSplitInfo, SarFileSplitInfo.class, "文档拆分表"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, SarFileSplitInfo.class); + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/entity/SarFileSplitInfo.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/entity/SarFileSplitInfo.java new file mode 100644 index 000000000..fcc74bce4 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/entity/SarFileSplitInfo.java @@ -0,0 +1,91 @@ +package com.jero.modules.split.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + + +/** + * @Description: 文档拆分表 + * @Author: wcj + * @Date: 2022-03-03 + * @Version: V1.0 + */ +@Data +@TableName("sar_file_split_info") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="sar_file_split_info对象", description="文档拆分表") +public class SarFileSplitInfo implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private String id; + + /**创建人*/ + @ApiModelProperty(value = "创建人") + private String createBy; + + /**拆分时间*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "拆分时间") + private java.util.Date createTime; + + /**更新人*/ + @ApiModelProperty(value = "更新人") + private String updateBy; + + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private String sysOrgCode; + + /**编号*/ + @Excel(name = "编号", width = 15) + @ApiModelProperty(value = "编号") + private String serialNumber; + + /**标题*/ + @Excel(name = "标题", width = 15) + @ApiModelProperty(value = "标题") + private String title; + + /**文本状态*/ + @Excel(name = "文本状态", width = 15) + @ApiModelProperty(value = "文本状态") + private String fileType; + + /**文件名称*/ + @Excel(name = "文件名称", width = 15) + @ApiModelProperty(value = "文件名称") + private String fileName; + + /**拆分结果*/ + @Excel(name = "拆分结果", width = 15) + @ApiModelProperty(value = "拆分结果") + private String splitResult; + + /**文件id*/ + @Excel(name = "文件id", width = 15) + @ApiModelProperty(value = "文件id") + private String fileId; + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitInfoMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitInfoMapper.java new file mode 100644 index 000000000..bdd3c022a --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitInfoMapper.java @@ -0,0 +1,17 @@ +package com.jero.modules.split.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import com.jero.modules.split.entity.SarFileSplitInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 文档拆分表 + * @Author: wcj + * @Date: 2022-03-03 + * @Version: V1.0 + */ +public interface SarFileSplitInfoMapper extends BaseMapper { + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/mapper/xml/SarFileSplitInfoMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/mapper/xml/SarFileSplitInfoMapper.xml new file mode 100644 index 000000000..97210b387 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/mapper/xml/SarFileSplitInfoMapper.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitInfoService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitInfoService.java new file mode 100644 index 000000000..f975bacc8 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitInfoService.java @@ -0,0 +1,61 @@ +package com.jero.modules.split.service; + +import com.jero.modules.split.entity.SarFileSplitInfo; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * @Description: 文档拆分表 + * @Author: wcj + * @Date: 2022-03-03 + * @Version: V1.0 + */ +public interface ISarFileSplitInfoService extends IService { + + /** + * 保存 + * + * @param sarFileSplitInfo + * @return + */ + void add(SarFileSplitInfo sarFileSplitInfo); + + /** + * 更新 + * + * @param sarFileSplitInfo + * @return + */ + void editById(SarFileSplitInfo sarFileSplitInfo); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + SarFileSplitInfo queryById(String id); + + /** + * 列表查询 + * + * @return + */ + List queryList(); +} 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 new file mode 100644 index 000000000..f6359ec54 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java @@ -0,0 +1,89 @@ +package com.jero.modules.split.service.impl; + +import com.jero.modules.split.entity.SarFileSplitInfo; +import com.jero.modules.split.mapper.SarFileSplitInfoMapper; +import com.jero.modules.split.service.ISarFileSplitInfoService; +import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Date; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 文档拆分表 + * @Author: wcj + * @Date: 2022-03-03 + * @Version: V1.0 + */ +@Service +public class SarFileSplitInfoServiceImpl extends ServiceImpl implements ISarFileSplitInfoService { + + /** + * 保存 + * + * @param sarFileSplitInfo + * @return + */ + @Override + public void add(SarFileSplitInfo sarFileSplitInfo) { + Date now = new Date(); + sarFileSplitInfo.setCreateTime(now); + sarFileSplitInfo.setUpdateTime(now); + save(sarFileSplitInfo); + } + + /** + * 更新 + * + * @param sarFileSplitInfo + * @return + */ + @Override + public void editById(SarFileSplitInfo sarFileSplitInfo) { + Date now = new Date(); + sarFileSplitInfo.setUpdateTime(now); + saveOrUpdate(sarFileSplitInfo); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override + public void deleteById(String id) { + removeById(id); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override + public void deleteByIds(List ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public SarFileSplitInfo queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + * + * @return + */ + @Override + public List queryList() { + return list(); + } +} diff --git a/jero-boot/jreo-boot-split/pom.xml b/jero-boot/jreo-boot-split/pom.xml new file mode 100644 index 000000000..acf76818f --- /dev/null +++ b/jero-boot/jreo-boot-split/pom.xml @@ -0,0 +1,63 @@ + + + + jero-boot + com.jero.boot + 2.4.2 + + 4.0.0 + + jreo-boot-split + + 4.1.2 + 2.4.2 + + + + + + org.apache.poi + poi + ${poi.version} + + + org.apache.poi + poi-ooxml + ${poi.version} + + + org.apache.poi + poi-ooxml-schemas + ${poi.version} + + + xerces + xercesImpl + + + + + com.jero.boot + jero-boot-module-system + ${jero.version} + + + com.jero.boot + jero-boot-module-demo + ${jero.version} + + + com.jero.boot + jero-boot-base-generater + ${jero.version} + + + com.jero.boot + jero-boot-modules + ${jero.version} + + + + \ No newline at end of file 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 new file mode 100644 index 000000000..6ee8b8d8d --- /dev/null +++ b/jero-boot/jreo-boot-split/src/main/java/com/jero/modules/entity/SarFileSplitItemsEO.java @@ -0,0 +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; +// } +// +// 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/service/FileSpilt.java b/jero-boot/jreo-boot-split/src/main/java/com/jero/modules/service/FileSpilt.java new file mode 100644 index 000000000..c1dfbfa82 --- /dev/null +++ b/jero-boot/jreo-boot-split/src/main/java/com/jero/modules/service/FileSpilt.java @@ -0,0 +1,1266 @@ +//package com.jero.modules.service; +// +//import com.jero.modules.ocr.util.UUIDUtils; +//import com.jero.modules.split.entity.SarFileSplitItemsTableEO; +//import com.jero.modules.split.entity.SarFileSplitItemsValEO; +//import com.jero.modules.split.entity.SarFileSplitMenuEO; +//import com.jero.modules.split.enums.ValueStateEnum; +//import com.jero.modules.split.page.SarFileSplitInfoEOPage; +//import com.jero.modules.split.page.SarFileSplitItemsEOPage; +//import com.jero.modules.system.util.UserUtils; +//import org.apache.commons.collections4.CollectionUtils; +//import org.apache.commons.lang.StringUtils; +//import org.apache.commons.lang3.ObjectUtils; +//import org.apache.poi.xwpf.usermodel.*; +//import org.apache.xmlbeans.XmlCursor; +//import org.apache.xmlbeans.XmlObject; +//import org.openxmlformats.schemas.drawingml.x2006.main.CTGraphicalObject; +//import org.openxmlformats.schemas.drawingml.x2006.picture.CTPicture; +//import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTAnchor; +//import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline; +//import org.openxmlformats.schemas.wordprocessingml.x2006.main.*; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.stereotype.Service; +//import org.springframework.transaction.annotation.Propagation; +//import org.springframework.transaction.annotation.Transactional; +// +//import java.io.*; +//import java.util.*; +//import java.util.regex.Matcher; +//import java.util.regex.Pattern; +// +// +///** +// * +// *
    +// * 功能:SAR_FILE_SPLIT_INFO SarFileSplitInfoEOService
    +// * 作者:code generator
    +// * 日期: 2020-01-03
    +// * 版权所有:版权归北京卡达克数据技术中心所有。
    +// */ +//@Service("sarFileSplitInfoEOService") +//@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class) +//public class FileSpilt extends BaseService { +// +// private static final Logger logger = LoggerFactory.getLogger(SarFileSplitInfoEOService.class); +// +// @Autowired +// private SarFileSplitInfoEODao dao; +// +// @Autowired +// private SarFileSplitMenuEODao sarFileSplitMenuEODao; +// +// @Autowired +// private SarFileSplitItemsEODao sarFileSplitItemsEODao; +// +// @Autowired +// private SarFileSplitItemsValEODao sarFileSplitItemsValEODao; +// +// @Autowired +// private SarFileSplitItemsTableEODao sarFileSplitItemsTableEODao; +// +// @Autowired +// private SarFileSplitItemsParamsEODao sarFileSplitItemsParamsEODao; +// +// @Autowired +// private SarStandItemsEODao sarStandItemsEODao; +// +// @Autowired +// private SarStandItemValEODao sarStandItemValEODao; +// +// @Autowired +// private SarStandAttrDetailsEODao sarStandAttrDetailsEODao; +// +// @Autowired +// private AttFileEOService attFileEOService; +// +// @Autowired +// private PersonCollectEODao personCollectEODao; +// +// @Autowired +// private PersonShareEODao personShareEODao; +// +// @Autowired +// private PersonCollectEOService personCollectEOService; +// +//// @Autowired +//// private SarLawsInfoEOService sarLawsInfoEOService; +// +// @Autowired +// private PersonMsgEOService personMsgEOService; +// +// @Autowired +// private UserEOService userEOService; +// +// @Autowired +// private SarStandardsInfoEOService sarStandardsInfoEOService; +// +// @Autowired +// private SarStandAttrInfoEOService SarStandAttrInfoEOService; +// +// @Autowired +// private CreateStandMQService createStandMQService; +// +// @Autowired +// private EmailUtils mailUtil; +// +// @Value("${file.path}") +// private String filePath; +// +// public SarFileSplitInfoEODao getDao() { +// return dao; +// } +////中国 +// public int fileCHN(SarFileSplitInfoEO sarFileSplitInfoEO) { +// // 拆分文件主表中插入数据 +// sarFileSplitInfoEO.setId(UUIDUtils.randomUUID20()); +// sarFileSplitInfoEO.setValidFlag(0); +// sarFileSplitInfoEO.setCreationTime(new Date()); +// sarFileSplitInfoEO.setCreationUser(LoginUserUtil.getUserId()); +// sarFileSplitInfoEO.setModifyTime(new Date()); +// sarFileSplitInfoEO.setModifyUser(LoginUserUtil.getUserId()); +// dao.insertSelective(sarFileSplitInfoEO); +// +// // 拆分文件条款表中最终插入数据 +// List messageList = new ArrayList<>(); +// int messageNumber = 0; +// // 拆分文件目录表中最终插入数据 +// List treeList = new ArrayList<>(); +// // 拆分文件条款详情表中最终插入数据 +// List itemValList = new ArrayList<>(); +// Long treeListDisplay = 1L; +// +// String generalCatalogueId = UUIDUtils.randomUUID20(); +// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"总目录","",sarFileSplitInfoEO.getId(),treeListDisplay++,""); +// treeList.add(documentTreeEO); +// +// List nowStart = new ArrayList<>(); +// if (sarFileSplitInfoEO.getStartNumber()<4){ +// nowStart.add("4"); +// } else { +// nowStart.add(String.valueOf(sarFileSplitInfoEO.getStartNumber())); +// } +// try { +// AttFileEO attFileEO = attFileEOService.getFileInfo(sarFileSplitInfoEO.getAttId()); +// String readFilePath = filePath + "/" + attFileEO.getFilePath() + attFileEO.getFileName(); +// +// InputStream is = new FileInputStream(readFilePath); //需要将文件路更改为word文档所在路径。 +// XWPFDocument doc = new XWPFDocument(is); +// +// Pattern ptest = Pattern.compile("^1范围"); +// Matcher matcher; +// +// // 记录拆分后的每一段文字 +// List elements = doc.getBodyElements(); +// // 记录word自动生成的编号数据 +// Map numberMap = new HashMap(); +// boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据 +// for (IBodyElement element : elements) { +// // 段落 +// if (element instanceof XWPFParagraph) { +// XWPFParagraph p = (XWPFParagraph)element; +// +// // 处理段落生成编号不识别问题 +// String paragraphString = p.getText(); +// if (StringUtils.isNotBlank(paragraphString)) { +// paragraphString = paragraphString.replace((char) 12288, ' '); +// paragraphString = paragraphString.trim(); +// } +// if (StringUtils.isNotEmpty(p.getNumLevelText())&& p.getNumLevelText().indexOf(".")>0) { +// 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))){ +// numberMap.put(numberParent,numbernow+1); +// paragraphString = numberParent + "." + String.valueOf(numbernow+1)+ p.getText(); +// } else { +// numberMap.put(numberParent,numbernow); +// paragraphString = numberParent + "." + String.valueOf(numbernow)+ p.getText(); +// } +// } else { +// numberMap.put(numberParent,1); +// paragraphString = numberParent+".1"+ p.getText(); +// } +// } +// if (messageNumber == 0) { +// ptest= Pattern.compile("^1\\s{0,3}范围"); +// matcher=ptest.matcher(paragraphString); +// while(matcher.find()){ +// List clauseContent = new ArrayList<>(); +// SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),"1","范围",clauseContent); +// SarFileSplitMenuEO documentTreeEO1 = new SarFileSplitMenuEO(UUIDUtils.randomUUID20(),message.getItemsNum(),generalCatalogueId,sarFileSplitInfoEO.getId(),treeListDisplay++,"范围"); +// message.setMenuId(documentTreeEO1.getId()); +// if(sarFileSplitInfoEO.getStartNumber()<=1 && sarFileSplitInfoEO.getStopNumber()>=1){ +// messageList.add(message); +// treeList.add(documentTreeEO1); +// menuCanAdd = true; +// } else { +// menuCanAdd = false; +// } +// messageNumber++; +// } +// } else if (messageNumber == 1){ +// ptest= Pattern.compile("^2\\s{0,3}规范性引用文件"); +// matcher=ptest.matcher(paragraphString); +// if(matcher.find()){ +// List clauseContent = new ArrayList<>(); +// SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),"2","规范性引用文件",clauseContent); +// SarFileSplitMenuEO documentTreeEO1 = new SarFileSplitMenuEO(UUIDUtils.randomUUID20(),message.getItemsNum(),generalCatalogueId,sarFileSplitInfoEO.getId(),treeListDisplay++,"规范性引用文件"); +// message.setMenuId(documentTreeEO1.getId()); +// if(sarFileSplitInfoEO.getStartNumber()<=2 && sarFileSplitInfoEO.getStopNumber()>=2){ +// messageList.add(message); +// treeList.add(documentTreeEO1); +// menuCanAdd = true; +// } else { +// menuCanAdd = false; +// } +// messageNumber++; +// } else if(menuCanAdd){ +// List imageBundleList = readImageInParagraph((XWPFParagraph)p); +// if(CollectionUtils.isNotEmpty(imageBundleList)) { +// addItermsConditionsImage(messageList.get(messageList.size()-1),itemValList, p,imageBundleList); +// } else { +// addItermsConditionsText(messageList.get(messageList.size()-1),itemValList, p.getText()); +// } +// } +// } else if (messageNumber == 2){ +// ptest= Pattern.compile("^3\\s{0,3}术语(和|与)定义"); +// matcher=ptest.matcher(paragraphString); +// if(matcher.find()){ +// List clauseContent = new ArrayList<>(); +// SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),"3","术语与定义",clauseContent); +// SarFileSplitMenuEO documentTreeEO1 = new SarFileSplitMenuEO(UUIDUtils.randomUUID20(),message.getItemsNum(),generalCatalogueId,sarFileSplitInfoEO.getId(),treeListDisplay++,"术语与定义"); +// message.setMenuId(documentTreeEO1.getId()); +// if(sarFileSplitInfoEO.getStartNumber()<=3 && sarFileSplitInfoEO.getStopNumber()>=3){ +// messageList.add(message); +// treeList.add(documentTreeEO1); +// menuCanAdd = true; +// } else { +// menuCanAdd = false; +// } +// messageNumber++; +// } else if(menuCanAdd){ +// List imageBundleList = readImageInParagraph((XWPFParagraph)p); +// if(CollectionUtils.isNotEmpty(imageBundleList)) { +// addItermsConditionsImage(messageList.get(messageList.size()-1),itemValList, p,imageBundleList); +// } else { +// addItermsConditionsText(messageList.get(messageList.size()-1),itemValList, p.getText()); +// } +// } +// } else if (messageNumber>=3){ +// ptest = Pattern.compile("^[\\d.]*$"); +// boolean hasGoIf = false; +// for (int i=0;i10?paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+10):paragraphString.substring(nowStart.get(i).length()); +// List clauseContent = new ArrayList<>(); +// clauseContent.add(paragraphString); +// SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),nowStart.get(i),itemName,clauseContent); +// +// String[] numberStr = nowStart.get(i).split("\\."); +// if (Integer.valueOf(numberStr[0]) > sarFileSplitInfoEO.getStopNumber()){ +// menuCanAdd = false; +// } else { +// // 增加一条数据,需要在数结构中加一条数据 +// SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(nowStart.get(i),treeList,generalCatalogueId,sarFileSplitInfoEO ,treeListDisplay++,itemName); +// treeList.add(sarFileSplitMenuEO) ; +// message.setMenuId(sarFileSplitMenuEO.getId()); +// addItermsConditionsText(message,itemValList,paragraphString.substring(nowStart.get(i).length())); +// messageList.add(message); +// nowStart = getNewNowStart(nowStart.get(i)); +// menuCanAdd = true; +// } +// hasGoIf = true; +// break; +// } +// } +// if(!hasGoIf && menuCanAdd) { +// // 判断是否是附录 +// 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("附录") ){ +// if ( Integer.valueOf(appendixNum)+1 <= sarFileSplitInfoEO.getStopNumber()) { +// String itemName = "附录"; +// List clauseContent = new ArrayList<>(); +// clauseContent.add(paragraphString); +// SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),"附录",itemName,clauseContent); +// // 增加一条数据,需要在数结构中加一条数据 +// SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList("附录",treeList,generalCatalogueId,sarFileSplitInfoEO ,treeListDisplay++,""); +// addItermsConditionsText(message,itemValList,paragraphString); +// treeList.add(sarFileSplitMenuEO) ; +// message.setMenuId(sarFileSplitMenuEO.getId()); +// messageList.add(message); +// nowStart = new ArrayList<>(); +// } else { +// break; +// } +// } else { +// if (!p.getText().equals("") ){ +// addItermsConditionsText(messageList.get(messageList.size()-1),itemValList,p.getText()); +// } +// List imageBundleList = readImageInParagraph((XWPFParagraph)p); +// if(CollectionUtils.isNotEmpty(imageBundleList)) { +// addItermsConditionsImage(messageList.get(messageList.size()-1),itemValList, p,imageBundleList); +// } +// } +// } +// // 判断是否直接跳出所有循环 +// if (!menuCanAdd && messageList.size()>0) { +// break; +// } +// } +// } else if (element instanceof XWPFTable){ +// if(messageList != null && !messageList.isEmpty()){ +// addItermsConditionsOfTable(messageList.get(messageList.size()-1),itemValList,(XWPFTable)element); +// } +// } +// } +// +// } catch (Exception e) { +// e.printStackTrace(); +// return -1; +// } +// if(treeList.size()>0 && messageList.size() > 0){ +// sarFileSplitMenuEODao.insertForeach(treeList); +// sarFileSplitItemsEODao.insertForeach(messageList); +// sarFileSplitItemsValEODao.insertForeach(itemValList); +// } else { +// return -1; +// } +// return treeList.size(); +// +// } +// +// public static void main(String[] args) { +// fileEU(new SarFileSplitInfoEO()); +// } +////GSO 欧洲 +// public static int fileEU(SarFileSplitInfoEO sarFileSplitInfoEO) { +// // 拆分文件主表中插入数据 +// sarFileSplitInfoEO.setId(UUIDUtils.randomUUID20()); +// sarFileSplitInfoEO.setValidFlag(0); +// sarFileSplitInfoEO.setCreationTime(new Date()); +// sarFileSplitInfoEO.setCreationUser(LoginUserUtil.getUserId()); +// sarFileSplitInfoEO.setModifyTime(new Date()); +// sarFileSplitInfoEO.setModifyUser(LoginUserUtil.getUserId()); +//// dao.insertSelective(sarFileSplitInfoEO); +// +// // 拆分文件条款表中最终插入数据 +// List messageList = new ArrayList<>(); +// int messageNumber = 0; +// // 拆分文件目录表中最终插入数据 +// List treeList = new ArrayList<>(); +// // 拆分文件条款详情表中最终插入数据 +// List itemValList = new ArrayList<>(); +// Long treeListDisplay = 1L; +// +// String generalCatalogueId = UUIDUtils.randomUUID20(); +// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,""); +// treeList.add(documentTreeEO); +// +// List nowStart = new ArrayList<>(); +//// if (sarFileSplitInfoEO.getStartNumber()<4){ +//// nowStart.add("4"); +//// } else { +//// nowStart.add(String.valueOf(sarFileSplitInfoEO.getStartNumber())); +//// } +// try { +//// AttFileEO attFileEO = attFileEOService.getFileInfo(sarFileSplitInfoEO.getAttId()); +//// String readFilePath = filePath + "/" + attFileEO.getFilePath() + attFileEO.getFileName(); +// +// InputStream is = new FileInputStream("E:/a.docx"); //需要将文件路更改为word文档所在路径。 +// XWPFDocument doc = new XWPFDocument(is); +// +// Pattern ptest ; +// Matcher matcher; +// +// // 记录拆分后的每一段文字 +// List elements = doc.getBodyElements(); +// // 记录word自动生成的编号数据 +// Map numberMap = new HashMap(); +// boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据 +// for (IBodyElement element : elements) { +// // 段落 +// if (element instanceof XWPFParagraph) { +// XWPFParagraph p = (XWPFParagraph)element; +// +// // 处理段落生成编号不识别问题 +// String paragraphString = p.getText(); +// if (StringUtils.isNotBlank(paragraphString)) { +// paragraphString = paragraphString.replace((char) 12288, ' '); +// paragraphString = paragraphString.trim(); +// } +// if (StringUtils.isNotEmpty(p.getNumLevelText())&& p.getNumLevelText().indexOf(".")>0) { +// 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))){ +// numberMap.put(numberParent,numbernow+1); +// paragraphString = numberParent + "." + String.valueOf(numbernow+1)+ p.getText(); +// } else { +// numberMap.put(numberParent,numbernow); +// paragraphString = numberParent + "." + String.valueOf(numbernow)+ p.getText(); +// } +// } else { +// numberMap.put(numberParent,1); +// paragraphString = numberParent+".1"+ p.getText(); +// } +// } +// +// ptest = Pattern.compile("^[\\d.]*$"); +// boolean hasGoIf = false; +// for (int i=0;i10?paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+10):paragraphString.substring(nowStart.get(i).length()); +// List clauseContent = new ArrayList<>(); +// clauseContent.add(paragraphString); +// SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),nowStart.get(i),itemName,clauseContent); +// +// String[] numberStr = nowStart.get(i).split("\\."); +// if (Integer.valueOf(numberStr[0]) > sarFileSplitInfoEO.getStopNumber()){ +// menuCanAdd = false; +// } else { +// // 增加一条数据,需要在数结构中加一条数据 +// SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(nowStart.get(i),treeList,generalCatalogueId,sarFileSplitInfoEO ,treeListDisplay++,itemName); +// treeList.add(sarFileSplitMenuEO) ; +// message.setMenuId(sarFileSplitMenuEO.getId()); +// addItermsConditionsText(message,itemValList,paragraphString.substring(nowStart.get(i).length())); +// messageList.add(message); +// nowStart = getNewNowStart(nowStart.get(i)); +// menuCanAdd = true; +// } +// hasGoIf = true; +// break; +// } +// } +// +// // 判断是否直接跳出所有循环 +// if (!menuCanAdd && messageList.size()>0) { +// break; +// } +// +// } else if (element instanceof XWPFTable){ +// if(messageList != null && !messageList.isEmpty()){ +// addItermsConditionsOfTable(messageList.get(messageList.size()-1),itemValList,(XWPFTable)element); +// } +// } +// } +// +// } catch (Exception e) { +// e.printStackTrace(); +// return -1; +// } +// if(treeList.size()>0 && messageList.size() > 0){ +//// sarFileSplitMenuEODao.insertForeach(treeList); +//// sarFileSplitItemsEODao.insertForeach(messageList); +//// sarFileSplitItemsValEODao.insertForeach(itemValList); +// } else { +// return -1; +// } +// return treeList.size(); +// +// } +// //美国 +// public int fileUSA(SarFileSplitInfoEO sarFileSplitInfoEO) { +// // 拆分文件主表中插入数据 +// sarFileSplitInfoEO.setId(UUIDUtils.randomUUID20()); +// sarFileSplitInfoEO.setValidFlag(0); +// sarFileSplitInfoEO.setCreationTime(new Date()); +// sarFileSplitInfoEO.setCreationUser(LoginUserUtil.getUserId()); +// sarFileSplitInfoEO.setModifyTime(new Date()); +// sarFileSplitInfoEO.setModifyUser(LoginUserUtil.getUserId()); +// dao.insertSelective(sarFileSplitInfoEO); +// +// // 拆分文件条款表中最终插入数据 +// List messageList = new ArrayList<>(); +// int messageNumber = 0; +// // 拆分文件目录表中最终插入数据 +// List treeList = new ArrayList<>(); +// // 拆分文件条款详情表中最终插入数据 +// List itemValList = new ArrayList<>(); +// Long treeListDisplay = 1L; +// +// String generalCatalogueId = UUIDUtils.randomUUID20(); +// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,""); +// treeList.add(documentTreeEO); +// +// List nowStart = new ArrayList<>(); +// if (sarFileSplitInfoEO.getStartNumber()<4){ +// nowStart.add("4"); +// } else { +// nowStart.add(String.valueOf(sarFileSplitInfoEO.getStartNumber())); +// } +// try { +// AttFileEO attFileEO = attFileEOService.getFileInfo(sarFileSplitInfoEO.getAttId()); +// String readFilePath = filePath + "/" + attFileEO.getFilePath() + attFileEO.getFileName(); +// +// InputStream is = new FileInputStream(readFilePath); //需要将文件路更改为word文档所在路径。 +// XWPFDocument doc = new XWPFDocument(is); +// +// Pattern ptest = Pattern.compile("S^[\\d.]*$"); +// Matcher matcher; +// +// // 记录拆分后的每一段文字 +// List elements = doc.getBodyElements(); +// // 记录word自动生成的编号数据 +// Map numberMap = new HashMap(); +// boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据 +// for (IBodyElement element : elements) { +// // 段落 +// if (element instanceof XWPFParagraph) { +// XWPFParagraph p = (XWPFParagraph)element; +// +// // 处理段落生成编号不识别问题 +// String paragraphString = p.getText(); +// if (StringUtils.isNotBlank(paragraphString)) { +// paragraphString = paragraphString.replace((char) 12288, ' '); +// paragraphString = paragraphString.trim(); +// } +// if (StringUtils.isNotEmpty(p.getNumLevelText())&& p.getNumLevelText().indexOf(".")>0) { +// 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))){ +// numberMap.put(numberParent,numbernow+1); +// paragraphString = numberParent + "." + String.valueOf(numbernow+1)+ p.getText(); +// } else { +// numberMap.put(numberParent,numbernow); +// paragraphString = numberParent + "." + String.valueOf(numbernow)+ p.getText(); +// } +// } else { +// numberMap.put(numberParent,1); +// paragraphString = numberParent+".1"+ p.getText(); +// } +// } +////^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$ +// ptest = Pattern.compile("S^[\\d.]*$"); +// boolean hasGoIf = false; +// for (int i=0;i10?paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+10):paragraphString.substring(nowStart.get(i).length()); +// List clauseContent = new ArrayList<>(); +// clauseContent.add(paragraphString); +// SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),nowStart.get(i),itemName,clauseContent); +// +// String[] numberStr = nowStart.get(i).split("\\."); +// +// if (Integer.valueOf(numberStr[0]) > sarFileSplitInfoEO.getStopNumber()){ +// menuCanAdd = false; +// } else { +// // 增加一条数据,需要在数结构中加一条数据 +// SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(nowStart.get(i),treeList,generalCatalogueId,sarFileSplitInfoEO ,treeListDisplay++,itemName); +// treeList.add(sarFileSplitMenuEO) ; +// message.setMenuId(sarFileSplitMenuEO.getId()); +// addItermsConditionsText(message,itemValList,paragraphString.substring(nowStart.get(i).length())); +// messageList.add(message); +// nowStart = getNewNowStart(nowStart.get(i)); +// menuCanAdd = true; +// } +// hasGoIf = true; +// break; +// } +// } +// +// // 判断是否直接跳出所有循环 +// if (!menuCanAdd && messageList.size()>0) { +// break; +// } +// +// } else if (element instanceof XWPFTable){ +// if(messageList != null && !messageList.isEmpty()){ +// addItermsConditionsOfTable(messageList.get(messageList.size()-1),itemValList,(XWPFTable)element); +// } +// } +// } +// +// } catch (Exception e) { +// e.printStackTrace(); +// return -1; +// } +// if(treeList.size()>0 && messageList.size() > 0){ +// sarFileSplitMenuEODao.insertForeach(treeList); +// sarFileSplitItemsEODao.insertForeach(messageList); +// sarFileSplitItemsValEODao.insertForeach(itemValList); +// } else { +// return -1; +// } +// return treeList.size(); +// +// } +// /** +// * 通过传递过来的编号,得出下次可能出现的编号 +// * @param nowStart +// * @return +// */ +// private static List getNewNowStart(String nowStart){ +// List nowStartList = new ArrayList<>(); +// List nowResultStartList = new ArrayList<>(); +// String[] numberStr = nowStart.split("\\."); +// String startnumber = ""; +// for(int i=0;i 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) { +// for (SarFileSplitMenuEO forDocumentTree : treeList) { +// if (name.substring(0, name.lastIndexOf(".")).equals(forDocumentTree.getName())) { +// documentTreeEO.setPId(forDocumentTree.getId()); +// break; +// } +// } +// }else { +// documentTreeEO.setPId(generalCatalogueId); +// } +// return documentTreeEO; +// } +// +// private static SarFileSplitItemsEO getSarFileSplitItemsEO(String infoId,String itemsNum,String itemsName,List itemsCondi) { +// SarFileSplitItemsEO sarFileSplitItemsEO = new SarFileSplitItemsEO(); +// sarFileSplitItemsEO.setInfoId(infoId); +// sarFileSplitItemsEO.setItemsNum(itemsNum); +// sarFileSplitItemsEO.setItemsName(itemsName); +// sarFileSplitItemsEO.setItemsCondi(itemsCondi); +// sarFileSplitItemsEO.setItermsConditions(""); +// sarFileSplitItemsEO.setId(UUIDUtils.randomUUID20()); +// sarFileSplitItemsEO.setValidFlag(0); +// sarFileSplitItemsEO.setCreationTime(new Date()); +// sarFileSplitItemsEO.setCreationUser(LoginUserUtil.getUserId()); +// sarFileSplitItemsEO.setModifyTime(new Date()); +// sarFileSplitItemsEO.setModifyUser(LoginUserUtil.getUserId()); +// return sarFileSplitItemsEO; +// } +// +// public List queryByPageOwn(SarFileSplitInfoEOPage page) throws Exception { +// int rowCount = dao.queryByCountOwn(page); +// page.getPager().setRowCount(rowCount); +// List rows = dao.queryByPageOwn(page); +// if (rows != null && !rows.isEmpty()) { +// for (SarFileSplitInfoEO infoEO : rows) { +// //处理标准号和标准名称 +// if(StringUtils.isNotBlank(infoEO.getStandardNumber())){ +// infoEO.setShowNumber(infoEO.getStandardType()+" "+ infoEO.getStandardNumber()+"-"+infoEO.getYear()); +// infoEO.setStandName(infoEO.getStandardName()); +// } +// if(StringUtils.isNotBlank(infoEO.getOfficialNumber())){ +// infoEO.setShowNumber(infoEO.getOfficialNumber()); +// infoEO.setStandName(infoEO.getFileNameLaws()); +// } +// AttFileEO fileInfo = attFileEOService.getFileInfo(infoEO.getAttId()); +// if(ObjectUtils.allNotNull(fileInfo)){ +// infoEO.setFileName(fileInfo.getOldFileName()); +// } +// String collectId = personCollectEOService.queryCollectByUserAndId(infoEO.getId()); +// infoEO.setCollectId(collectId); +// if (StringUtils.isNotBlank(infoEO.getFileType())) { +// List getList = +// sarStandAttrDetailsEODao.selectFileFieldForSel1(infoEO.getFileType()); +// if (getList != null && !getList.isEmpty()) { +// infoEO.setFileTypeShow(getList.get(0).getLabel()); +// } else { +// infoEO.setFileTypeShow(null); +// } +// } +// } +// } +// return rows; +// } +// +// /** +// * 标准拆分审核回调 +// * 0.审核开始:拆分结果:审核中(1) +// * 1.审核通过:拆分结果成功:成功(1) 拆分状态:已关联(1) +// * 2.审核失败:拆分状态:编辑中(0) +// * @param changeSarFileSplitInfoStatusDTO +// * @return +// */ +// public boolean changeSarFileSplitInfoStatusCallBack(ChangeSarFileSplitInfoStatusDTO changeSarFileSplitInfoStatusDTO)throws Exception{ +// SarFileSplitInfoEO sarFileSplitInfoEO = new SarFileSplitInfoEO(); +// sarFileSplitInfoEO.setId(changeSarFileSplitInfoStatusDTO.getSplitId()); +// Integer approveFlag = changeSarFileSplitInfoStatusDTO.getApproveResult(); +// if(0 == approveFlag){ +// sarFileSplitInfoEO.setSplitStatus("1"); +// }else if(1 == approveFlag){ +// sarFileSplitInfoEO.setSplitStatus("1"); +// sarFileSplitInfoEO.setResult("1"); +// }else{ +// sarFileSplitInfoEO.setSplitStatus("0"); +// } +// int i = updateByPrimaryKey(sarFileSplitInfoEO); +// if(i > 0){ +// return true; +// } +// return false; +// } +// +// public int deleteByIds(String ids){ +// String[] infoIds = ids.split(","); +// // 删除info表数据 +// SarFileSplitInfoEO sarFileSplitInfoEO = new SarFileSplitInfoEO(); +// sarFileSplitInfoEO.setIdList(infoIds); +// int result = dao.deleteByIds(sarFileSplitInfoEO); +// +// //删除menu表数据 +// SarFileSplitMenuEO sarFileSplitMenuEO = new SarFileSplitMenuEO(); +// sarFileSplitMenuEO.setInfoIdList(infoIds); +// sarFileSplitMenuEODao.deleteByIds(sarFileSplitMenuEO); +// // 删除val表数据 +// List idList = Arrays.asList(infoIds); +// sarFileSplitItemsValEODao.deleteValByInfoIds(idList); +// // 删除table表数据 +// sarFileSplitItemsTableEODao.deleteTableByMenuIds(idList); +// //删除items表数据 +// SarFileSplitItemsEO sarFileSplitItemsEO = new SarFileSplitItemsEO(); +// sarFileSplitItemsEO.setInfoIdList(infoIds); +// sarFileSplitItemsEODao.deleteByIds(sarFileSplitItemsEO); +// //删除params表数据 +// sarFileSplitItemsParamsEODao.deleteByInfoIds(idList); +// //删除收藏表中数据 +// personCollectEODao.deleteByResIdList(idList); +//// // 删除分享表中数据 +//// personShareEODao.deleteByResIdList(idList); +// return result; +// } +// +// //获取某一个段落中的所有图片索引 +// private List readImageInParagraph(XWPFParagraph paragraph) { +// //图片索引List +// List imageBundleList = new ArrayList(); +// +// //段落中所有XWPFRun +// List runList = paragraph.getRuns(); +// for (XWPFRun run : runList) { +// //XWPFRun是POI对xml元素解析后生成的自己的属性,无法通过xml解析,需要先转化成CTR +// CTR ctr = run.getCTR(); +// //对子元素进行遍历 +// XmlCursor c = ctr.newCursor(); +// //这个就是拿到所有的子元素: +// c.selectPath("./*"); +// while (c.toNextSelection()) { +// XmlObject o = c.getObject(); +// //如果子元素是这样的形式,使用CTDrawing保存图片 +// if (o instanceof CTDrawing) { +// CTDrawing drawing = (CTDrawing) o; +// CTInline[] ctInlines = drawing.getInlineArray(); +// CTAnchor[] ctAnchors = drawing.getAnchorArray(); +// for (CTInline ctInline : ctInlines) { +// CTGraphicalObject graphic = ctInline.getGraphic(); +// // +// XmlCursor cursor = graphic.getGraphicData().newCursor(); +// cursor.selectPath("./*"); +// while (cursor.toNextSelection()) { +// XmlObject xmlObject = cursor.getObject(); +// // 如果子元素是这样的形式 +// if (xmlObject instanceof CTPicture) { +// CTPicture picture = (CTPicture) xmlObject; +// //拿到元素的属性 +// imageBundleList.add(picture.getBlipFill().getBlip().getEmbed()); +// } +// } +// } +// for (CTAnchor ctAnchor : ctAnchors) { +// CTGraphicalObject graphic = ctAnchor.getGraphic(); +// XmlCursor cursor = graphic.getGraphicData().newCursor(); +// cursor.selectPath("./*"); +// while (cursor.toNextSelection()) { +// XmlObject xmlObject = cursor.getObject(); +// // 如果子元素是这样的形式 +// if (xmlObject instanceof CTPicture) { +// CTPicture picture = (CTPicture) xmlObject; +// //拿到元素的属性 +// imageBundleList.add(picture.getBlipFill().getBlip().getEmbed()); +// } +// } +// } +// } else if (o instanceof CTLevelText){ +// System.out.println(((CTLevelText) o).getVal()); +// } +// } +// } +// return imageBundleList; +// } +// +// // 像每个条款中依次插入每一段的内容 +// public static void addItermsConditionsText(SarFileSplitItemsEO message,List 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()); +// sarFileSplitItemsValEO.setCreationUser(LoginUserUtil.getUserId()); +// sarFileSplitItemsValEO.setModifyTime(new Date()); +// 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/jreo-boot-split/src/main/java/com/jero/modules/utils/FileSpilt.java b/jero-boot/jreo-boot-split/src/main/java/com/jero/modules/utils/FileSpilt.java new file mode 100644 index 000000000..938a3ab36 --- /dev/null +++ b/jero-boot/jreo-boot-split/src/main/java/com/jero/modules/utils/FileSpilt.java @@ -0,0 +1,1174 @@ +//package com.jero.modules.utils; +// +// +//import com.baomidou.mybatisplus.core.toolkit.StringUtils; +//import com.jero.modules.entity.SarFileSplitItemsEO; +//import lombok.extern.slf4j.Slf4j; +//import me.zhyd.oauth.utils.UuidUtils; +//import org.apache.commons.collections4.CollectionUtils; +//import org.apache.commons.lang3.ObjectUtils; +//import org.apache.poi.xwpf.usermodel.IBodyElement; +//import org.apache.poi.xwpf.usermodel.XWPFDocument; +//import org.apache.poi.xwpf.usermodel.XWPFParagraph; +//import org.apache.poi.xwpf.usermodel.XWPFPictureData; +//import org.apache.poi.xwpf.usermodel.XWPFRun; +//import org.apache.poi.xwpf.usermodel.XWPFTable; +//import org.apache.xmlbeans.XmlCursor; +//import org.apache.xmlbeans.XmlObject; +//import org.openxmlformats.schemas.drawingml.x2006.main.CTGraphicalObject; +//import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTAnchor; +//import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline; +//import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTLevelText; +//import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR; +// +//import java.io.FileInputStream; +//import java.io.FileOutputStream; +//import java.io.IOException; +//import java.io.InputStream; +//import java.util.ArrayList; +//import java.util.Arrays; +//import java.util.Date; +//import java.util.HashMap; +//import java.util.HashSet; +//import java.util.List; +//import java.util.Map; +//import java.util.Set; +//import java.util.regex.Matcher; +//import java.util.regex.Pattern; +// +///** +// * +// *
    +// * 功能:拆分功能处理 +// * 作者:王轶琛 +// * 日期: 2020-01-03
    +// * 版权所有:版权归北京卡达克数据技术中心所有。
    +// */ +//@Slf4j +//public class FileSpilt { +// +// +////中国 +// public int fileCHN(SarFileSplitInfoEO sarFileSplitInfoEO) { +// // 拆分文件主表中插入数据 +//// sarFileSplitInfoEO.setId(UUIDUtils.randomUUID20()); +//// sarFileSplitInfoEO.setValidFlag(0); +//// sarFileSplitInfoEO.setCreationTime(new Date()); +//// sarFileSplitInfoEO.setCreationUser(LoginUserUtil.getUserId()); +//// sarFileSplitInfoEO.setModifyTime(new Date()); +//// sarFileSplitInfoEO.setModifyUser(LoginUserUtil.getUserId()); +//// dao.insertSelective(sarFileSplitInfoEO); +// +// // 拆分文件条款表中最终插入数据 +// List messageList = new ArrayList<>(); +// int messageNumber = 0; +// // 拆分文件目录表中最终插入数据 +// List treeList = new ArrayList<>(); +// // 拆分文件条款详情表中最终插入数据 +// List itemValList = new ArrayList<>(); +// Long treeListDisplay = 1L; +// +// String generalCatalogueId = UUIDUtils.randomUUID20(); +// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"总目录","",sarFileSplitInfoEO.getId(),treeListDisplay++,""); +// treeList.add(documentTreeEO); +// +// List nowStart = new ArrayList<>(); +// if (sarFileSplitInfoEO.getStartNumber()<4){ +// nowStart.add("4"); +// } else { +// nowStart.add(String.valueOf(sarFileSplitInfoEO.getStartNumber())); +// } +// try { +// AttFileEO attFileEO = attFileEOService.getFileInfo(sarFileSplitInfoEO.getAttId()); +// String readFilePath = filePath + "/" + attFileEO.getFilePath() + attFileEO.getFileName(); +// +// InputStream is = new FileInputStream(readFilePath); //需要将文件路更改为word文档所在路径。 +// XWPFDocument doc = new XWPFDocument(is); +// +// Pattern ptest = Pattern.compile("^1范围"); +// Matcher matcher; +// +// // 记录拆分后的每一段文字 +// List elements = doc.getBodyElements(); +// // 记录word自动生成的编号数据 +// Map numberMap = new HashMap(); +// boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据 +// for (IBodyElement element : elements) { +// // 段落 +// if (element instanceof XWPFParagraph) { +// XWPFParagraph p = (XWPFParagraph)element; +// +// // 处理段落生成编号不识别问题 +// String paragraphString = p.getText(); +// if (StringUtils.isNotBlank(paragraphString)) { +// paragraphString = paragraphString.replace((char) 12288, ' '); +// paragraphString = paragraphString.trim(); +// } +// if (StringUtils.isNotEmpty(p.getNumLevelText())&& p.getNumLevelText().indexOf(".")>0) { +// 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))){ +// numberMap.put(numberParent,numbernow+1); +// paragraphString = numberParent + "." + String.valueOf(numbernow+1)+ p.getText(); +// } else { +// numberMap.put(numberParent,numbernow); +// paragraphString = numberParent + "." + String.valueOf(numbernow)+ p.getText(); +// } +// } else { +// numberMap.put(numberParent,1); +// paragraphString = numberParent+".1"+ p.getText(); +// } +// } +// if (messageNumber == 0) { +// ptest= Pattern.compile("^1\\s{0,3}范围"); +// matcher=ptest.matcher(paragraphString); +// while(matcher.find()){ +// List clauseContent = new ArrayList<>(); +// SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),"1","范围",clauseContent); +// SarFileSplitMenuEO documentTreeEO1 = new SarFileSplitMenuEO(UUIDUtils.randomUUID20(),message.getItemsNum(),generalCatalogueId,sarFileSplitInfoEO.getId(),treeListDisplay++,"范围"); +// message.setMenuId(documentTreeEO1.getId()); +// if(sarFileSplitInfoEO.getStartNumber()<=1 && sarFileSplitInfoEO.getStopNumber()>=1){ +// messageList.add(message); +// treeList.add(documentTreeEO1); +// menuCanAdd = true; +// } else { +// menuCanAdd = false; +// } +// messageNumber++; +// } +// } else if (messageNumber == 1){ +// ptest= Pattern.compile("^2\\s{0,3}规范性引用文件"); +// matcher=ptest.matcher(paragraphString); +// if(matcher.find()){ +// List clauseContent = new ArrayList<>(); +// SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),"2","规范性引用文件",clauseContent); +// SarFileSplitMenuEO documentTreeEO1 = new SarFileSplitMenuEO(UUIDUtils.randomUUID20(),message.getItemsNum(),generalCatalogueId,sarFileSplitInfoEO.getId(),treeListDisplay++,"规范性引用文件"); +// message.setMenuId(documentTreeEO1.getId()); +// if(sarFileSplitInfoEO.getStartNumber()<=2 && sarFileSplitInfoEO.getStopNumber()>=2){ +// messageList.add(message); +// treeList.add(documentTreeEO1); +// menuCanAdd = true; +// } else { +// menuCanAdd = false; +// } +// messageNumber++; +// } else if(menuCanAdd){ +// List imageBundleList = readImageInParagraph((XWPFParagraph)p); +// if(CollectionUtils.isNotEmpty(imageBundleList)) { +// addItermsConditionsImage(messageList.get(messageList.size()-1),itemValList, p,imageBundleList); +// } else { +// addItermsConditionsText(messageList.get(messageList.size()-1),itemValList, p.getText()); +// } +// } +// } else if (messageNumber == 2){ +// ptest= Pattern.compile("^3\\s{0,3}术语(和|与)定义"); +// matcher=ptest.matcher(paragraphString); +// if(matcher.find()){ +// List clauseContent = new ArrayList<>(); +// SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),"3","术语与定义",clauseContent); +// SarFileSplitMenuEO documentTreeEO1 = new SarFileSplitMenuEO(UUIDUtils.randomUUID20(),message.getItemsNum(),generalCatalogueId,sarFileSplitInfoEO.getId(),treeListDisplay++,"术语与定义"); +// message.setMenuId(documentTreeEO1.getId()); +// if(sarFileSplitInfoEO.getStartNumber()<=3 && sarFileSplitInfoEO.getStopNumber()>=3){ +// messageList.add(message); +// treeList.add(documentTreeEO1); +// menuCanAdd = true; +// } else { +// menuCanAdd = false; +// } +// messageNumber++; +// } else if(menuCanAdd){ +// List imageBundleList = readImageInParagraph((XWPFParagraph)p); +// if(CollectionUtils.isNotEmpty(imageBundleList)) { +// addItermsConditionsImage(messageList.get(messageList.size()-1),itemValList, p,imageBundleList); +// } else { +// addItermsConditionsText(messageList.get(messageList.size()-1),itemValList, p.getText()); +// } +// } +// } else if (messageNumber>=3){ +// ptest = Pattern.compile("^[\\d.]*$"); +// boolean hasGoIf = false; +// for (int i=0;i10?paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+10):paragraphString.substring(nowStart.get(i).length()); +// List clauseContent = new ArrayList<>(); +// clauseContent.add(paragraphString); +// SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),nowStart.get(i),itemName,clauseContent); +// +// String[] numberStr = nowStart.get(i).split("\\."); +// if (Integer.valueOf(numberStr[0]) > sarFileSplitInfoEO.getStopNumber()){ +// menuCanAdd = false; +// } else { +// // 增加一条数据,需要在数结构中加一条数据 +// SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(nowStart.get(i),treeList,generalCatalogueId,sarFileSplitInfoEO ,treeListDisplay++,itemName); +// treeList.add(sarFileSplitMenuEO) ; +// message.setMenuId(sarFileSplitMenuEO.getId()); +// addItermsConditionsText(message,itemValList,paragraphString.substring(nowStart.get(i).length())); +// messageList.add(message); +// nowStart = getNewNowStart(nowStart.get(i)); +// menuCanAdd = true; +// } +// hasGoIf = true; +// break; +// } +// } +// if(!hasGoIf && menuCanAdd) { +// // 判断是否是附录 +// 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("附录") ){ +// if ( Integer.valueOf(appendixNum)+1 <= sarFileSplitInfoEO.getStopNumber()) { +// String itemName = "附录"; +// List clauseContent = new ArrayList<>(); +// clauseContent.add(paragraphString); +// SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),"附录",itemName,clauseContent); +// // 增加一条数据,需要在数结构中加一条数据 +// SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList("附录",treeList,generalCatalogueId,sarFileSplitInfoEO ,treeListDisplay++,""); +// addItermsConditionsText(message,itemValList,paragraphString); +// treeList.add(sarFileSplitMenuEO) ; +// message.setMenuId(sarFileSplitMenuEO.getId()); +// messageList.add(message); +// nowStart = new ArrayList<>(); +// } else { +// break; +// } +// } else { +// if (!p.getText().equals("") ){ +// addItermsConditionsText(messageList.get(messageList.size()-1),itemValList,p.getText()); +// } +// List imageBundleList = readImageInParagraph((XWPFParagraph)p); +// if(CollectionUtils.isNotEmpty(imageBundleList)) { +// addItermsConditionsImage(messageList.get(messageList.size()-1),itemValList, p,imageBundleList); +// } +// } +// } +// // 判断是否直接跳出所有循环 +// if (!menuCanAdd && messageList.size()>0) { +// break; +// } +// } +// } else if (element instanceof XWPFTable){ +// if(messageList != null && !messageList.isEmpty()){ +// addItermsConditionsOfTable(messageList.get(messageList.size()-1),itemValList,(XWPFTable)element); +// } +// } +// } +// +// } catch (Exception e) { +// e.printStackTrace(); +// return -1; +// } +// if(treeList.size()>0 && messageList.size() > 0){ +// sarFileSplitMenuEODao.insertForeach(treeList); +// sarFileSplitItemsEODao.insertForeach(messageList); +// sarFileSplitItemsValEODao.insertForeach(itemValList); +// } else { +// return -1; +// } +// return treeList.size(); +// +// } +// +// public static void main(String[] args) { +// fileEU(new SarFileSplitInfoEO()); +// } +////GSO 欧洲 +// public static int fileEU(String url) { +// // 拆分文件主表中插入数据 +//// sarFileSplitInfoEO.setId(UUIDUtils.randomUUID20()); +//// sarFileSplitInfoEO.setValidFlag(0); +//// sarFileSplitInfoEO.setCreationTime(new Date()); +//// sarFileSplitInfoEO.setCreationUser(LoginUserUtil.getUserId()); +//// sarFileSplitInfoEO.setModifyTime(new Date()); +//// sarFileSplitInfoEO.setModifyUser(LoginUserUtil.getUserId()); +//// dao.insertSelective(sarFileSplitInfoEO); +// +// // 拆分文件条款表中最终插入数据 +// List messageList = new ArrayList<>(); +// int messageNumber = 0; +// // 拆分文件目录表中最终插入数据 +//// List treeList = new ArrayList<>(); +// // 拆分文件条款详情表中最终插入数据 +//// List itemValList = new ArrayList<>(); +// Long treeListDisplay = 1L; +// +//// String generalCatalogueId = UUIDUtils.randomUUID20(); +//// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,""); +//// treeList.add(documentTreeEO); +// +// List nowStart = new ArrayList<>(); +//// if (sarFileSplitInfoEO.getStartNumber()<4){ +//// nowStart.add("4"); +//// } else { +//// nowStart.add(String.valueOf(sarFileSplitInfoEO.getStartNumber())); +//// } +// try { +//// AttFileEO attFileEO = attFileEOService.getFileInfo(sarFileSplitInfoEO.getAttId()); +//// String readFilePath = filePath + "/" + attFileEO.getFilePath() + attFileEO.getFileName(); +// +// InputStream is = new FileInputStream(url); //需要将文件路更改为word文档所在路径。 +// XWPFDocument doc = new XWPFDocument(is); +// +// Pattern ptest ; +// Matcher matcher; +// +// // 记录拆分后的每一段文字 +// List elements = doc.getBodyElements(); +// // 记录word自动生成的编号数据 +// Map numberMap = new HashMap(); +// boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据 +// for (IBodyElement element : elements) { +// // 段落 +// if (element instanceof XWPFParagraph) { +// XWPFParagraph p = (XWPFParagraph)element; +// +// // 处理段落生成编号不识别问题 +// String paragraphString = p.getText(); +// if (StringUtils.isNotBlank(paragraphString)) { +// paragraphString = paragraphString.replace((char) 12288, ' '); +// paragraphString = paragraphString.trim(); +// } +// if (StringUtils.isNotBlank(p.getNumLevelText())&& p.getNumLevelText().indexOf(".")>0) { +// 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))){ +// numberMap.put(numberParent,numbernow+1); +// paragraphString = numberParent + "." + String.valueOf(numbernow+1)+ p.getText(); +// } else { +// numberMap.put(numberParent,numbernow); +// paragraphString = numberParent + "." + String.valueOf(numbernow)+ p.getText(); +// } +// } else { +// numberMap.put(numberParent,1); +// paragraphString = numberParent+".1"+ p.getText(); +// } +// } +// +// ptest = Pattern.compile("^[\\d.]*$"); +// boolean hasGoIf = false; +// for (int i=0;i10?paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+10):paragraphString.substring(nowStart.get(i).length()); +// List clauseContent = new ArrayList<>(); +// clauseContent.add(paragraphString); +// SarFileSplitItemsEO message = getSarFileSplitItemsEO("sarFileSplitInfoEO.getId()",nowStart.get(i),itemName,clauseContent); +// +// String[] numberStr = nowStart.get(i).split("\\."); +// if (Integer.valueOf(numberStr[0]) > 1000000){ +//// if (Integer.valueOf(numberStr[0]) > sarFileSplitInfoEO.getStopNumber()){ +// menuCanAdd = false; +// } else { +// // 增加一条数据,需要在数结构中加一条数据 +//// SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(nowStart.get(i),treeList,generalCatalogueId,sarFileSplitInfoEO ,treeListDisplay++,itemName); +//// treeList.add(sarFileSplitMenuEO) ; +// message.setMenuId("sarFileSplitMenuEO.getId()"); +//// addItermsConditionsText(message,itemValList,paragraphString.substring(nowStart.get(i).length())); +// messageList.add(message); +// nowStart = getNewNowStart(nowStart.get(i)); +// menuCanAdd = true; +// } +// hasGoIf = true; +// break; +// } +// } +// +// // 判断是否直接跳出所有循环 +// if (!menuCanAdd && messageList.size()>0) { +// break; +// } +// +// } else if (element instanceof XWPFTable){ +// if(messageList != null && !messageList.isEmpty()){ +// addItermsConditionsOfTable(messageList.get(messageList.size()-1),itemValList,(XWPFTable)element); +// } +// } +// } +// +// } catch (Exception e) { +// e.printStackTrace(); +// return -1; +// } +// if(treeList.size()>0 && messageList.size() > 0){ +//// sarFileSplitMenuEODao.insertForeach(treeList); +//// sarFileSplitItemsEODao.insertForeach(messageList); +//// sarFileSplitItemsValEODao.insertForeach(itemValList); +// } else { +// return -1; +// } +// return treeList.size(); +// +// } +// //美国 +// public int fileUSA(SarFileSplitInfoEO sarFileSplitInfoEO) { +// // 拆分文件主表中插入数据 +// sarFileSplitInfoEO.setId(UUIDUtils.randomUUID20()); +// sarFileSplitInfoEO.setValidFlag(0); +// sarFileSplitInfoEO.setCreationTime(new Date()); +// sarFileSplitInfoEO.setCreationUser(LoginUserUtil.getUserId()); +// sarFileSplitInfoEO.setModifyTime(new Date()); +// sarFileSplitInfoEO.setModifyUser(LoginUserUtil.getUserId()); +// dao.insertSelective(sarFileSplitInfoEO); +// +// // 拆分文件条款表中最终插入数据 +// List messageList = new ArrayList<>(); +// int messageNumber = 0; +// // 拆分文件目录表中最终插入数据 +// List treeList = new ArrayList<>(); +// // 拆分文件条款详情表中最终插入数据 +// List itemValList = new ArrayList<>(); +// Long treeListDisplay = 1L; +// +// String generalCatalogueId = UUIDUtils.randomUUID20(); +// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,""); +// treeList.add(documentTreeEO); +// +// List nowStart = new ArrayList<>(); +// if (sarFileSplitInfoEO.getStartNumber()<4){ +// nowStart.add("4"); +// } else { +// nowStart.add(String.valueOf(sarFileSplitInfoEO.getStartNumber())); +// } +// try { +// AttFileEO attFileEO = attFileEOService.getFileInfo(sarFileSplitInfoEO.getAttId()); +// String readFilePath = filePath + "/" + attFileEO.getFilePath() + attFileEO.getFileName(); +// +// InputStream is = new FileInputStream(readFilePath); //需要将文件路更改为word文档所在路径。 +// XWPFDocument doc = new XWPFDocument(is); +// +// Pattern ptest = Pattern.compile("S^[\\d.]*$"); +// Matcher matcher; +// +// // 记录拆分后的每一段文字 +// List elements = doc.getBodyElements(); +// // 记录word自动生成的编号数据 +// Map numberMap = new HashMap(); +// boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据 +// for (IBodyElement element : elements) { +// // 段落 +// if (element instanceof XWPFParagraph) { +// XWPFParagraph p = (XWPFParagraph)element; +// +// // 处理段落生成编号不识别问题 +// String paragraphString = p.getText(); +// if (StringUtils.isNotBlank(paragraphString)) { +// paragraphString = paragraphString.replace((char) 12288, ' '); +// paragraphString = paragraphString.trim(); +// } +// if (StringUtils.isNotBlank(p.getNumLevelText())&& p.getNumLevelText().indexOf(".")>0) { +// 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))){ +// numberMap.put(numberParent,numbernow+1); +// paragraphString = numberParent + "." + String.valueOf(numbernow+1)+ p.getText(); +// } else { +// numberMap.put(numberParent,numbernow); +// paragraphString = numberParent + "." + String.valueOf(numbernow)+ p.getText(); +// } +// } else { +// numberMap.put(numberParent,1); +// paragraphString = numberParent+".1"+ p.getText(); +// } +// } +////^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$ +// ptest = Pattern.compile("S^[\\d.]*$"); +// boolean hasGoIf = false; +// for (int i=0;i10?paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+10):paragraphString.substring(nowStart.get(i).length()); +// List clauseContent = new ArrayList<>(); +// clauseContent.add(paragraphString); +// SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),nowStart.get(i),itemName,clauseContent); +// +// String[] numberStr = nowStart.get(i).split("\\."); +// +// if (Integer.valueOf(numberStr[0]) > sarFileSplitInfoEO.getStopNumber()){ +// menuCanAdd = false; +// } else { +// // 增加一条数据,需要在数结构中加一条数据 +// SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(nowStart.get(i),treeList,generalCatalogueId,sarFileSplitInfoEO ,treeListDisplay++,itemName); +// treeList.add(sarFileSplitMenuEO) ; +// message.setMenuId(sarFileSplitMenuEO.getId()); +// addItermsConditionsText(message,itemValList,paragraphString.substring(nowStart.get(i).length())); +// messageList.add(message); +// nowStart = getNewNowStart(nowStart.get(i)); +// menuCanAdd = true; +// } +// hasGoIf = true; +// break; +// } +// } +// +// // 判断是否直接跳出所有循环 +// if (!menuCanAdd && messageList.size()>0) { +// break; +// } +// +// } else if (element instanceof XWPFTable){ +// if(messageList != null && !messageList.isEmpty()){ +// addItermsConditionsOfTable(messageList.get(messageList.size()-1),itemValList,(XWPFTable)element); +// } +// } +// } +// +// } catch (Exception e) { +// e.printStackTrace(); +// return -1; +// } +// if(treeList.size()>0 && messageList.size() > 0){ +// sarFileSplitMenuEODao.insertForeach(treeList); +// sarFileSplitItemsEODao.insertForeach(messageList); +// sarFileSplitItemsValEODao.insertForeach(itemValList); +// } else { +// return -1; +// } +// return treeList.size(); +// +// } +// /** +// * 通过传递过来的编号,得出下次可能出现的编号 +// * @param nowStart +// * @return +// */ +// private static List getNewNowStart(String nowStart){ +// List nowStartList = new ArrayList<>(); +// List nowResultStartList = new ArrayList<>(); +// String[] numberStr = nowStart.split("\\."); +// String startnumber = ""; +// for(int i=0;i 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) { +// for (SarFileSplitMenuEO forDocumentTree : treeList) { +// if (name.substring(0, name.lastIndexOf(".")).equals(forDocumentTree.getName())) { +// documentTreeEO.setPId(forDocumentTree.getId()); +// break; +// } +// } +// }else { +// documentTreeEO.setPId(generalCatalogueId); +// } +// return documentTreeEO; +// } +// +// private static SarFileSplitItemsEO getSarFileSplitItemsEO(String infoId,String itemsNum,String itemsName,List itemsCondi) { +// SarFileSplitItemsEO sarFileSplitItemsEO = new SarFileSplitItemsEO(); +// sarFileSplitItemsEO.setInfoId(infoId); +// sarFileSplitItemsEO.setItemsNum(itemsNum); +// sarFileSplitItemsEO.setItemsName(itemsName); +// sarFileSplitItemsEO.setItemsCondi(itemsCondi); +// sarFileSplitItemsEO.setItermsConditions(""); +// sarFileSplitItemsEO.setId(UuidUtils.getUUID()); +// sarFileSplitItemsEO.setValidFlag(0); +// sarFileSplitItemsEO.setCreationTime(new Date()); +// sarFileSplitItemsEO.setCreationUser("admin"); +// sarFileSplitItemsEO.setModifyTime(new Date()); +// sarFileSplitItemsEO.setModifyUser("LoginUserUtil.getUserId()"); +// return sarFileSplitItemsEO; +// } +// +// public List queryByPageOwn(SarFileSplitInfoEOPage page) throws Exception { +// int rowCount = dao.queryByCountOwn(page); +// page.getPager().setRowCount(rowCount); +// List rows = dao.queryByPageOwn(page); +// if (rows != null && !rows.isEmpty()) { +// for (SarFileSplitInfoEO infoEO : rows) { +// //处理标准号和标准名称 +// if(StringUtils.isNotBlank(infoEO.getStandardNumber())){ +// infoEO.setShowNumber(infoEO.getStandardType()+" "+ infoEO.getStandardNumber()+"-"+infoEO.getYear()); +// infoEO.setStandName(infoEO.getStandardName()); +// } +// if(StringUtils.isNotBlank(infoEO.getOfficialNumber())){ +// infoEO.setShowNumber(infoEO.getOfficialNumber()); +// infoEO.setStandName(infoEO.getFileNameLaws()); +// } +// AttFileEO fileInfo = attFileEOService.getFileInfo(infoEO.getAttId()); +// if(ObjectUtils.allNotNull(fileInfo)){ +// infoEO.setFileName(fileInfo.getOldFileName()); +// } +// String collectId = personCollectEOService.queryCollectByUserAndId(infoEO.getId()); +// infoEO.setCollectId(collectId); +// if (StringUtils.isNotBlank(infoEO.getFileType())) { +// List getList = +// sarStandAttrDetailsEODao.selectFileFieldForSel1(infoEO.getFileType()); +// if (getList != null && !getList.isEmpty()) { +// infoEO.setFileTypeShow(getList.get(0).getLabel()); +// } else { +// infoEO.setFileTypeShow(null); +// } +// } +// } +// } +// return rows; +// } +// +// /** +// * 标准拆分审核回调 +// * 0.审核开始:拆分结果:审核中(1) +// * 1.审核通过:拆分结果成功:成功(1) 拆分状态:已关联(1) +// * 2.审核失败:拆分状态:编辑中(0) +// * @param changeSarFileSplitInfoStatusDTO +// * @return +// */ +// public boolean changeSarFileSplitInfoStatusCallBack(ChangeSarFileSplitInfoStatusDTO changeSarFileSplitInfoStatusDTO)throws Exception{ +// SarFileSplitInfoEO sarFileSplitInfoEO = new SarFileSplitInfoEO(); +// sarFileSplitInfoEO.setId(changeSarFileSplitInfoStatusDTO.getSplitId()); +// Integer approveFlag = changeSarFileSplitInfoStatusDTO.getApproveResult(); +// if(0 == approveFlag){ +// sarFileSplitInfoEO.setSplitStatus("1"); +// }else if(1 == approveFlag){ +// sarFileSplitInfoEO.setSplitStatus("1"); +// sarFileSplitInfoEO.setResult("1"); +// }else{ +// sarFileSplitInfoEO.setSplitStatus("0"); +// } +// int i = updateByPrimaryKey(sarFileSplitInfoEO); +// if(i > 0){ +// return true; +// } +// return false; +// } +// +// public int deleteByIds(String ids){ +// String[] infoIds = ids.split(","); +// // 删除info表数据 +// SarFileSplitInfoEO sarFileSplitInfoEO = new SarFileSplitInfoEO(); +// sarFileSplitInfoEO.setIdList(infoIds); +// int result = dao.deleteByIds(sarFileSplitInfoEO); +// +// //删除menu表数据 +// SarFileSplitMenuEO sarFileSplitMenuEO = new SarFileSplitMenuEO(); +// sarFileSplitMenuEO.setInfoIdList(infoIds); +// sarFileSplitMenuEODao.deleteByIds(sarFileSplitMenuEO); +// // 删除val表数据 +// List idList = Arrays.asList(infoIds); +// sarFileSplitItemsValEODao.deleteValByInfoIds(idList); +// // 删除table表数据 +// sarFileSplitItemsTableEODao.deleteTableByMenuIds(idList); +// //删除items表数据 +// SarFileSplitItemsEO sarFileSplitItemsEO = new SarFileSplitItemsEO(); +// sarFileSplitItemsEO.setInfoIdList(infoIds); +// sarFileSplitItemsEODao.deleteByIds(sarFileSplitItemsEO); +// //删除params表数据 +// sarFileSplitItemsParamsEODao.deleteByInfoIds(idList); +// //删除收藏表中数据 +// personCollectEODao.deleteByResIdList(idList); +//// // 删除分享表中数据 +//// personShareEODao.deleteByResIdList(idList); +// return result; +// } +// +// //获取某一个段落中的所有图片索引 +// private List readImageInParagraph(XWPFParagraph paragraph) { +// //图片索引List +// List imageBundleList = new ArrayList(); +// +// //段落中所有XWPFRun +// List runList = paragraph.getRuns(); +// for (XWPFRun run : runList) { +// //XWPFRun是POI对xml元素解析后生成的自己的属性,无法通过xml解析,需要先转化成CTR +// CTR ctr = run.getCTR(); +// //对子元素进行遍历 +// XmlCursor c = ctr.newCursor(); +// //这个就是拿到所有的子元素: +// c.selectPath("./*"); +// while (c.toNextSelection()) { +// XmlObject o = c.getObject(); +// //如果子元素是这样的形式,使用CTDrawing保存图片 +// if (o instanceof CTDrawing) { +// CTDrawing drawing = (CTDrawing) o; +// CTInline[] ctInlines = drawing.getInlineArray(); +// CTAnchor[] ctAnchors = drawing.getAnchorArray(); +// for (CTInline ctInline : ctInlines) { +// CTGraphicalObject graphic = ctInline.getGraphic(); +// // +// XmlCursor cursor = graphic.getGraphicData().newCursor(); +// cursor.selectPath("./*"); +// while (cursor.toNextSelection()) { +// XmlObject xmlObject = cursor.getObject(); +// // 如果子元素是这样的形式 +// if (xmlObject instanceof CTPicture) { +// CTPicture picture = (CTPicture) xmlObject; +// //拿到元素的属性 +// imageBundleList.add(picture.getBlipFill().getBlip().getEmbed()); +// } +// } +// } +// for (CTAnchor ctAnchor : ctAnchors) { +// CTGraphicalObject graphic = ctAnchor.getGraphic(); +// XmlCursor cursor = graphic.getGraphicData().newCursor(); +// cursor.selectPath("./*"); +// while (cursor.toNextSelection()) { +// XmlObject xmlObject = cursor.getObject(); +// // 如果子元素是这样的形式 +// if (xmlObject instanceof CTPicture) { +// CTPicture picture = (CTPicture) xmlObject; +// //拿到元素的属性 +// imageBundleList.add(picture.getBlipFill().getBlip().getEmbed()); +// } +// } +// } +// } else if (o instanceof CTLevelText){ +// System.out.println(((CTLevelText) o).getVal()); +// } +// } +// } +// return imageBundleList; +// } +// +// // 像每个条款中依次插入每一段的内容 +// public static void addItermsConditionsText(SarFileSplitItemsEO message,List 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); +// 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()); +// sarFileSplitItemsValEO.setCreationUser(LoginUserUtil.getUserId()); +// sarFileSplitItemsValEO.setModifyTime(new Date()); +// 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/pom.xml b/jero-boot/pom.xml index ac45354e5..b5f67892c 100644 --- a/jero-boot/pom.xml +++ b/jero-boot/pom.xml @@ -54,6 +54,7 @@ jero-boot-single-startup jero-boot-modules + jreo-boot-split