文档拆分条款-导出

This commit is contained in:
liyawei
2022-03-30 17:24:04 +08:00
parent 687d9ab1e0
commit ab752ccec6
13 changed files with 1328 additions and 97 deletions
@@ -903,6 +903,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
mapNew.put("value", fileInfo);
mapPut(cut, mapNew, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", areaName, null);
mapNew.put("count", fileInfos.size());
// TODO 添加标准分解单跳转
resultTemp.add(mapNew);
i++;
} else {
@@ -2066,7 +2067,17 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
+ " from oss_file of join buss_document_library bdl" + join.toString();
//查询条件
StringBuilder conditionSb = new StringBuilder("where 1 = 1 and of.file_name like '%.pdf%'");
StringBuilder conditionSb = new StringBuilder("where 1 = 1");
String type = parameter.get("type").toString();
if ("pdf".equals(type)) {
//查询条件
conditionSb.append("and of.file_name like '%.pdf%'");
} else if ("doc".equals(type)) {
//查询条件
conditionSb.append("and of.file_name like '%.doc%'");
}
//编码
String serialNumber = (String) parameter.get("serial_number");
@@ -1,29 +1,52 @@
package com.jero.modules.split.controller;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.modules.split.common.FileUnZip;
import com.jero.modules.split.common.SplitTableInfo;
import com.jero.modules.split.dto.SarFileSplitItemsImportDto;
import com.jero.modules.split.entity.SarFileSplitItemsEO;
import com.jero.modules.split.entity.SarFileSplitItemsValEO;
import com.jero.modules.split.service.IFileSplitItemsEOService;
import com.jero.modules.split.service.impl.FileSplitItemsEOServiceImpl;
import com.jero.modules.split.util.POIReadExcelToHtml;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import static com.jero.modules.split.util.ExcelUtil.checkObjAllFieldsIsNull;
/**
* @Author: liyawei
* @Description:
* @Date: Created in 17:59 2022/3/27
*/
@Slf4j
@RestController
@RequestMapping("/split/sarFileSplitItems")
@Api(tags = "文档拆分条款信息")
@@ -31,7 +54,11 @@ public class FileSplitItemsEOController extends JeroController<SarFileSplitItems
@Autowired
private FileSplitItemsEOServiceImpl fileSplitItemsEOService;
@Value(value = "${jero.path.upload}")
private String uploadpath;
@AutoLog(value = "分页查询")
@ApiOperation(value = "分页查询")
@PostMapping("/getSplitItemsByPage")
public Result<IPage> page(@RequestBody Map<String, Object> parameter) throws Exception {
@@ -39,17 +66,27 @@ public class FileSplitItemsEOController extends JeroController<SarFileSplitItems
return Result.OK(infoPage);
}
@AutoLog(value = "新增")
@ApiOperation(value = "新增")
@PostMapping("/addSplitItems")
public Result<?> addSplitItems(@RequestBody Map<String, Object> parameter) {
List<SarFileSplitItemsValEO> itemValEOList = (List<SarFileSplitItemsValEO>) parameter.get("itemValEOList");
if(CollectionUtils.isNotEmpty(itemValEOList)) {
List<SarFileSplitItemsValEO> itemValEOListNew = new ArrayList<>();
for (SarFileSplitItemsValEO itemsValEO : itemValEOList) {
itemsValEO.setItemContent(StringEscapeUtils.unescapeHtml4(itemsValEO.getItemContent()));
itemValEOListNew.add(itemsValEO);
List<SarFileSplitItemsValEO> itemValEOList = (List<SarFileSplitItemsValEO>) parameter.get("itemValEOList");
if (CollectionUtils.isNotEmpty(itemValEOList)) {
List<SarFileSplitItemsValEO> valEOList = new ArrayList<>();
for (Object object : itemValEOList) {
String jsonStr = JSON.toJSONString(object);
SarFileSplitItemsValEO itemValEO = JSONObject.parseObject(jsonStr, SarFileSplitItemsValEO.class);
valEOList.add(itemValEO);
}
if (CollectionUtils.isNotEmpty(valEOList)) {
List<SarFileSplitItemsValEO> itemValEOListNew = new ArrayList<>();
for (SarFileSplitItemsValEO itemsValEO : valEOList) {
itemsValEO.setItemContent(StringEscapeUtils.unescapeHtml4(itemsValEO.getItemContent()));
itemValEOListNew.add(itemsValEO);
}
parameter.put("itemValEOList", itemValEOListNew);
}
parameter.put("itemValEOList",itemValEOListNew);
}
int resultCount = fileSplitItemsEOService.addItemContent(parameter);
if (resultCount > 0) {
@@ -59,17 +96,27 @@ public class FileSplitItemsEOController extends JeroController<SarFileSplitItems
}
}
@AutoLog(value = "编辑")
@ApiOperation(value = "编辑")
@PostMapping("/updateSplitItems")
public Result<?> updateSplitItems(@RequestBody Map<String, Object> parameter) {
List<SarFileSplitItemsValEO> itemValEOList = (List<SarFileSplitItemsValEO>) parameter.get("itemValEOList");
if(CollectionUtils.isNotEmpty(itemValEOList)) {
List<SarFileSplitItemsValEO> itemValEOListNew = new ArrayList<>();
for (SarFileSplitItemsValEO itemsValEO : itemValEOList) {
itemsValEO.setItemContent(StringEscapeUtils.unescapeHtml4(itemsValEO.getItemContent()));
itemValEOListNew.add(itemsValEO);
List<SarFileSplitItemsValEO> itemValEOList = (List<SarFileSplitItemsValEO>) parameter.get("itemValEOList");
if (CollectionUtils.isNotEmpty(itemValEOList)) {
List<SarFileSplitItemsValEO> valEOList = new ArrayList<>();
for (Object object : itemValEOList) {
String jsonStr = JSON.toJSONString(object);
SarFileSplitItemsValEO itemValEO = JSONObject.parseObject(jsonStr, SarFileSplitItemsValEO.class);
valEOList.add(itemValEO);
}
if (CollectionUtils.isNotEmpty(valEOList)) {
List<SarFileSplitItemsValEO> itemValEOListNew = new ArrayList<>();
for (SarFileSplitItemsValEO itemsValEO : valEOList) {
itemsValEO.setItemContent(StringEscapeUtils.unescapeHtml4(itemsValEO.getItemContent()));
itemValEOListNew.add(itemsValEO);
}
parameter.put("itemValEOList", itemValEOListNew);
}
parameter.put("itemValEOList",itemValEOListNew);
}
int resultCount = fileSplitItemsEOService.updateItemContent(parameter);
if (resultCount > 0) {
@@ -79,6 +126,7 @@ public class FileSplitItemsEOController extends JeroController<SarFileSplitItems
}
}
@AutoLog(value = "批量删除")
@ApiOperation(value = "批量删除")
@PostMapping("/batchDeleteItems")
public Result batchDeleteItems(String ids) {
@@ -94,12 +142,166 @@ public class FileSplitItemsEOController extends JeroController<SarFileSplitItems
}
}
@ApiOperation(value = "文档拆分条款信息-判断包含子节点Y")
@GetMapping("/judgeContaintChilds")
/*@RequiresPermissions("lawss:sarMenu:judgequeryMenuByPid")*/
public Result<Map<String, Object>> judgeContaintChilds(String ids) {
Map<String, Object> result = fileSplitItemsEOService.judgeContaintChilds(ids);
@AutoLog(value = "批量设置表单中英文切换")
@ApiOperation(value="批量设置表单中英文切换", notes="批量设置表单中英文切换")
@GetMapping(value = "/getBatchSetForm")
public Result<List<Map<String, Object>>> getBatchSetForm(@RequestParam(name = "flag") String flag,
@RequestParam(name = "cut") String cut) {
List<Map<String, Object>> list = fileSplitItemsEOService.getBatchSetForm(flag, cut);
return Result.OK(list);
}
@AutoLog(value = "文档拆分条款信息-判断包含子节点")
@ApiOperation(value = "文档拆分条款信息-判断包含子节点")
@GetMapping("/judgeContainChilds")
public Result<Map<String, Object>> judgeContainChilds(String ids) {
Map<String, Object> result = fileSplitItemsEOService.judgeContainChilds(ids);
return Result.OK(result);
}
@AutoLog(value = "文档拆分条款信息-批量合并")
@ApiOperation(value = "文档拆分条款信息-批量合并")
@GetMapping("/batchMergeItems")
public Result<Map<String, Object>> batchMergeItems(String ids) {
Map<String, Object> result = fileSplitItemsEOService.batchMergeItems(ids);
return Result.OK("合并成功", result);
}
@AutoLog(value = "文档拆分条款信息-批量设置")
@ApiOperation(value = "文档拆分条款信息-批量设置")
@PostMapping("/batchSet")
public Result<?> batchSet(@RequestBody Map<String, Object> parameter) {
int result = fileSplitItemsEOService.batchSet(parameter); // ids, technology_territory, function_territory, information_category
return Result.OK("设置成功", result);
}
@AutoLog(value = "模板下载")
@ApiOperation(value = "模板下载")
@GetMapping(value = "/exportTemplate")
public void exportTemplate(@RequestParam(name = "cut") String cut, HttpServletResponse response, HttpServletRequest request) throws Exception {
fileSplitItemsEOService.exportTemplate(cut,response,request);
}
@ApiOperation(value = "文档拆分条款信息-导出")
@GetMapping(value = "/exportSplitInfoZip")
public void exportSplitInfoZip(@RequestParam(value = "cut") String cut,
@RequestParam(value = "idList", required = false) String idList,
@RequestParam(value = "infoId") String infoId,
@RequestParam(value = "exportName", required = false) String exportName,
HttpServletResponse response,
HttpServletRequest request) {
fileSplitItemsEOService.exportSplitInfo(cut, idList, infoId, exportName, response, request);
}
@AutoLog(value = "文档拆分条款信息-导入")
@ApiOperation(value = "文档拆分条款信息-导入")
@PostMapping(value = "/importSplitItems")
public Result<?> importSplitItems( MultipartFile file,
@RequestParam(value = "cut") String cut,
@RequestParam(value = "menuId") String menuId,
@RequestParam(value = "infoId") String infoId) throws Exception {
//验证文件名是否合格
/* 截取后缀名 */
int pos = file.getOriginalFilename().lastIndexOf(".");
String str = file.getOriginalFilename().substring(pos+1).toLowerCase();
String filenameorg = file.getOriginalFilename().substring(0,pos);
//判断上传文件必须是zip
// TODO 允许导入rar
if (!str.equals("zip")) {
return Result.error("请上传zip文件");
}
String path = uploadpath + "/modal/"+filenameorg;
File saveDirectory = new File(path);
if(!saveDirectory.isDirectory()){
saveDirectory.mkdir();
}
FileUtils.copyInputStreamToFile(file.getInputStream(), new File(path +"/"+ file.getOriginalFilename()));
try{
//解压缩
String zipEntryName = FileUnZip.unZipFiles(path +"/"+ file.getOriginalFilename(),path);
// 数据相关处理,
// 1.获取其中的Excel,
List<File> excelfilelist = FileUnZip.readExcelFile(zipEntryName);
if(excelfilelist.size()<1){
//删除原上传文件
FileUnZip.deleteDir(saveDirectory);
return Result.error("压缩包内没有上传Excel数据");
} else if (excelfilelist.size()>1) {
//删除原上传文件
FileUnZip.deleteDir(saveDirectory);
return Result.error("压缩包内有多个Excel数据源");
}
File excelfile = excelfilelist.get(0);
// 导入参数设置,默认即可
ImportParams params = new ImportParams();
try {
// 导入表头
String fields[] = {"条款号", "条款名称","条款内容","新车型实施日期",
"在产车实施日期","关联零部件","适用车型","引用标准","备注","关联文件"};
params.setImportFields(fields);
List<Map<String, Object>> result = new ArrayList<>();
// 解析excel,并返回校验信息
result = ExcelImportUtil.importExcel(excelfile, SarFileSplitItemsImportDto.class, params);
Long getExcelInfo = System.currentTimeMillis();
//excel读取到的数据
List<Map<String, Object>> datas = result;
if(datas!=null &&!datas.isEmpty()){
try {
//获取全部sheet页中表格
XSSFWorkbook workbook=new XSSFWorkbook(new FileInputStream(excelfile));
XSSFSheet sheet=null;
List<SplitTableInfo> getSheetTableList = new ArrayList();
for (int i = 1; i < workbook.getNumberOfSheets(); i++) {//获取每个Sheet表
sheet = workbook.getSheetAt(i);
SplitTableInfo splitTableInfo = new SplitTableInfo();
splitTableInfo.setTableName(sheet.getSheetName());
String tableHtml = POIReadExcelToHtml.readExcelToHtml(workbook,i,false);
splitTableInfo.setTableHtml(tableHtml);
getSheetTableList.add(splitTableInfo);
}
int i = 0 ;
List<Map<String, Object>> datasUpdate = new ArrayList<>();
//2019.05.14 当读取exceL出现空行过多时,空行数为20以上时中断读取,将数据清洗为新的list
for(Map<String, Object> sarStandImportDto :datas){
if(i>20){
break;
}
//判断此行数据是否全部为空
if(checkObjAllFieldsIsNull(sarStandImportDto)){
i++;
//是则不读取
continue;
}
i = 0;
datasUpdate.add(sarStandImportDto);
}
String unzipfilepath = zipEntryName;
Result<?> message = fileSplitItemsEOService.importSplitItems(datasUpdate,menuId,unzipfilepath,infoId,getSheetTableList);
//删除原上传文件
FileUnZip.deleteDir(saveDirectory);
return message;
} catch (Exception e) {
//删除原上传文件
FileUnZip.deleteDir(saveDirectory);
return Result.error(e.getMessage());
}
}else{
//删除原上传文件
FileUnZip.deleteDir(saveDirectory);
return Result.error("没有可导入的数据,请检查!");
}
} catch (NoSuchElementException e){
FileUnZip.deleteDir(saveDirectory);
return Result.error("没有可导入的数据,请检查!");
} catch (Exception e) {
//删除原上传文件
FileUnZip.deleteDir(saveDirectory);
return Result.error( "读取失败,请严格按照模板文件导入数据");
}
} catch (Exception e) {
//删除原上传文件
FileUnZip.deleteDir(saveDirectory);
return Result.error("读取失败,请严格按照模板文件导入数据");
}
}
}
@@ -52,7 +52,13 @@ public interface FileSplitItemsEOMapper extends BaseMapper<SarFileSplitItemsEO>
List<Map<String, Object>> queryByItemsIds(@Param("idList") List<String> idList);
List<Map<String, Object>> queryItemByIds(@Param("idList") List<String> idList);
List<Map<String, Object>> queryItemsByMenuId(@Param("menuId") String menuId);
int deleteByItemsIdList(@Param("idList") List<String> idList);
List<Map<String, Object>> queryByOrdersForExport(@Param("field") String field,
@Param("idList")List<String> idList,
@Param("infoId") String infoId);
}
@@ -25,6 +25,8 @@ public interface SarFileSplitItemsValEOMapper extends BaseMapper<SarFileSplitIte
int updateForeach(List<SarFileSplitItemsValEO> list);
int updateForeach2(@Param("list") List<SarFileSplitItemsValEO> list);
int deleteValByInfoIds(@Param("idList") List<String> idList);
int deleteValByitemIds(@Param("idList") List<String> idList);
@@ -68,5 +68,6 @@ public interface SarFileSplitMenuEOMapper extends BaseMapper<SarFileSplitMenuEO>
List<SarFileSplitMenuEO> queryByPage(SarFileSplitMenuEOPage page);
List<String> getAllChildrenId(String menuId);
List<SarFileSplitMenuEO> selectBatchIds(@Param("idList") List<String> idList);
}
@@ -57,6 +57,18 @@
group by menu_id
</select>
<select id="queryItemByIds" resultType="java.util.LinkedHashMap" parameterType="java.util.List">
select SAR_FILE_SPLIT_ITEMS.* from SAR_FILE_SPLIT_ITEMS
left join SAR_FILE_SPLIT_MENU on SAR_FILE_SPLIT_ITEMS.MENU_ID = SAR_FILE_SPLIT_MENU.id
where SAR_FILE_SPLIT_ITEMS.id in
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
order by SAR_FILE_SPLIT_MENU.display_seq ASC
</select>
<!--group by SAR_FILE_SPLIT_ITEMS.menu_id-->
<delete id="deleteByItemsIdList" parameterType="java.util.List">
delete from SAR_FILE_SPLIT_ITEMS
where id in
@@ -64,4 +76,18 @@
#{item}
</foreach>
</delete>
<select id="queryByOrdersForExport" resultType="java.util.LinkedHashMap">
select sar_file_split_items.id,${field}
from sar_file_split_items
left join SAR_FILE_SPLIT_MENU on sar_file_split_items.MENU_ID = SAR_FILE_SPLIT_MENU.id
where 1=1 and sar_file_split_items.info_id = #{infoId}
<if test="idList != null">
and sar_file_split_items.id in
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
order by SAR_FILE_SPLIT_MENU.display_seq ASC
</select>
</mapper>
@@ -39,9 +39,9 @@
</resultMap>
<!-- SAR_FILE_SPLIT_ITEMS table all fields -->
<!-- sar_file_split_items_0329 table all fields -->
<sql id="Base_Column_List" >
SAR_FILE_SPLIT_ITEMS.id, SAR_FILE_SPLIT_ITEMS.info_id, SAR_FILE_SPLIT_ITEMS.items_num, items_name, iterms_conditions, newcar_put_time, product_put_time, menu_id, function_territory, apply_arctic, reference_stand, information_category, relevance_file, SAR_FILE_SPLIT_ITEMS.technology_territory, SAR_FILE_SPLIT_ITEMS.valid_flag, SAR_FILE_SPLIT_ITEMS.creation_user, SAR_FILE_SPLIT_ITEMS.creation_time, SAR_FILE_SPLIT_ITEMS.modify_time, SAR_FILE_SPLIT_ITEMS.modify_user,SAR_FILE_SPLIT_ITEMS.iss_force
sar_file_split_items_0329.id, sar_file_split_items_0329.info_id, sar_file_split_items_0329.items_num, items_name, iterms_conditions, newcar_put_time, product_put_time, menu_id, function_territory, apply_arctic, reference_stand, information_category, relevance_file, sar_file_split_items_0329.technology_territory, sar_file_split_items_0329.valid_flag, sar_file_split_items_0329.creation_user, sar_file_split_items_0329.creation_time, sar_file_split_items_0329.modify_time, sar_file_split_items_0329.modify_user,sar_file_split_items_0329.iss_force
</sql>
<!-- 查询条件 -->
@@ -49,37 +49,37 @@
where 1=1
<trim suffixOverrides="," >
<if test="id != null" >
and SAR_FILE_SPLIT_ITEMS.id ${idOperator} #{id}
and sar_file_split_items_0329.id ${idOperator} #{id}
</if>
<if test="infoId != null" >
and SAR_FILE_SPLIT_ITEMS.info_id ${infoIdOperator} #{infoId}
and sar_file_split_items_0329.info_id ${infoIdOperator} #{infoId}
</if>
<if test="itemsNum != null" >
and SAR_FILE_SPLIT_ITEMS.items_num ${itemsNumOperator} #{itemsNum}
and sar_file_split_items_0329.items_num ${itemsNumOperator} #{itemsNum}
</if>
<if test="itemsName != null" >
and SAR_FILE_SPLIT_ITEMS.items_name ${itemsNameOperator} #{itemsName}
and sar_file_split_items_0329.items_name ${itemsNameOperator} #{itemsName}
</if>
<if test="itermsConditions != null" >
and SAR_FILE_SPLIT_ITEMS.iterms_conditions ${itermsConditionsOperator} #{itermsConditions}
and sar_file_split_items_0329.iterms_conditions ${itermsConditionsOperator} #{itermsConditions}
</if>
<if test="newcarPutTime != null" >
and SAR_FILE_SPLIT_ITEMS.newcar_put_time ${newcarPutTimeOperator} #{newcarPutTime}
and sar_file_split_items_0329.newcar_put_time ${newcarPutTimeOperator} #{newcarPutTime}
</if>
<if test="newcarPutTime1 != null" >
and SAR_FILE_SPLIT_ITEMS.newcar_put_time &gt;= #{newcarPutTime1}
and sar_file_split_items_0329.newcar_put_time &gt;= #{newcarPutTime1}
</if>
<if test="newcarPutTime2 != null" >
and SAR_FILE_SPLIT_ITEMS.newcar_put_time &lt;= #{newcarPutTime2}
and sar_file_split_items_0329.newcar_put_time &lt;= #{newcarPutTime2}
</if>
<if test="productPutTime != null" >
and SAR_FILE_SPLIT_ITEMS.product_put_time ${productPutTimeOperator} #{productPutTime}
and sar_file_split_items_0329.product_put_time ${productPutTimeOperator} #{productPutTime}
</if>
<if test="productPutTime1 != null" >
and SAR_FILE_SPLIT_ITEMS.product_put_time &gt;= #{productPutTime1}
and sar_file_split_items_0329.product_put_time &gt;= #{productPutTime1}
</if>
<if test="productPutTime2 != null" >
and SAR_FILE_SPLIT_ITEMS.product_put_time &lt;= #{productPutTime2}
and sar_file_split_items_0329.product_put_time &lt;= #{productPutTime2}
</if>
<if test="sMenuId != null" >
and menu_id = #{sMenuId}
@@ -100,34 +100,34 @@
and relevance_file ${relevanceFileOperator} #{relevanceFile}
</if>
<if test="technologyTerritory != null" >
and SAR_FILE_SPLIT_ITEMS.technology_territory ${technologyTerritoryOperator} #{technologyTerritory}
and sar_file_split_items_0329.technology_territory ${technologyTerritoryOperator} #{technologyTerritory}
</if>
<if test="validFlag != null" >
and SAR_FILE_SPLIT_ITEMS.valid_flag ${validFlagOperator} #{validFlag}
and sar_file_split_items_0329.valid_flag ${validFlagOperator} #{validFlag}
</if>
<if test="creationUser != null" >
and SAR_FILE_SPLIT_ITEMS.creation_user ${creationUserOperator} #{creationUser}
and sar_file_split_items_0329.creation_user ${creationUserOperator} #{creationUser}
</if>
<if test="creationTime != null" >
and SAR_FILE_SPLIT_ITEMS.creation_time ${creationTimeOperator} #{creationTime}
and sar_file_split_items_0329.creation_time ${creationTimeOperator} #{creationTime}
</if>
<if test="creationTime1 != null" >
and SAR_FILE_SPLIT_ITEMS.creation_time &gt;= #{creationTime1}
and sar_file_split_items_0329.creation_time &gt;= #{creationTime1}
</if>
<if test="creationTime2 != null" >
and SAR_FILE_SPLIT_ITEMS.creation_time &lt;= #{creationTime2}
and sar_file_split_items_0329.creation_time &lt;= #{creationTime2}
</if>
<if test="modifyTime != null" >
and SAR_FILE_SPLIT_ITEMS.modify_time ${modifyTimeOperator} #{modifyTime}
and sar_file_split_items_0329.modify_time ${modifyTimeOperator} #{modifyTime}
</if>
<if test="modifyTime1 != null" >
and SAR_FILE_SPLIT_ITEMS.modify_time &gt;= #{modifyTime1}
and sar_file_split_items_0329.modify_time &gt;= #{modifyTime1}
</if>
<if test="modifyTime2 != null" >
and SAR_FILE_SPLIT_ITEMS.modify_time &lt;= #{modifyTime2}
and sar_file_split_items_0329.modify_time &lt;= #{modifyTime2}
</if>
<if test="modifyUser != null" >
and SAR_FILE_SPLIT_ITEMS.modify_user ${modifyUserOperator} #{modifyUser}
and sar_file_split_items_0329.modify_user ${modifyUserOperator} #{modifyUser}
</if>
</trim>
</sql>
@@ -135,18 +135,18 @@
<!-- 插入记录 -->
<insert id="insert" parameterType="com.jero.modules.split.entity.SarFileSplitItemsEO" >
<!-- <selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
SELECT SEQ_SAR_FILE_SPLIT_ITEMS.NEXTVAL FROM DUAL
SELECT SEQ_sar_file_split_items_0329.NEXTVAL FROM DUAL
</selectKey> -->
insert into SAR_FILE_SPLIT_ITEMS(<include refid="Base_Column_List" />)
insert into sar_file_split_items_0329(<include refid="Base_Column_List" />)
values (#{id, jdbcType=VARCHAR}, #{infoId, jdbcType=VARCHAR}, #{itemsNum, jdbcType=VARCHAR}, #{itemsName, jdbcType=VARCHAR}, #{itermsConditions, jdbcType=CLOB}, #{newcarPutTime, jdbcType=TIMESTAMP}, #{productPutTime, jdbcType=TIMESTAMP}, #{menuId, jdbcType=VARCHAR}, #{functionTerritory, jdbcType=VARCHAR}, #{applyArctic, jdbcType=VARCHAR}, #{referenceStand, jdbcType=VARCHAR}, #{informationCategory, jdbcType=VARCHAR}, #{relevanceFile, jdbcType=VARCHAR}, #{technologyTerritory, jdbcType=VARCHAR}, #{validFlag, jdbcType=INTEGER}, #{creationUser, jdbcType=VARCHAR}, #{creationTime, jdbcType=TIMESTAMP}, #{modifyTime, jdbcType=TIMESTAMP}, #{modifyUser, jdbcType=VARCHAR})
</insert>
<!-- 动态插入记录 主键是序列 -->
<insert id="insertSelective" parameterType="com.jero.modules.split.entity.SarFileSplitItemsEO" >
<!-- <selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
SELECT SEQ_SAR_FILE_SPLIT_ITEMS.NEXTVAL FROM DUAL
SELECT SEQ_sar_file_split_items_0329.NEXTVAL FROM DUAL
</selectKey> -->
insert into SAR_FILE_SPLIT_ITEMS
insert into sar_file_split_items_0329
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >id,</if>
<if test="infoId != null" >info_id,</if>
@@ -195,7 +195,7 @@
<!-- 根据pk,修改记录-->
<update id="updateByPrimaryKey" parameterType="com.jero.modules.split.entity.SarFileSplitItemsEO" >
update SAR_FILE_SPLIT_ITEMS
update sar_file_split_items_0329
set info_id = #{infoId},
items_num = #{itemsNum},
items_name = #{itemsName},
@@ -219,7 +219,7 @@
<!-- 修改记录,只修改只不为空的字段 -->
<update id="updateByPrimaryKeySelective" parameterType="com.jero.modules.split.entity.SarFileSplitItemsEO" >
update SAR_FILE_SPLIT_ITEMS
update sar_file_split_items_0329
<set >
<if test="infoId != null" >
info_id = #{infoId},
@@ -288,27 +288,27 @@
where id = #{id}
</update>
<!-- 根据id查询 SAR_FILE_SPLIT_ITEMS -->
<!-- 根据id查询 sar_file_split_items_0329 -->
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String">
select <include refid="Base_Column_List" />
from SAR_FILE_SPLIT_ITEMS
from sar_file_split_items_0329
where id = #{value}
</select>
<!-- 删除记录 -->
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from SAR_FILE_SPLIT_ITEMS
delete from sar_file_split_items_0329
where id = #{value}
</delete>
<!-- SAR_FILE_SPLIT_ITEMS 列表总数-->
<!-- sar_file_split_items_0329 列表总数-->
<select id="queryByCount" resultType="java.lang.Integer" parameterType="com.jero.modules.split.common.BasePage">
select count(1) from SAR_FILE_SPLIT_ITEMS
select count(1) from sar_file_split_items_0329
<include refid="Base_Where_Clause"/>
<if test="menuId != null">
and SAR_FILE_SPLIT_ITEMS.MENU_ID in (
and sar_file_split_items_0329.MENU_ID in (
SELECT m.id
FROM SAR_FILE_SPLIT_MENU m,( SELECT ( @nodes := querySplitMenuChildren (#{menuId})) AS pids ) t
WHERE
@@ -318,14 +318,14 @@
</if>
</select>
<!-- 查询SAR_FILE_SPLIT_ITEMS列表 -->
<!-- 查询sar_file_split_items_0329列表 -->
<select id="queryByPage" resultMap="BaseResultMap" parameterType="com.jero.modules.split.page.SarFileSplitItemsEOPage">
select tmp_tb.* from
(select <include refid="Base_Column_List" /> from SAR_FILE_SPLIT_ITEMS
left join SAR_FILE_SPLIT_MENU on SAR_FILE_SPLIT_ITEMS.MENU_ID = SAR_FILE_SPLIT_MENU.id
(select <include refid="Base_Column_List" /> from sar_file_split_items_0329
left join SAR_FILE_SPLIT_MENU on sar_file_split_items_0329.MENU_ID = SAR_FILE_SPLIT_MENU.id
<include refid="Base_Where_Clause"/>
<if test="menuId != null">
and SAR_FILE_SPLIT_ITEMS.MENU_ID in (
and sar_file_split_items_0329.MENU_ID in (
SELECT m.id
FROM SAR_FILE_SPLIT_MENU m,( SELECT ( @nodes := querySplitMenuChildren (#{menuId})) AS pids ) t
WHERE
@@ -340,10 +340,10 @@
</select>
<select id="queryByList2" resultMap="BaseResultMap" parameterType="com.jero.modules.split.page.SarFileSplitItemsEOPage">
select <include refid="Base_Column_List" /> from SAR_FILE_SPLIT_ITEMS left join SAR_FILE_SPLIT_MENU on SAR_FILE_SPLIT_ITEMS.MENU_ID = SAR_FILE_SPLIT_MENU.id
select <include refid="Base_Column_List" /> from sar_file_split_items_0329 left join SAR_FILE_SPLIT_MENU on sar_file_split_items_0329.MENU_ID = SAR_FILE_SPLIT_MENU.id
<include refid="Base_Where_Clause"/>
<if test="menuId != null">
and SAR_FILE_SPLIT_ITEMS.MENU_ID in (
and sar_file_split_items_0329.MENU_ID in (
SELECT m.id
FROM SAR_FILE_SPLIT_MENU m,( SELECT ( @nodes := querySplitMenuChildren (#{menuId})) AS pids ) t
WHERE
@@ -357,7 +357,7 @@
</select>
<select id="queryByList" resultMap="BaseResultMap" parameterType="com.jero.modules.split.common.BasePage">
select <include refid="Base_Column_List"/> from SAR_FILE_SPLIT_ITEMS
select <include refid="Base_Column_List"/> from sar_file_split_items_0329
<include refid="Base_Where_Clause"/>
<if test="pager.orderCondition != null and pager.orderCondition != ''" >
${pager.orderCondition}
@@ -369,7 +369,7 @@
<insert id="insertForeach" parameterType="java.util.List">
begin
<foreach collection="list" item="item" index="index" separator=";">
insert into SAR_FILE_SPLIT_ITEMS
insert into sar_file_split_items_0329
(id, info_id, items_num, items_name, newcar_put_time, product_put_time, menu_id, function_territory, apply_arctic, reference_stand, information_category, relevance_file, technology_territory, valid_flag, creation_user, creation_time, modify_time,
modify_user, iterms_conditions)
values (
@@ -388,7 +388,7 @@
</insert>
<delete id="deleteByIds" parameterType="com.jero.modules.split.entity.SarFileSplitItemsEO">
delete from SAR_FILE_SPLIT_ITEMS
delete from sar_file_split_items_0329
where info_id in
<foreach collection="infoIdList" index="index" item="item" open="(" separator="," close=")">
#{item}
@@ -396,7 +396,7 @@
</delete>
<delete id="deleteByItemsIds" parameterType="com.jero.modules.split.entity.SarFileSplitItemsEO">
delete from SAR_FILE_SPLIT_ITEMS
delete from sar_file_split_items_0329
where id in
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
#{item}
@@ -404,7 +404,7 @@
</delete>
<delete id="deleteByMenuIds" parameterType="java.util.List">
delete from SAR_FILE_SPLIT_ITEMS
delete from sar_file_split_items_0329
where menu_id in
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
#{item}
@@ -413,9 +413,9 @@
<!-- 通过menuid 查询目录下所有的条目 -->
<select id="queryItemsByMenuId" resultMap="BaseResultMap" parameterType="com.jero.modules.split.common.BasePage">
select <include refid="Base_Column_List"/> from SAR_FILE_SPLIT_ITEMS
left join SAR_FILE_SPLIT_MENU on SAR_FILE_SPLIT_ITEMS.MENU_ID = SAR_FILE_SPLIT_MENU.id
where SAR_FILE_SPLIT_ITEMS.valid_flag = '0' and menu_id in (
select <include refid="Base_Column_List"/> from sar_file_split_items_0329
left join SAR_FILE_SPLIT_MENU on sar_file_split_items_0329.MENU_ID = SAR_FILE_SPLIT_MENU.id
where sar_file_split_items_0329.valid_flag = '0' and menu_id in (
SELECT m.id
FROM SAR_FILE_SPLIT_MENU m,( SELECT ( @nodes := querySplitMenuChildren (#{menuId})) AS pids ) t
WHERE
@@ -426,7 +426,7 @@
</select>
<select id="queryByItemsIds" resultMap="BaseResultMap" parameterType="com.jero.modules.split.entity.SarFileSplitItemsEO">
select menu_id from SAR_FILE_SPLIT_ITEMS
select menu_id from sar_file_split_items_0329
where id in
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
#{item}
@@ -435,7 +435,7 @@
</select>
<delete id="deleteByItemsIdList" parameterType="java.util.List">
delete from SAR_FILE_SPLIT_ITEMS
delete from sar_file_split_items_0329
where id in
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
#{item}
@@ -443,14 +443,14 @@
</delete>
<select id="queryByOrdersForExport" resultMap="BaseResultMapExport" parameterType="com.jero.modules.split.page.SarFileSplitItemsEOPage">
select SAR_FILE_SPLIT_ITEMS.id,SAR_FILE_SPLIT_ITEMS.items_num,SAR_FILE_SPLIT_ITEMS.items_name,
newcar_put_time,product_put_time,function_territory,apply_arctic,reference_stand,SAR_FILE_SPLIT_ITEMS.technology_territory,
select sar_file_split_items_0329.id,sar_file_split_items_0329.items_num,sar_file_split_items_0329.items_name,
newcar_put_time,product_put_time,function_territory,apply_arctic,reference_stand,sar_file_split_items_0329.technology_territory,
relevance_file
from SAR_FILE_SPLIT_ITEMS
left join SAR_FILE_SPLIT_MENU on SAR_FILE_SPLIT_ITEMS.MENU_ID = SAR_FILE_SPLIT_MENU.id
from sar_file_split_items_0329
left join SAR_FILE_SPLIT_MENU on sar_file_split_items_0329.MENU_ID = SAR_FILE_SPLIT_MENU.id
<include refid="Base_Where_Clause"/>
<if test="menuId != null">
and SAR_FILE_SPLIT_ITEMS.MENU_ID in (
and sar_file_split_items_0329.MENU_ID in (
SELECT m.id
FROM SAR_FILE_SPLIT_MENU m,( SELECT ( @nodes := querySplitMenuChildren (#{menuId})) AS pids ) t
WHERE
@@ -459,7 +459,7 @@
)
</if>
<if test="idList != null">
and SAR_FILE_SPLIT_ITEMS.id in
and sar_file_split_items_0329.id in
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
@@ -225,11 +225,10 @@
<!-- 批量插入接口 -->
<insert id="insertForeach" parameterType="java.util.List">
begin
<foreach collection="list" item="item" index="index" separator=";">
insert into SAR_FILE_SPLIT_ITEMS_VAL
(id, type, item_id, valid_flag, creation_user, creation_time, modify_time, modify_user, display_seq, img_name, item_content, index_item)
values (
insert into SAR_FILE_SPLIT_ITEMS_VAL
(id, type, item_id, valid_flag, creation_user, creation_time, modify_time, modify_user, display_seq, img_name, item_content, index_item)
values
<foreach collection="list" item="item" index="index" separator=",">(
#{item.id, jdbcType=VARCHAR}, #{item.type, jdbcType=VARCHAR},
#{item.itemId, jdbcType=VARCHAR},
#{item.validFlag, jdbcType=INTEGER}, #{item.creationUser, jdbcType=VARCHAR},
@@ -239,9 +238,9 @@
#{item.itemContent, jdbcType=CLOB},
#{item.indexItem, jdbcType=INTEGER})
</foreach>
;end;
</insert>
<delete id="deleteValByInfoIds" parameterType="java.lang.String">
delete from SAR_FILE_SPLIT_ITEMS_VAL
where EXISTS (
@@ -263,7 +262,6 @@
</delete>
<update id="updateForeach" parameterType="java.util.List">
begin
<foreach collection="list" item="item" index="index" separator=";">
update SAR_FILE_SPLIT_ITEMS_VAL
<set >
@@ -274,8 +272,21 @@
index_item = #{item.indexItem, jdbcType=INTEGER},
</set>
where id = #{item.id, jdbcType=VARCHAR}
</foreach>
;end;
</foreach>;
</update>
<update id="updateForeach2" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" separator=";">
update SAR_FILE_SPLIT_ITEMS_VAL
<set >
item_id = #{item.itemId, jdbcType=VARCHAR},
item_content = #{item.itemContent, jdbcType=VARCHAR},
modify_time = #{item.modifyTime, jdbcType=TIMESTAMP},
modify_user = #{item.modifyUser, jdbcType=VARCHAR},
display_seq = #{item.displaySeq, jdbcType=INTEGER},
</set>
where id = #{item.id, jdbcType=VARCHAR}
</foreach>;
</update>
<delete id="deleteValByMenuIds" parameterType="java.lang.String">
@@ -342,5 +342,13 @@
</foreach>
</delete>
<select id="selectBatchIds" resultMap="BaseResultMap" parameterType="java.util.List">
select * from SAR_FILE_SPLIT_MENU
where id in
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper>
@@ -2,8 +2,18 @@ package com.jero.modules.split.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.common.api.vo.Result;
import com.jero.modules.split.common.SplitTableInfo;
import com.jero.modules.split.dto.FileSpiltValTableExportDto;
import com.jero.modules.split.dto.FileSplitValExportDto;
import com.jero.modules.split.dto.FileSplitValImgExportDto;
import com.jero.modules.split.entity.SarFileSplitItemsEO;
import com.jero.modules.split.entity.SarFileSplitItemsValEO;
import com.jero.modules.split.page.SarFileSplitItemsEOPage;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;
@@ -25,8 +35,31 @@ public interface IFileSplitItemsEOService extends IService<SarFileSplitItemsEO>
List<Map<String, Object>> queryCondition(String flag, String cut);
Map<String,Object> judgeContaintChilds(String ids);
Map<String,Object> judgeContainChilds(String ids);
Map<String,Object> selectByPrimaryKey(String id);
Map<String,Object> batchMergeItems(String ids);
int batchSet(Map<String,Object> parameter);
Result<?> importSplitItems(List<Map<String, Object>> list, String menuId, String filepath, String infoId, List<SplitTableInfo> getSheetTableList);
void exportTemplate(String cut, HttpServletResponse response, HttpServletRequest request);
List<Map<String, Object>> getBatchSetForm(String flag, String cut);
void filterMap(Map<String, Object> map);
List<Map<String, Object>> queryByOrdersForExport(String cut, String field, List<String> idList, String infoId);
void downLoadImgList(List<FileSplitValImgExportDto> allImgList,String fileNowPath) throws IOException;
void exportSplitInfo(String cut, String idList, String infoId,String exportName, HttpServletResponse response, HttpServletRequest request);
List<FileSplitValExportDto> combineItemValInfo(List<SarFileSplitItemsValEO> getValList,
List<FileSpiltValTableExportDto> allTableList,
List<FileSplitValImgExportDto> allImgList,
SarFileSplitItemsEOPage page);
}
@@ -2,12 +2,16 @@ package com.jero.modules.split.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.split.entity.SarFileSplitInfoEO;
import com.jero.modules.split.entity.SarFileSplitMenuEO;
import com.jero.modules.split.mapper.SarFileSplitInfoMapper;
import com.jero.modules.split.mapper.SarFileSplitMenuEOMapper;
import com.jero.modules.split.service.ISarFileSplitInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
* @Description: 文档拆分表
@@ -18,6 +22,8 @@ import java.util.List;
@Service
public class SarFileSplitInfoServiceImpl extends ServiceImpl<SarFileSplitInfoMapper, SarFileSplitInfoEO> implements ISarFileSplitInfoService {
@Autowired
private SarFileSplitMenuEOMapper sarFileSplitMenuEOMapper;
/**
* 保存
*
@@ -30,6 +36,15 @@ public class SarFileSplitInfoServiceImpl extends ServiceImpl<SarFileSplitInfoMap
sarFileSplitInfoEO.setCreateTime(now);
sarFileSplitInfoEO.setUpdateTime(now);
save(sarFileSplitInfoEO);
// 添加条款总目录 TODO 这块之后可能不会用到
SarFileSplitMenuEO sarFileSplitMenuEO = new SarFileSplitMenuEO();
sarFileSplitMenuEO.setName("总目录");
sarFileSplitMenuEO.setDisplaySeq(1L);
sarFileSplitMenuEO.setId(UUID.randomUUID().toString().replace("-", ""));
sarFileSplitMenuEO.setValidFlag(0);
sarFileSplitMenuEO.setCreationTime(new Date());
sarFileSplitMenuEO.setModifyTime(new Date());
sarFileSplitMenuEOMapper.insertSelective(sarFileSplitMenuEO);
}
/**
@@ -218,16 +218,21 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
Map<String, Object> parameter = new HashMap<>();
parameter.put("items_num", sarFileSplitMenuEO.getName());
parameter.put("items_name", sarFileSplitMenuEO.getItemName());
parameter.put("info_id", sarFileSplitMenuEO.getInfoId());
parameter.put("menu_id", sarFileSplitMenuEO.getId());
String itemId = UUID.randomUUID().toString().replace("-", "");
fileSplitItemsEOService.insertInfo(parameter, itemId);
// 之后的所有节点序号增加
SarFileSplitMenuEOPage page = new SarFileSplitMenuEOPage();
page.setPId(sarFileSplitMenuEO.getPId());
// page.setPId(sarFileSplitMenuEO.getPId());
page.setInfoId(sarFileSplitMenuEO.getInfoId());
page.setValidFlag("0");
page.setOrderBy("display_seq asc");
List<SarFileSplitMenuEO> getList = dao.queryByList(page);
if (getList != null && !getList.isEmpty()) {
for(SarFileSplitMenuEO menu : getList){
Long olgSeq = menu.getDisplaySeq();
if (olgSeq >= sarFileSplitMenuEO.getDisplaySeq()) {
if (olgSeq >= sarFileSplitMenuEO.getDisplaySeq() && !menu.getId().equals(sarFileSplitMenuEO.getId())) {
menu.setDisplaySeq(olgSeq + 1);
dao.updateByPrimaryKeySelective(menu);
}
@@ -410,6 +415,13 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
// SAR_FILE_ITEMS 添加数据,
String newItemId = UUID.randomUUID().toString().replace("-", "");
itemsMap.put("menu_id", sarMenuEO.getId());
itemsMap.remove("id");
itemsMap.remove("creation_user");
itemsMap.remove("creation_time");
itemsMap.remove("modify_user");
itemsMap.remove("modify_time");
itemsMap.remove("sys_org_code");
fileSplitItemsEOService.filterMap(itemsMap);
result += fileSplitItemsEOService.insertInfo(itemsMap, newItemId);
// SAR_FILE_ITEMS_VAL 添加数据,