合并分支 'dev_third_stage' 到 'master'

Dev third stage

查看合并请求 laws-nio/laws-weilai!131
This commit is contained in:
李雪涛
2022-08-09 20:31:08 +08:00
157 changed files with 7928 additions and 1480 deletions
@@ -1,28 +1,35 @@
package com.jero.modules.compare.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.compare.entity.SarFileCompareInfo;
import com.jero.modules.compare.service.ISarFileCompareInfoService;
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.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.generater.modules.online.cgform.entity.OnlCgformField;
import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl;
import com.jero.modules.compare.entity.SarFileCompareDetailVO;
import com.jero.modules.compare.entity.SarFileCompareInfo;
import com.jero.modules.compare.service.ISarFileCompareInfoService;
import com.jero.modules.docTranslation.enums.ReleaseConditionEnum;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
/**
@@ -38,6 +45,8 @@ import com.jero.common.aspect.annotation.AutoLog;
public class SarFileCompareInfoController extends JeroController<SarFileCompareInfo, ISarFileCompareInfoService> {
@Autowired
private ISarFileCompareInfoService sarFileCompareInfoService;
@Autowired
private OnlCgformFieldServiceImpl onlCgformFieldService;
/**
* 分页列表查询
@@ -51,16 +60,34 @@ public class SarFileCompareInfoController extends JeroController<SarFileCompareI
@AutoLog(value = "文档对比信息表-分页列表查询")
@ApiOperation(value = "文档对比信息表-分页列表查询", notes = "文档对比信息表-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(SarFileCompareInfo sarFileCompareInfo,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
public Result<?> queryPageList(SarFileCompareInfo sarFileCompareInfo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(name = "cut", defaultValue = "cn") String cut, HttpServletRequest req) {
QueryWrapper<SarFileCompareInfo> queryWrapper = QueryGenerator.initQueryWrapper(sarFileCompareInfo, req.getParameterMap());
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
queryWrapper.eq("create_by", sysUser.getUsername()).or().eq("release_state", ReleaseConditionEnum.DRAFT.getValue());
Page<SarFileCompareInfo> page = new Page<SarFileCompareInfo>(pageNo, pageSize);
IPage<SarFileCompareInfo> pageList = sarFileCompareInfoService.page(page, queryWrapper);
for (SarFileCompareInfo info : pageList.getRecords()) {
info.setReleaseStateTitle(ReleaseConditionEnum.getTextByValue(info.getReleaseState(), cut));
info.setFileTypeLeft(getFileTypeText(info.getFileTypeLeft(), cut));
info.setFileTypeRight(getFileTypeText(info.getFileTypeRight(), cut));
}
return Result.OK(pageList);
}
private String getFileTypeText(String fileType, String cut) {
OnlCgformField fileTypeField = this.onlCgformFieldService.queryById(fileType);
if (ObjectUtil.isNotEmpty(fileTypeField)) {
if (CutEnum.CN.getValue().equals(cut)) {
return fileTypeField.getDbFieldTxt();
} else {
return fileTypeField.getDbFieldEnName();
}
}
return "";
}
/**
* 列表查询
*
@@ -174,13 +201,11 @@ public class SarFileCompareInfoController extends JeroController<SarFileCompareI
/**
* 发起文档对比
*
* @param leftStandard
* @param rightStandard
* @param remark
* @return
* @param json
* @return 对比详情ID
*/
@AutoLog(value = "发起文档对比")
@ApiOperation(value = "发起文档对比", notes = "发起文档对比")
@AutoLog(value = "文档对比信息表-发起文档对比")
@ApiOperation(value = "文档对比信息表-发起文档对比", notes = "文档对比信息表-发起文档对比")
@RequestMapping(value = "/fullTextComparison", method = RequestMethod.POST)
public Result<?> fullTextComparison(@RequestBody JSONObject json) {
try {
@@ -190,12 +215,55 @@ public class SarFileCompareInfoController extends JeroController<SarFileCompareI
if (json.get("remark") != null) {
remark = json.get("remark").toString();
}
Map<String, Object> resMap = sarFileCompareInfoService.fullTextComparison(leftStandard, rightStandard, remark);
return Result.OK(resMap);
String InfoId = sarFileCompareInfoService.fullTextComparison(leftStandard, rightStandard, remark);
return Result.OK(InfoId);
} catch (Exception ex) {
log.error("发起文档对比失败:" + ex.getMessage());
return Result.OK("发起文档对比失败!");
}
}
/**
* 更改发布状态
*
* @param sarFileCompareInfo
* @return
*/
@AutoLog(value = "文档对比信息表-更改发布状态")
@ApiOperation(value = "文档对比信息表-更改发布状态", notes = "文档对比信息表-更改发布状态")
@RequestMapping(value = "/changeState", method = RequestMethod.POST)
public Result<?> changeState(@Validated @RequestBody SarFileCompareInfo sarFileCompareInfo) {
SarFileCompareInfo info = sarFileCompareInfoService.queryById(sarFileCompareInfo.getId());
if (ReleaseConditionEnum.DRAFT.getValue().equals(sarFileCompareInfo.getReleaseState())) {
info.setReleaseState(ReleaseConditionEnum.PUBLISHED.getValue());
} else {
info.setReleaseState(ReleaseConditionEnum.DRAFT.getValue());
}
sarFileCompareInfoService.editById(info);
return Result.OK("更改成功!");
}
/**
* 求对比详情
*
* @return
*/
@AutoLog(value = "文档对比信息表-请求对比详情")
@ApiOperation(value = "文档对比信息表-请求对比详情", notes = "文档对比信息表-请求对比详情")
@RequestMapping(value = "/getComparisonDetail", method = RequestMethod.POST)
public Result<?> getComparisonDetail(@RequestBody JSONObject json) {
SarFileCompareDetailVO sarFileCompareDetailVO = sarFileCompareInfoService.getComparisonDetail(json.get("id").toString());
return Result.OK(sarFileCompareDetailVO);
}
@AutoLog(value = "文档对比信息表-编辑全文评论")
@ApiOperation(value = "文档对比信息表-编辑全文评论", notes = "文档对比信息表-编辑全文评论")
@PutMapping(value = "/editComments")
public Result<?> editComments(@Validated @RequestBody SarFileCompareInfo sarFileCompareInfo) {
SarFileCompareInfo info = sarFileCompareInfoService.getById(sarFileCompareInfo.getId());
info.setComments(sarFileCompareInfo.getComments());
sarFileCompareInfoService.editById(info);
return Result.OK("编辑评论成功!");
}
}
@@ -0,0 +1,173 @@
package com.jero.modules.compare.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.common.system.query.QueryGenerator;
import com.jero.modules.compare.entity.SarFileCompareItemComment;
import com.jero.modules.compare.entity.SarFileCompareResultVO;
import com.jero.modules.compare.service.ISarFileCompareItemCommentService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
/**
* @Description: 文档对比信息条款评论表
* @Author: jero-boot
* @Date: 2022-08-05
* @Version: V1.0
*/
@Api(tags = "文档对比信息条款评论表")
@RestController
@RequestMapping("/compare/sarFileCompareItemComment")
@Slf4j
public class SarFileCompareItemCommentController extends JeroController<SarFileCompareItemComment, ISarFileCompareItemCommentService> {
@Autowired
private ISarFileCompareItemCommentService sarFileCompareItemCommentService;
/**
* 分页列表查询
*
* @param sarFileCompareItemComment
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "文档对比信息条款评论表-分页列表查询")
@ApiOperation(value = "文档对比信息条款评论表-分页列表查询", notes = "文档对比信息条款评论表-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(SarFileCompareItemComment sarFileCompareItemComment,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<SarFileCompareItemComment> queryWrapper = QueryGenerator.initQueryWrapper(sarFileCompareItemComment, req.getParameterMap());
Page<SarFileCompareItemComment> page = new Page<SarFileCompareItemComment>(pageNo, pageSize);
IPage<SarFileCompareItemComment> pageList = sarFileCompareItemCommentService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "文档对比信息条款评论表-列表查询")
@ApiOperation(value = "文档对比信息条款评论表-列表查询", notes = "文档对比信息条款评论表-列表查询")
@GetMapping(value = "/list")
public Result<List<SarFileCompareItemComment>> queryList() {
List<SarFileCompareItemComment> list = sarFileCompareItemCommentService.queryList();
return Result.OK(list);
}
/**
* 添加
*
* @param sarFileCompareItemComment
* @return
*/
@AutoLog(value = "文档对比信息条款评论表-添加")
@ApiOperation(value = "文档对比信息条款评论表-添加", notes = "文档对比信息条款评论表-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody SarFileCompareItemComment sarFileCompareItemComment) {
sarFileCompareItemCommentService.add(sarFileCompareItemComment);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param sarFileCompareItemComment
* @return
*/
@AutoLog(value = "文档对比信息条款评论表-编辑")
@ApiOperation(value = "文档对比信息条款评论表-编辑", notes = "文档对比信息条款评论表-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody SarFileCompareItemComment sarFileCompareItemComment) {
sarFileCompareItemCommentService.editById(sarFileCompareItemComment);
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) {
sarFileCompareItemCommentService.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.sarFileCompareItemCommentService.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) {
SarFileCompareItemComment sarFileCompareItemComment = sarFileCompareItemCommentService.queryById(id);
if (sarFileCompareItemComment == null) {
return Result.error("未找到对应数据");
}
return Result.OK(sarFileCompareItemComment);
}
/**
* 查询对比结果
*
* @return
*/
@AutoLog(value = "文档对比信息条款评论表-查询对比结果")
@ApiOperation(value = "文档对比信息条款评论表-查询对比结果", notes = "文档对比信息条款评论表-查询对比结果")
@GetMapping(value = "/queryCompareResult")
public Result<SarFileCompareResultVO> queryCompareResult(@RequestParam(name = "infoId", required = true) String infoId) {
SarFileCompareResultVO res = sarFileCompareItemCommentService.queryCompareResult(infoId);
return Result.OK(res);
}
@AutoLog(value = "文档对比信息条款评论表-导出结果")
@ApiOperation(value = "文档对比信息条款评论表-导出结果", notes = "文档对比信息条款评论表-导出结果")
@GetMapping(value = "/exportResXls")
public Result<?> exportResXls(@RequestParam(name = "infoId", required = true) String infoId,
@RequestParam(name = "selectIds", required = true) String selectIds,
@RequestParam(name = "includeComments", required = true) boolean includeComments,
@RequestParam(name = "cut", required = true) String cut,
HttpServletResponse response) {
sarFileCompareItemCommentService.exportResXls(response, infoId, selectIds, includeComments, cut);
return Result.OK();
}
}
@@ -0,0 +1,170 @@
package com.jero.modules.compare.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.compare.entity.SarFileCompareMenu;
import com.jero.modules.compare.service.ISarFileCompareMenuService;
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: jero-boot
* @Date: 2022-08-03
* @Version: V1.0
*/
@Api(tags="文档对比信息目录表")
@RestController
@RequestMapping("/compare/sarFileCompareMenu")
@Slf4j
public class SarFileCompareMenuController extends JeroController<SarFileCompareMenu, ISarFileCompareMenuService> {
@Autowired
private ISarFileCompareMenuService sarFileCompareMenuService;
/**
* 分页列表查询
*
* @param sarFileCompareMenu
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "文档对比信息目录表-分页列表查询")
@ApiOperation(value="文档对比信息目录表-分页列表查询", notes="文档对比信息目录表-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(SarFileCompareMenu sarFileCompareMenu,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<SarFileCompareMenu> queryWrapper = QueryGenerator.initQueryWrapper(sarFileCompareMenu, req.getParameterMap());
Page<SarFileCompareMenu> page = new Page<SarFileCompareMenu>(pageNo, pageSize);
IPage<SarFileCompareMenu> pageList = sarFileCompareMenuService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "文档对比信息目录表-列表查询")
@ApiOperation(value="文档对比信息目录表-列表查询", notes="文档对比信息目录表-列表查询")
@GetMapping(value = "/list")
public Result<List<SarFileCompareMenu>> queryList() {
List<SarFileCompareMenu> list = sarFileCompareMenuService.queryList();
return Result.OK(list);
}
/**
* 添加
*
* @param sarFileCompareMenu
* @return
*/
@AutoLog(value = "文档对比信息目录表-添加")
@ApiOperation(value="文档对比信息目录表-添加", notes="文档对比信息目录表-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody SarFileCompareMenu sarFileCompareMenu) {
sarFileCompareMenuService.add(sarFileCompareMenu);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param sarFileCompareMenu
* @return
*/
@AutoLog(value = "文档对比信息目录表-编辑")
@ApiOperation(value="文档对比信息目录表-编辑", notes="文档对比信息目录表-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody SarFileCompareMenu sarFileCompareMenu) {
sarFileCompareMenuService.editById(sarFileCompareMenu);
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) {
sarFileCompareMenuService.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.sarFileCompareMenuService.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) {
SarFileCompareMenu sarFileCompareMenu = sarFileCompareMenuService.queryById(id);
if(sarFileCompareMenu==null) {
return Result.error("未找到对应数据");
}
return Result.OK(sarFileCompareMenu);
}
/**
* 导出excel
*
* @param request
* @param sarFileCompareMenu
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, SarFileCompareMenu sarFileCompareMenu) {
return super.exportXls(request, sarFileCompareMenu, SarFileCompareMenu.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, SarFileCompareMenu.class);
}
}
@@ -0,0 +1,186 @@
package com.jero.modules.compare.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.common.system.query.QueryGenerator;
import com.jero.modules.compare.entity.SarFileCompareResComVO;
import com.jero.modules.compare.entity.SarFileCompareResComment;
import com.jero.modules.compare.service.ISarFileCompareResCommentService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
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 javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
/**
* @Description: 文档对比信息结果评论表
* @Author: jero-boot
* @Date: 2022-08-05
* @Version: V1.0
*/
@Api(tags = "文档对比信息结果评论表")
@RestController
@RequestMapping("/compare/sarFileCompareResComment")
@Slf4j
public class SarFileCompareResCommentController extends JeroController<SarFileCompareResComment, ISarFileCompareResCommentService> {
@Autowired
private ISarFileCompareResCommentService sarFileCompareResCommentService;
/**
* 分页列表查询
*
* @param sarFileCompareResComment
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "文档对比信息结果评论表-分页列表查询")
@ApiOperation(value = "文档对比信息结果评论表-分页列表查询", notes = "文档对比信息结果评论表-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(SarFileCompareResComment sarFileCompareResComment,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<SarFileCompareResComment> queryWrapper = QueryGenerator.initQueryWrapper(sarFileCompareResComment, req.getParameterMap());
Page<SarFileCompareResComment> page = new Page<SarFileCompareResComment>(pageNo, pageSize);
IPage<SarFileCompareResComment> pageList = sarFileCompareResCommentService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "文档对比信息结果评论表-列表查询")
@ApiOperation(value = "文档对比信息结果评论表-列表查询", notes = "文档对比信息结果评论表-列表查询")
@GetMapping(value = "/list")
public Result<List<SarFileCompareResComment>> queryList() {
List<SarFileCompareResComment> list = sarFileCompareResCommentService.queryList();
return Result.OK(list);
}
/**
* 添加
*
* @param sarFileCompareResComment
* @return
*/
@AutoLog(value = "文档对比信息结果评论表-添加")
@ApiOperation(value = "文档对比信息结果评论表-添加", notes = "文档对比信息结果评论表-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody SarFileCompareResComment sarFileCompareResComment) {
sarFileCompareResCommentService.add(sarFileCompareResComment);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param sarFileCompareResComment
* @return
*/
@AutoLog(value = "文档对比信息结果评论表-编辑")
@ApiOperation(value = "文档对比信息结果评论表-编辑", notes = "文档对比信息结果评论表-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody SarFileCompareResComment sarFileCompareResComment) {
sarFileCompareResCommentService.editById(sarFileCompareResComment);
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) {
sarFileCompareResCommentService.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.sarFileCompareResCommentService.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) {
SarFileCompareResComment sarFileCompareResComment = sarFileCompareResCommentService.queryById(id);
if (sarFileCompareResComment == null) {
return Result.error("未找到对应数据");
}
return Result.OK(sarFileCompareResComment);
}
/**
* 导出excel
*
* @param request
* @param sarFileCompareResComment
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, SarFileCompareResComment sarFileCompareResComment) {
return super.exportXls(request, sarFileCompareResComment, SarFileCompareResComment.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, SarFileCompareResComment.class);
}
/**
* 根据infoId查询列表
*
* @return
*/
@AutoLog(value = "文档对比信息结果评论表-根据infoId查询列表")
@ApiOperation(value = "文档对比信息结果评论表-根据infoId查询列表", notes = "文档对比信息结果评论表-根据infoId查询列表")
@GetMapping(value = "/queryListByInfoId")
public Result<List<SarFileCompareResComVO>> queryListByInfoId(@RequestParam(name = "id", required = true) String id,
@RequestParam(name = "str") String str) {
List<SarFileCompareResComVO> list = sarFileCompareResCommentService.queryListByInfoId(id, str);
return Result.OK(list);
}
}
@@ -0,0 +1,135 @@
package com.jero.modules.compare.entity;
import java.util.ArrayList;
import java.util.List;
public class SarFileCompareDetailVO {
private String InfoId;
private String serialNumberLeft;
private String fileNameLeft;
private String serialNumberRight;
private String fileNameRight;
private String remark;
private String comments;
private List<SarFileCompareMenuVo> menuLeft;
private List<SarFileCompareItem> textLeft;
private List<SarFileCompareMenuVo> menuRight;
private List<SarFileCompareItem> textRight;
public String getInfoId() {
return InfoId;
}
public void setInfoId(String infoId) {
InfoId = infoId;
}
public String getSerialNumberLeft() {
return serialNumberLeft;
}
public void setSerialNumberLeft(String serialNumberLeft) {
this.serialNumberLeft = serialNumberLeft;
}
public String getFileNameLeft() {
return fileNameLeft;
}
public void setFileNameLeft(String fileNameLeft) {
this.fileNameLeft = fileNameLeft;
}
public String getSerialNumberRight() {
return serialNumberRight;
}
public void setSerialNumberRight(String serialNumberRight) {
this.serialNumberRight = serialNumberRight;
}
public String getFileNameRight() {
return fileNameRight;
}
public void setFileNameRight(String fileNameRight) {
this.fileNameRight = fileNameRight;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getComments() {
return comments;
}
public void setComments(String comments) {
this.comments = comments;
}
public List<SarFileCompareItem> getTextLeft() {
return textLeft;
}
public void setTextLeft(List<SarFileCompareItem> textLeft) {
this.textLeft = textLeft;
}
public void addTextLeft(SarFileCompareItem text) {
if (this.textLeft == null) {
this.textLeft = new ArrayList<>();
}
this.textLeft.add(text);
}
public List<SarFileCompareItem> getTextRight() {
return textRight;
}
public void setTextRight(List<SarFileCompareItem> textRight) {
this.textRight = textRight;
}
public void addTextRight(SarFileCompareItem text) {
if (this.textRight == null) {
this.textRight = new ArrayList<>();
}
this.textRight.add(text);
}
public List<SarFileCompareMenuVo> getMenuLeft() {
return menuLeft;
}
public void setMenuLeft(List<SarFileCompareMenuVo> menuLeft) {
this.menuLeft = menuLeft;
}
public void addMenuLeft(SarFileCompareMenuVo menu) {
if (this.menuLeft == null) {
this.menuLeft = new ArrayList<>();
}
this.menuLeft.add(menu);
}
public List<SarFileCompareMenuVo> getMenuRight() {
return menuRight;
}
public void setMenuRight(List<SarFileCompareMenuVo> menuRight) {
this.menuRight = menuRight;
}
public void addMenuRight(SarFileCompareMenuVo menu) {
if (this.menuRight == null) {
this.menuRight = new ArrayList<>();
}
this.menuRight.add(menu);
}
}
@@ -4,6 +4,7 @@ import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -21,7 +22,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* @Description: 文档对比信息表
* @Author: jero-boot
* @Date: 2022-08-02
* @Date: 2022-08-04
* @Version: V1.0
*/
@Data
@@ -66,6 +67,11 @@ public class SarFileCompareInfo implements Serializable {
@ApiModelProperty(value = "文档1")
private String fileIdLeft;
/**文档key1*/
@Excel(name = "文档key1", width = 15)
@ApiModelProperty(value = "文档key1")
private String fileKeyLeft;
/**编号1*/
@Excel(name = "编号1", width = 15)
@ApiModelProperty(value = "编号1")
@@ -91,6 +97,11 @@ public class SarFileCompareInfo implements Serializable {
@ApiModelProperty(value = "文档2")
private String fileIdRight;
/**文档key2*/
@Excel(name = "文档key2", width = 15)
@ApiModelProperty(value = "文档key2")
private String fileKeyRight;
/**编号2*/
@Excel(name = "编号2", width = 15)
@ApiModelProperty(value = "编号2")
@@ -116,6 +127,10 @@ public class SarFileCompareInfo implements Serializable {
@ApiModelProperty(value = "发布状态")
private String releaseState;
/**发布状态-翻译后*/
@TableField(exist = false)
private String releaseStateTitle;
/**备注*/
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
@@ -21,7 +21,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* @Description: 文档对比信息条款表
* @Author: jero-boot
* @Date: 2022-08-02
* @Date: 2022-08-06
* @Version: V1.0
*/
@Data
@@ -66,10 +66,10 @@ public class SarFileCompareItem implements Serializable {
@ApiModelProperty(value = "文档对比信息id")
private String infoId;
/**条款id*/
@Excel(name = "条款id", width = 15)
@ApiModelProperty(value = "条款id")
private String itemsId;
/**目录id*/
@Excel(name = "目录id", width = 15)
@ApiModelProperty(value = "目录id")
private String menuId;
/**条款名称*/
@Excel(name = "条款名称", width = 15)
@@ -91,9 +91,9 @@ public class SarFileCompareItem implements Serializable {
@ApiModelProperty(value = "条款展示编号")
private Integer itemsDisplayNum;
/**目标位置*/
@Excel(name = "标位置", width = 15)
@ApiModelProperty(value = "标位置")
/**对应相似条目*/
@Excel(name = "对应相似条", width = 15)
@ApiModelProperty(value = "对应相似条")
private Integer targetStand;
/**条款位置*/
@@ -101,9 +101,9 @@ public class SarFileCompareItem implements Serializable {
@ApiModelProperty(value = "条款位置")
private String leftOrRight;
/**备注*/
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
private String remark;
/**是否被评论(0或1)*/
@Excel(name = "是否被评论(0或1)", width = 15)
@ApiModelProperty(value = "是否被评论(0或1)")
private Integer reviewed;
}
@@ -0,0 +1,83 @@
package com.jero.modules.compare.entity;
/**
* 对比条目评论信息展示
*/
public class SarFileCompareItemComVO {
private String id;
private String itemsNameLeft;
private String itemsNumLeft;
private String itemsTextLeft;
private String itemsNameRight;
private String itemsNumRight;
private String itemsTextRight;
private java.lang.String comment;
public SarFileCompareItemComVO() {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getItemsNameLeft() {
return itemsNameLeft;
}
public void setItemsNameLeft(String itemsNameLeft) {
this.itemsNameLeft = itemsNameLeft;
}
public String getItemsNumLeft() {
return itemsNumLeft;
}
public void setItemsNumLeft(String itemsNumLeft) {
this.itemsNumLeft = itemsNumLeft;
}
public String getItemsTextLeft() {
return itemsTextLeft;
}
public void setItemsTextLeft(String itemsTextLeft) {
this.itemsTextLeft = itemsTextLeft;
}
public String getItemsNameRight() {
return itemsNameRight;
}
public void setItemsNameRight(String itemsNameRight) {
this.itemsNameRight = itemsNameRight;
}
public String getItemsNumRight() {
return itemsNumRight;
}
public void setItemsNumRight(String itemsNumRight) {
this.itemsNumRight = itemsNumRight;
}
public String getItemsTextRight() {
return itemsTextRight;
}
public void setItemsTextRight(String itemsTextRight) {
this.itemsTextRight = itemsTextRight;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
}
@@ -0,0 +1,84 @@
package com.jero.modules.compare.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* @Description: 文档对比信息条款评论表
* @Author: jero-boot
* @Date: 2022-08-05
* @Version: V1.0
*/
@Data
@TableName("sar_file_compare_item_comment")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="sar_file_compare_item_comment对象", description="文档对比信息条款评论表")
public class SarFileCompareItemComment implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.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 java.lang.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 java.lang.String sysOrgCode;
/**文档对比信息id*/
@Excel(name = "文档对比信息id", width = 15)
@ApiModelProperty(value = "文档对比信息id")
private java.lang.String infoId;
/**条款id左*/
@Excel(name = "条款id左", width = 15)
@ApiModelProperty(value = "条款id左")
private java.lang.String itemsIdLeft;
/**条款id右*/
@Excel(name = "条款id右", width = 15)
@ApiModelProperty(value = "条款id右")
private java.lang.String itemsIdRight;
/**评论*/
@Excel(name = "评论", width = 15)
@ApiModelProperty(value = "评论")
private java.lang.String comment;
}
@@ -0,0 +1,126 @@
package com.jero.modules.compare.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* @Description: 文档对比信息目录表
* @Author: jero-boot
* @Date: 2022-08-04
* @Version: V1.0
*/
@Data
@TableName("sar_file_compare_menu")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="sar_file_compare_menu对象", description="文档对比信息目录表")
public class SarFileCompareMenu 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;
/**目录ID*/
@Excel(name = "目录ID", width = 15)
@ApiModelProperty(value = "目录ID")
private String menuId;
/**信息ID*/
@Excel(name = "信息ID", width = 15)
@ApiModelProperty(value = "信息ID")
private String infoId;
/**目录名称*/
@Excel(name = "目录名称", width = 15)
@ApiModelProperty(value = "目录名称")
private String name;
/**父级目录ID*/
@Excel(name = "父级目录ID", width = 15)
@ApiModelProperty(value = "父级目录ID")
private String parentId;
/**排序序号*/
@Excel(name = "排序序号", width = 15)
@ApiModelProperty(value = "排序序号")
private Integer displaySeq;
/**目录位置*/
@Excel(name = "目录位置", width = 15)
@ApiModelProperty(value = "目录位置")
private String leftOrRight;
/**条款名称*/
@Excel(name = "条款名称", width = 15)
@ApiModelProperty(value = "条款名称")
private String itemName;
/**备注*/
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
private String remarks;
public SarFileCompareMenu(String id, String createBy, Date createTime, String updateBy, Date updateTime, String sysOrgCode, String menuId, String infoId, String name, String parentId, Integer displaySeq, String leftOrRight, String itemName, String remarks) {
this.id = id;
this.createBy = createBy;
this.createTime = createTime;
this.updateBy = updateBy;
this.updateTime = updateTime;
this.sysOrgCode = sysOrgCode;
this.menuId = menuId;
this.infoId = infoId;
this.name = name;
this.parentId = parentId;
this.displaySeq = displaySeq;
this.leftOrRight = leftOrRight;
this.itemName = itemName;
this.remarks = remarks;
}
public SarFileCompareMenu() {
}
}
@@ -0,0 +1,62 @@
package com.jero.modules.compare.entity;
import java.util.ArrayList;
import java.util.List;
public class SarFileCompareMenuVo extends SarFileCompareMenu {
private String key;
private String title;
private List<SarFileCompareMenuVo> children;
public SarFileCompareMenuVo(SarFileCompareMenu menu) {
super();
this.setId(menu.getId());
this.setCreateBy(menu.getCreateBy());
this.setCreateTime(menu.getCreateTime());
this.setUpdateBy(menu.getUpdateBy());
this.setUpdateTime(menu.getUpdateTime());
this.setSysOrgCode(menu.getSysOrgCode());
this.setMenuId(menu.getMenuId());
this.setInfoId(menu.getInfoId());
this.setName(menu.getName());
this.setParentId(menu.getParentId());
this.setDisplaySeq(menu.getDisplaySeq());
this.setLeftOrRight(menu.getLeftOrRight());
this.setItemName(menu.getItemName());
this.setKey(menu.getId());
this.setTitle(menu.getName() + menu.getItemName());
this.setRemarks(menu.getRemarks());
}
public List<SarFileCompareMenuVo> getChildren() {
return children;
}
public void setChildren(List<SarFileCompareMenuVo> children) {
this.children = children;
}
public void addChild(SarFileCompareMenuVo child) {
if (null == this.children) {
this.children = new ArrayList<>();
}
children.add(child);
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
@@ -0,0 +1,59 @@
package com.jero.modules.compare.entity;
import java.util.ArrayList;
import java.util.List;
public class SarFileCompareResComVO {
private String id;
private String name;
private String createTime;
private String content;
private List<SarFileCompareResComVO> resComVoList;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public List<SarFileCompareResComVO> getResComVoList() {
return resComVoList;
}
public void setResComVoList(List<SarFileCompareResComVO> resComVoList) {
this.resComVoList = resComVoList;
}
public void addResComVo(SarFileCompareResComVO resComVo) {
if (null == this.resComVoList) {
this.resComVoList = new ArrayList<>();
}
this.resComVoList.add(resComVo);
}
}
@@ -0,0 +1,79 @@
package com.jero.modules.compare.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* @Description: 文档对比信息结果评论表
* @Author: jero-boot
* @Date: 2022-08-05
* @Version: V1.0
*/
@Data
@TableName("sar_file_compare_res_comment")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="sar_file_compare_res_comment对象", description="文档对比信息结果评论表")
public class SarFileCompareResComment implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.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 java.lang.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 java.lang.String sysOrgCode;
/**文档对比信息id*/
@Excel(name = "文档对比信息id", width = 15)
@ApiModelProperty(value = "文档对比信息id")
private java.lang.String infoId;
/**回复评论ID*/
@Excel(name = "回复评论ID", width = 15)
@ApiModelProperty(value = "回复评论ID")
private java.lang.String parentId;
/**评论*/
@Excel(name = "评论", width = 15)
@ApiModelProperty(value = "评论")
private java.lang.String comment;
}
@@ -0,0 +1,81 @@
package com.jero.modules.compare.entity;
import java.util.ArrayList;
import java.util.List;
public class SarFileCompareResultVO {
private String infoId;
private String serialNumberLeft;
private String fileNameLeft;
private String serialNumberRight;
private String fileNameRight;
private List<SarFileCompareItemComVO> resList;
private String comments;
public SarFileCompareResultVO() {
}
public String getInfoId() {
return infoId;
}
public void setInfoId(String infoId) {
this.infoId = infoId;
}
public String getSerialNumberLeft() {
return serialNumberLeft;
}
public void setSerialNumberLeft(String serialNumberLeft) {
this.serialNumberLeft = serialNumberLeft;
}
public String getFileNameLeft() {
return fileNameLeft;
}
public void setFileNameLeft(String fileNameLeft) {
this.fileNameLeft = fileNameLeft;
}
public String getSerialNumberRight() {
return serialNumberRight;
}
public void setSerialNumberRight(String serialNumberRight) {
this.serialNumberRight = serialNumberRight;
}
public String getFileNameRight() {
return fileNameRight;
}
public void setFileNameRight(String fileNameRight) {
this.fileNameRight = fileNameRight;
}
public List<SarFileCompareItemComVO> getResList() {
return resList;
}
public void setResList(List<SarFileCompareItemComVO> resList) {
this.resList = resList;
}
public void addRes(SarFileCompareItemComVO item) {
if (this.resList == null) {
this.resList = new ArrayList<>();
}
this.resList.add(item);
}
public String getComments() {
return comments;
}
public void setComments(String comments) {
this.comments = comments;
}
}
@@ -1,22 +0,0 @@
package com.jero.modules.compare.enums;
public enum ValidFlagEnum {
VALID_TRUE(0, "有效"), VALID_FALSE(1, "无效");
private int value;
private String lable;
private ValidFlagEnum(int value, String lable) {
this.value = value;
this.lable = lable;
}
public int getValue() {
return value;
}
public String getLable() {
return lable;
}
}
@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 文档对比信息表
* @Author: jero-boot
* @Date: 2022-08-02
* @Date: 2022-08-04
* @Version: V1.0
*/
public interface SarFileCompareInfoMapper extends BaseMapper<SarFileCompareInfo> {
@@ -0,0 +1,18 @@
package com.jero.modules.compare.mapper;
import java.util.List;
import com.jero.modules.compare.entity.SarFileCompareItemComVO;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.compare.entity.SarFileCompareItemComment;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 文档对比信息条款评论表
* @Author: jero-boot
* @Date: 2022-08-05
* @Version: V1.0
*/
public interface SarFileCompareItemCommentMapper extends BaseMapper<SarFileCompareItemComment> {
}
@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 文档对比信息条款表
* @Author: jero-boot
* @Date: 2022-08-02
* @Date: 2022-08-04
* @Version: V1.0
*/
public interface SarFileCompareItemMapper extends BaseMapper<SarFileCompareItem> {
@@ -0,0 +1,17 @@
package com.jero.modules.compare.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.compare.entity.SarFileCompareMenu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 文档对比信息目录表
* @Author: jero-boot
* @Date: 2022-08-03
* @Version: V1.0
*/
public interface SarFileCompareMenuMapper extends BaseMapper<SarFileCompareMenu> {
}
@@ -0,0 +1,17 @@
package com.jero.modules.compare.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.compare.entity.SarFileCompareResComment;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 文档对比信息结果评论表
* @Author: jero-boot
* @Date: 2022-08-05
* @Version: V1.0
*/
public interface SarFileCompareResCommentMapper extends BaseMapper<SarFileCompareResComment> {
}
@@ -9,11 +9,13 @@
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="file_id_left" property="fileIdLeft" />
<result column="file_key_left" property="fileKeyLeft" />
<result column="serial_number_left" property="serialNumberLeft" />
<result column="title_left" property="titleLeft" />
<result column="file_type_left" property="fileTypeLeft" />
<result column="file_name_left" property="fileNameLeft" />
<result column="file_id_right" property="fileIdRight" />
<result column="file_key_right" property="fileKeyRight" />
<result column="serial_number_right" property="serialNumberRight" />
<result column="title_right" property="titleRight" />
<result column="file_type_right" property="fileTypeRight" />
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.compare.mapper.SarFileCompareItemCommentMapper">
<resultMap id="SarFileCompareItemCommentResultMap" type="com.jero.modules.compare.entity.SarFileCompareItemComment">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="info_id" property="infoId" />
<result column="items_id_left" property="itemsIdLeft" />
<result column="items_id_right" property="itemsIdRight" />
<result column="comment" property="comment" />
</resultMap>
</mapper>
@@ -9,7 +9,7 @@
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="info_id" property="infoId" />
<result column="items_id" property="itemsId" />
<result column="menu_id" property="menuId" />
<result column="items_name" property="itemsName" />
<result column="items_num" property="itemsNum" />
<result column="items_text" property="itemsText" />
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.compare.mapper.SarFileCompareMenuMapper">
<resultMap id="SarFileCompareMenuResultMap" type="com.jero.modules.compare.entity.SarFileCompareMenu">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="menu_id" property="menuId" />
<result column="info_id" property="infoId" />
<result column="name" property="name" />
<result column="parent_id" property="parentId" />
<result column="display_seq" property="displaySeq" />
<result column="left_or_right" property="leftOrRight" />
<result column="item_name" property="itemName" />
<result column="remarks" property="remarks" />
</resultMap>
</mapper>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.compare.mapper.SarFileCompareResCommentMapper">
<resultMap id="SarFileCompareResCommentResultMap" type="com.jero.modules.compare.entity.SarFileCompareResComment">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="info_id" property="infoId" />
<result column="parent_id" property="parentId" />
<result column="comment" property="comment" />
</resultMap>
</mapper>
@@ -1,5 +1,6 @@
package com.jero.modules.compare.service;
import com.jero.modules.compare.entity.SarFileCompareDetailVO;
import com.jero.modules.compare.entity.SarFileCompareInfo;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -69,5 +70,13 @@ public interface ISarFileCompareInfoService extends IService<SarFileCompareInfo>
* @param remark
* @return
*/
Map<String, Object> fullTextComparison(String leftStandard, String rightStandard, String remark) throws Exception;
String fullTextComparison(String leftStandard, String rightStandard, String remark) throws Exception;
/**
* 求对比详情
*
* @param id
* @return
*/
SarFileCompareDetailVO getComparisonDetail(String id);
}
@@ -0,0 +1,71 @@
package com.jero.modules.compare.service;
import com.jero.modules.compare.entity.SarFileCompareItemComment;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.compare.entity.SarFileCompareResultVO;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* @Description: 文档对比信息条款评论表
* @Author: jero-boot
* @Date: 2022-08-05
* @Version: V1.0
*/
public interface ISarFileCompareItemCommentService extends IService<SarFileCompareItemComment> {
/**
* 保存
*
* @param sarFileCompareItemComment
* @return
*/
void add(SarFileCompareItemComment sarFileCompareItemComment);
/**
* 更新
*
* @param sarFileCompareItemComment
* @return
*/
void editById(SarFileCompareItemComment sarFileCompareItemComment);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
SarFileCompareItemComment queryById(String id);
/**
* 列表查询
*
* @return
*/
List<SarFileCompareItemComment> queryList();
SarFileCompareResultVO queryCompareResult(String infoId);
void exportResXls(HttpServletResponse response, String infoId, String selectIds, boolean includeComments, String cut);
}
@@ -1,61 +1,75 @@
package com.jero.modules.compare.service;
import com.jero.modules.compare.entity.SarFileCompareItem;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.compare.entity.SarFileCompareItem;
import com.jero.modules.compare.utils.CompareConst;
import com.jero.modules.system.util.StringUtils;
import java.util.List;
import java.util.Map;
/**
* @Description: 文档对比信息条款表
* @Author: jero-boot
* @Date: 2022-08-02
* @Date: 2022-08-02
* @Version: V1.0
*/
public interface ISarFileCompareItemService extends IService<SarFileCompareItem> {
/**
* 保存
*
* @param sarFileCompareItem
* @return
*/
/**
* 保存
*
* @param sarFileCompareItem
* @return
*/
void add(SarFileCompareItem sarFileCompareItem);
/**
* 更新
*
* @param sarFileCompareItem
* @return
*/
/**
* 更新
*
* @param sarFileCompareItem
* @return
*/
void editById(SarFileCompareItem sarFileCompareItem);
/**
* 通过id删除
*
* @param id
* @return
*/
/**
* 标记被评论过
* @param id
*/
void updateReviewedById(String id);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
/**
* 通过id查询
*
* @param id
* @return
*/
SarFileCompareItem queryById(String id);
/**
* 列表查询
*
* @return
*/
* 列表查询
*
* @return
*/
List<SarFileCompareItem> queryList();
List<SarFileCompareItem> queryListByInfoId(String infoId);
Map<String, SarFileCompareItem> queryMapByInfoId(String infoId);
}
@@ -0,0 +1,64 @@
package com.jero.modules.compare.service;
import com.jero.modules.compare.entity.SarFileCompareMenu;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 文档对比信息目录表
* @Author: jero-boot
* @Date: 2022-08-03
* @Version: V1.0
*/
public interface ISarFileCompareMenuService extends IService<SarFileCompareMenu> {
/**
* 保存
*
* @param sarFileCompareMenu
* @return
*/
void add(SarFileCompareMenu sarFileCompareMenu);
/**
* 更新
*
* @param sarFileCompareMenu
* @return
*/
void editById(SarFileCompareMenu sarFileCompareMenu);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
SarFileCompareMenu queryById(String id);
/**
* 列表查询
*
* @return
*/
List<SarFileCompareMenu> queryList();
List<SarFileCompareMenu> queryListByInfoId(String infoId);
}
@@ -0,0 +1,65 @@
package com.jero.modules.compare.service;
import com.jero.modules.compare.entity.SarFileCompareResComVO;
import com.jero.modules.compare.entity.SarFileCompareResComment;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 文档对比信息结果评论表
* @Author: jero-boot
* @Date: 2022-08-05
* @Version: V1.0
*/
public interface ISarFileCompareResCommentService extends IService<SarFileCompareResComment> {
/**
* 保存
*
* @param sarFileCompareResComment
* @return
*/
void add(SarFileCompareResComment sarFileCompareResComment);
/**
* 更新
*
* @param sarFileCompareResComment
* @return
*/
void editById(SarFileCompareResComment sarFileCompareResComment);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
SarFileCompareResComment queryById(String id);
/**
* 列表查询
*
* @return
*/
List<SarFileCompareResComment> queryList();
List<SarFileCompareResComVO> queryListByInfoId(String id, String str);
}
@@ -1,35 +1,25 @@
package com.jero.modules.compare.service.impl;
import com.jero.modules.compare.entity.SarFileCompareInfo;
import com.jero.modules.compare.entity.SarFileCompareItem;
import com.jero.modules.compare.enums.ValidFlagEnum;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.compare.entity.*;
import com.jero.modules.compare.mapper.SarFileCompareInfoMapper;
import com.jero.modules.compare.service.ISarFileCompareInfoService;
import com.jero.modules.compare.service.ISarFileCompareItemService;
import com.jero.modules.compare.service.ISarFileCompareMenuService;
import com.jero.modules.compare.utils.CompHanLPUtils;
import com.jero.modules.compare.utils.treeTool.Tree;
import com.jero.modules.compare.utils.treeTool.TreeNode;
import com.jero.modules.compare.utils.CompareConst;
import com.jero.modules.docTranslation.enums.ReleaseConditionEnum;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.split.entity.SarFileSplitInfoEO;
import com.jero.modules.split.entity.SarFileSplitItemsEO;
import com.jero.modules.split.entity.SarFileSplitItemsValEO;
import com.jero.modules.split.entity.SarFileSplitMenuEO;
import com.jero.modules.split.page.SarFileSplitItemsEOPage;
import com.jero.modules.split.page.SarFileSplitItemsValEOPage;
import com.jero.modules.split.page.SarFileSplitMenuEOPage;
import com.jero.modules.split.service.IFileSplitItemsEOService;
import com.jero.modules.split.service.ISarFileSplitInfoService;
import com.jero.modules.split.service.ISarFileSplitItemsValEOService;
import com.jero.modules.split.service.ISarFileSplitMenuEOService;
import com.jero.modules.system.util.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 文档对比信息表
* @Author: jero-boot
@@ -45,16 +35,15 @@ public class SarFileCompareInfoServiceImpl extends ServiceImpl<SarFileCompareInf
@Autowired
private IFileSplitItemsEOService sarFileSplitItemsEOService;
@Autowired
private ISarFileSplitItemsValEOService sarFileSplitItemsValEOService;
@Autowired
private ISarFileSplitInfoService sarFileSplitInfoEOService;
@Autowired
private ISarFileCompareItemService sarFileCompareItemService;
@Autowired
private ISarFileCompareMenuService sarFileCompareMenuService;
/**
* 保存
@@ -135,217 +124,180 @@ public class SarFileCompareInfoServiceImpl extends ServiceImpl<SarFileCompareInf
* @return
* @throws Exception
*/
public Map<String, Object> fullTextComparison(String leftStandard, String rightStandard, String remark) throws Exception {
Map<String, Object> resultMap = new HashMap<String, Object>();
List<Map<String, Object>> leftMapList = fullTextComparePackageData(leftStandard);
List<Map<String, Object>> rightMapList = fullTextComparePackageData(rightStandard);
List<Map<String, Object>> resLeftMapList = null;
List<Map<String, Object>> resRightMapList = null;
if (leftMapList != null && !leftMapList.isEmpty() && rightMapList != null && !rightMapList.isEmpty()) {
public String fullTextComparison(String leftStandard, String rightStandard, String remark) throws Exception {
SarFileCompareInfo sfcInfo = addStandCompareHis(leftStandard, rightStandard, remark);
List<SarFileSplitMenuEO> leftMenuEOList = sarFileSplitMenuEOService.queryByInfoId(leftStandard);
Map<String, SarFileCompareMenu> leftMenuMap = wrapperMenuMap(leftMenuEOList, sfcInfo.getId(), CompareConst.POS_LEFT);
sarFileCompareMenuService.saveBatch(leftMenuMap.values());
List<SarFileSplitMenuEO> rightMenuEOList = sarFileSplitMenuEOService.queryByInfoId(rightStandard);
Map<String, SarFileCompareMenu> rightMenuMap = wrapperMenuMap(rightMenuEOList, sfcInfo.getId(), CompareConst.POS_RIGHT);
sarFileCompareMenuService.saveBatch(rightMenuMap.values());
List<SarFileSplitItemsEO> leftItemEOList = sarFileSplitItemsEOService.selectByInfoId(leftStandard);
List<SarFileCompareItem> leftItemList = wrapperItemList(leftItemEOList, sfcInfo.getId(), leftMenuMap, CompareConst.POS_LEFT);
List<SarFileSplitItemsEO> rightItemEOList = sarFileSplitItemsEOService.selectByInfoId(rightStandard);
List<SarFileCompareItem> rightItemList = wrapperItemList(rightItemEOList, sfcInfo.getId(), rightMenuMap, CompareConst.POS_RIGHT);
if (!leftItemList.isEmpty() && !rightItemList.isEmpty()) {
//双重循环找到相似度最高的条款做关联
for (int i = 0; i < leftMapList.size(); i++) {
String leftTxt = leftMapList.get(i).get("itemsText").toString();
for (int i = 0; i < leftItemList.size(); i++) {
String leftTxt = leftItemList.get(i).getItemsText();
//初始化 假设未找到相似条目
leftItemList.get(i).setTargetStand(-1);
//定义初始化的相似度
double compareSimilarity = 0.0;
if (!leftTxt.isEmpty()) {
for (int j = 0; j < rightMapList.size(); j++) {
String rightTxt = rightMapList.get(j).get("itemsText").toString();
double similarity = CompHanLPUtils.findSimilarity(leftTxt.trim(), rightTxt.trim());
//如果相似度超过0.6 并且该相似度比之前的相似度还高,那么该条款目前相似度最高
if (similarity >= 0.6 && compareSimilarity < similarity) {
compareSimilarity = similarity;
leftMapList.get(i).put("targetStand", j);
if (rightMapList.get(j).get("targetStand") == null) {
rightMapList.get(j).put("targetStand", i);
if (null != leftTxt && !leftTxt.isEmpty()) {
for (int j = 0; j < rightItemList.size(); j++) {
String rightTxt = rightItemList.get(j).getItemsText();
if (null != rightTxt && !rightTxt.isEmpty()) {
double similarity = CompHanLPUtils.findSimilarity(leftTxt.trim(), rightTxt.trim());
//如果相似度超过0.6 并且该相似度比之前的相似度还高,那么该条款目前相似度最高
if (similarity >= 0.6 && compareSimilarity < similarity) {
compareSimilarity = similarity;
leftItemList.get(i).setTargetStand(j);
}
}
if (j >= rightItemList.size() - 1) {
int ts = leftItemList.get(i).getTargetStand();
if (ts > -1) {
rightItemList.get(ts).setTargetStand(i);
}
}
}
}
}
//循环对比结束,开始填充html代码
resLeftMapList = writeResultHtml(leftMapList);
resultMap.put("resLeftMapList", resLeftMapList);
resRightMapList = writeResultHtml(rightMapList);
resultMap.put("resRightMapList", resRightMapList);
}
//往全文比对历史表中添加数据
addStandCompareHis(leftStandard, rightStandard, remark, resLeftMapList, resRightMapList);
return resultMap;
sarFileCompareItemService.saveBatch(leftItemList);
sarFileCompareItemService.saveBatch(rightItemList);
return sfcInfo.getId();
}
/**
* 组装条款数据
*
* @param standardId
* @return
* @throws Exception
*/
public List<Map<String, Object>> fullTextComparePackageData(String standardId) throws Exception {
List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>();
//调用查询条款接口
SarFileSplitItemsEOPage sarFileSplitItemsEOPage = new SarFileSplitItemsEOPage();
sarFileSplitItemsEOPage.setInfoId(standardId);
sarFileSplitItemsEOPage.setValidFlag(String.valueOf(ValidFlagEnum.VALID_TRUE.getValue()));
sarFileSplitItemsEOPage.setOrderBy("SAR_FILE_SPLIT_MENU.display_seq asc");
if (StringUtils.isNotEmpty(sarFileSplitItemsEOPage.getMenuId())) {
List<SarFileSplitMenuEO> sarFileSplitMenuEOList = sarFileSplitMenuEOService.queryByList(new SarFileSplitMenuEOPage());
Tree tree = new Tree<>(sarFileSplitMenuEOList);
TreeNode treeNode = tree.getTreeNode(sarFileSplitItemsEOPage.getMenuId());
List<String> menuIds = new ArrayList<>();
menuIds.add(treeNode.getNodeId());
for (TreeNode node : treeNode.getAllChildren()) {
menuIds.add(node.getNodeId());
}
sarFileSplitItemsEOPage.setMenuIdList(menuIds);
private Map<String, SarFileCompareMenu> wrapperMenuMap(List<SarFileSplitMenuEO> list, String infoId, String leftOrRight) {
Map<String, SarFileCompareMenu> resMap = new HashMap<>();
for (SarFileSplitMenuEO meo : list) {
SarFileCompareMenu sfcMenu = new SarFileCompareMenu();
sfcMenu.setInfoId(infoId);
sfcMenu.setMenuId(meo.getId());
sfcMenu.setName(meo.getName());
sfcMenu.setItemName(meo.getItemName());
sfcMenu.setParentId(meo.getPId());
sfcMenu.setDisplaySeq(meo.getDisplaySeq().intValue());
sfcMenu.setRemarks(meo.getRemarks());
sfcMenu.setLeftOrRight(leftOrRight);
resMap.put(sfcMenu.getMenuId(), sfcMenu);
}
List<SarFileSplitItemsEO> itemList = sarFileSplitItemsEOService.queryByList(sarFileSplitItemsEOPage);
if (itemList != null && !itemList.isEmpty()) {
for (SarFileSplitItemsEO sarFileSplitItemsEO : itemList) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("itemsNum", sarFileSplitItemsEO.getItemsNum());
map.put("itemsName", sarFileSplitItemsEO.getItemsName());
map.put("itemsId", sarFileSplitItemsEO.getId());
//(内容1\n内容2\n格式)
String txt = "";
//调用条款内容详情表查询条款内容
SarFileSplitItemsValEOPage sarFileSplitItemsValEOPage = new SarFileSplitItemsValEOPage();
sarFileSplitItemsValEOPage.setItemId(sarFileSplitItemsEO.getId());
sarFileSplitItemsValEOPage.setValidFlag(String.valueOf(ValidFlagEnum.VALID_TRUE.getValue()));
sarFileSplitItemsValEOPage.setType("TEXT");
List<SarFileSplitItemsValEO> leftValList = sarFileSplitItemsValEOService.queryByList(sarFileSplitItemsValEOPage);
if (leftValList != null && !leftValList.isEmpty()) {
for (SarFileSplitItemsValEO sarFileSplitItemsValEO : leftValList) {
txt += "<p>" + sarFileSplitItemsValEO.getItemContent() + "</p>";
}
}
map.put("itemsText", txt);
map.put("targetStand", null);
map.put("menuId", sarFileSplitItemsEO.getMenuId());
mapList.add(map);
}
}
return mapList;
return resMap;
}
/**
* 填充html代码,返回结果
*
* @param resMapList
* @return
*/
public List<Map<String, Object>> writeResultHtml(List<Map<String, Object>> resMapList) throws Exception {
List<Map<String, Object>> resultMapList = new ArrayList<>();
for (Map resMap : resMapList) {
Map<String, Object> map = new HashMap<>();
StringBuilder stringBuilder = new StringBuilder();
Object itemsNum = resMap.get("itemsNum");
if (null != itemsNum) {
stringBuilder.append(itemsNum.toString());
} else {
stringBuilder.append("undefined");
private List<SarFileCompareItem> wrapperItemList(List<SarFileSplitItemsEO> list, String infoId, Map<String, SarFileCompareMenu> menuMap, String leftOrRight) {
List<SarFileCompareItem> resList = new ArrayList<>();
for (SarFileSplitItemsEO itemsEO : list) {
SarFileCompareItem item = new SarFileCompareItem();
item.setInfoId(infoId);
item.setItemsName(itemsEO.getItemsName());
item.setMenuId(itemsEO.getMenuId());
item.setItemsNum(itemsEO.getItemsNum());
item.setItemsText(itemsEO.getItermsConditions());
SarFileCompareMenu menu = menuMap.get(itemsEO.getMenuId());
if (menu != null) {
item.setItemsDisplayNum(menu.getDisplaySeq());
}
stringBuilder.append("&nbsp;");
Object itemsName = resMap.get("itemsName");
if (null != itemsName) {
stringBuilder.append(itemsName.toString());
} else {
stringBuilder.append("undefined");
}
stringBuilder.append("<div>");
Object itemsTxt = resMap.get("itemsTxt");
if (null != itemsTxt) {
stringBuilder.append(itemsTxt.toString());
}
stringBuilder.append("</div>");
map.put("resultHtml", stringBuilder.toString());
Object targetStand = resMap.get("targetStand");
int targetStandInt = 0;
if (null != targetStand) {
targetStand = (Integer) targetStand;
}
map.put("targetStand", targetStand);
Object itemsId = resMap.get("itemsId");
String itemsIdStr = "undefined";
if (null != itemsId) {
itemsIdStr = itemsId.toString();
}
map.put("itemsId", itemsIdStr);
resultMapList.add(map);
item.setLeftOrRight(leftOrRight);
item.setReviewed(CompareConst.NO_REVIEWED);
resList.add(item);
}
return resMapList;
Collections.sort(resList, Comparator.comparingInt(SarFileCompareItem::getItemsDisplayNum));
return resList;
}
/**
* 保存比对历史
*
* @param leftStandId
* @param rightStandId
* @param remark
* @param resLeftMapList
* @param resRightMapList
* @throws Exception
*/
public void addStandCompareHis(String leftStandId, String rightStandId, String remark, List<Map<String, Object>> resLeftMapList, List<Map<String, Object>> resRightMapList) throws Exception {
public SarFileCompareInfo addStandCompareHis(String leftStandId, String rightStandId, String remark) throws Exception {
SarFileSplitInfoEO leftInfo = sarFileSplitInfoEOService.queryById(leftStandId);
SarFileSplitInfoEO rightInfo = sarFileSplitInfoEOService.queryById(rightStandId);
//保存标准比对历史表数据
SarFileCompareInfo sarFileCompareInfo = new SarFileCompareInfo();
sarFileCompareInfo.setId(UUID.randomUUID().toString());
sarFileCompareInfo.setFileIdLeft(leftInfo.getFileId());
String id = UUID.randomUUID().toString();
sarFileCompareInfo.setId(id);
sarFileCompareInfo.setFileIdLeft(leftInfo.getId());
sarFileCompareInfo.setFileKeyLeft(leftInfo.getFileId());
sarFileCompareInfo.setFileNameLeft(leftInfo.getFileName());
sarFileCompareInfo.setTitleLeft(leftInfo.getTitle());
sarFileCompareInfo.setFileTypeLeft(leftInfo.getFileType());
sarFileCompareInfo.setSerialNumberLeft(leftInfo.getSerialNumber());
sarFileCompareInfo.setFileIdRight(rightInfo.getFileId());
sarFileCompareInfo.setFileIdRight(rightInfo.getId());
sarFileCompareInfo.setFileKeyRight(rightInfo.getFileId());
sarFileCompareInfo.setFileNameRight(rightInfo.getFileName());
sarFileCompareInfo.setFileTypeRight(rightInfo.getFileType());
sarFileCompareInfo.setTitleRight(rightInfo.getTitle());
sarFileCompareInfo.setSerialNumberRight(rightInfo.getSerialNumber());
sarFileCompareInfo.setReleaseState(ReleaseConditionEnum.DRAFT.getValue());
sarFileCompareInfo.setRemark(remark);
this.add(sarFileCompareInfo);
//保存标准的所有条款比对的历史数据
if (resLeftMapList != null && !resLeftMapList.isEmpty()) {
setStandCompareHisEO(resLeftMapList, sarFileCompareInfo.getId(), "LEFT");
}
if (resRightMapList != null && !resRightMapList.isEmpty()) {
setStandCompareHisEO(resRightMapList, sarFileCompareInfo.getId(), "RIGHT");
}
return sarFileCompareInfo;
}
public void setStandCompareHisEO(List<Map<String, Object>> mapList, String id, String leftOrRight) throws Exception {
for (int i = 0; i < mapList.size(); i++) {
SarFileCompareItem sarFileCompareItem = new SarFileCompareItem();
sarFileCompareItem.setItemsId(id);
sarFileCompareItem.setItemsDisplayNum(i);
sarFileCompareItem.setLeftOrRight(leftOrRight);
Object itemsId = mapList.get(i).get("itemsId");
if (null != itemsId) {
sarFileCompareItem.setItemsId(itemsId.toString());
public SarFileCompareDetailVO getComparisonDetail(String id) {
SarFileCompareDetailVO sfVo = new SarFileCompareDetailVO();
SarFileCompareInfo sfcInfo = this.queryById(id);
sfVo.setInfoId(id);
sfVo.setFileNameLeft(sfcInfo.getFileNameLeft());
sfVo.setFileNameRight(sfcInfo.getFileNameRight());
sfVo.setSerialNumberLeft(sfcInfo.getSerialNumberLeft());
sfVo.setSerialNumberRight(sfcInfo.getSerialNumberRight());
sfVo.setRemark(sfcInfo.getRemark());
sfVo.setComments(sfcInfo.getComments());
List<SarFileCompareMenu> menuList = sarFileCompareMenuService.queryListByInfoId(id);
for (SarFileCompareMenu menu : menuList) {
if ("General catalogue".equals(menu.getName())) {
if (menu.getLeftOrRight().equals(CompareConst.POS_LEFT)) {
SarFileCompareMenuVo menuLeft = new SarFileCompareMenuVo(menu);
menuLeft.setChildren(getMenuChildren(menuList, CompareConst.POS_LEFT, menuLeft.getMenuId()));
sfVo.addMenuLeft(menuLeft);
} else if (menu.getLeftOrRight().equals(CompareConst.POS_RIGHT)) {
SarFileCompareMenuVo menuRight = new SarFileCompareMenuVo(menu);
menuRight.setChildren(getMenuChildren(menuList, CompareConst.POS_RIGHT, menuRight.getMenuId()));
sfVo.addMenuRight(menuRight);
}
}
Object itemsName = mapList.get(i).get("itemsName");
if (null != itemsName) {
sarFileCompareItem.setItemsName(itemsName.toString());
if (sfVo.getMenuRight() != null && sfVo.getMenuRight().size() > 0 && sfVo.getMenuLeft() != null && sfVo.getMenuLeft().size() > 0) {
break;
}
Object itemsNum = mapList.get(i).get("itemsNum");
if (null != itemsNum) {
sarFileCompareItem.setItemsNum(itemsNum.toString());
}
Object itemsText = mapList.get(i).get("itemsText");
if (null != itemsText) {
sarFileCompareItem.setItemsText(itemsText.toString());
}
Object targetStand = mapList.get(i).get("targetStand");
if (targetStand != null) {
sarFileCompareItem.setTargetStand((int) targetStand);
}
sarFileCompareItemService.add(sarFileCompareItem);
}
List<SarFileCompareItem> itemList = sarFileCompareItemService.queryListByInfoId(id);
for (SarFileCompareItem item : itemList) {
if (item.getLeftOrRight().equals(CompareConst.POS_LEFT)) {
sfVo.addTextLeft(item);
} else if (item.getLeftOrRight().equals(CompareConst.POS_RIGHT)) {
sfVo.addTextRight(item);
}
}
return sfVo;
}
private List<SarFileCompareMenuVo> getMenuChildren(List<SarFileCompareMenu> menuList, String leftOrRight, String pid) {
List<SarFileCompareMenuVo> list = new ArrayList<>();
for (SarFileCompareMenu menu : menuList) {
if (menu.getLeftOrRight().equals(leftOrRight) && menu.getParentId() != null && menu.getParentId().equals(pid)) {
SarFileCompareMenuVo menuVO = new SarFileCompareMenuVo(menu);
menuVO.setChildren(getMenuChildren(menuList, leftOrRight, menuVO.getMenuId()));
list.add(menuVO);
}
}
return list;
}
}
@@ -0,0 +1,267 @@
package com.jero.modules.compare.service.impl;
import com.aliyuncs.utils.IOUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.compare.entity.*;
import com.jero.modules.compare.mapper.SarFileCompareItemCommentMapper;
import com.jero.modules.compare.service.ISarFileCompareInfoService;
import com.jero.modules.compare.service.ISarFileCompareItemCommentService;
import com.jero.modules.compare.service.ISarFileCompareItemService;
import com.jero.modules.system.util.StringUtils;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @Description: 文档对比信息条款评论表
* @Author: jero-boot
* @Date: 2022-08-05
* @Version: V1.0
*/
@Service
public class SarFileCompareItemCommentServiceImpl extends ServiceImpl<SarFileCompareItemCommentMapper, SarFileCompareItemComment> implements ISarFileCompareItemCommentService {
@Autowired
private ISarFileCompareInfoService sarFileCompareInfoServiceImpl;
@Autowired
private ISarFileCompareItemService SarFileCompareItemServiceImpl;
/**
* 保存
*
* @param sarFileCompareItemComment
* @return
*/
@Override
public void add(SarFileCompareItemComment sarFileCompareItemComment) {
Date now = new Date();
sarFileCompareItemComment.setCreateTime(now);
sarFileCompareItemComment.setUpdateTime(now);
save(sarFileCompareItemComment);
String itemIdLeft = sarFileCompareItemComment.getItemsIdLeft();
SarFileCompareItemServiceImpl.updateReviewedById(sarFileCompareItemComment.getItemsIdLeft());
SarFileCompareItemServiceImpl.updateReviewedById(sarFileCompareItemComment.getItemsIdRight());
}
/**
* 更新
*
* @param sarFileCompareItemComment
* @return
*/
@Override
public void editById(SarFileCompareItemComment sarFileCompareItemComment) {
SarFileCompareItemComment ic = queryById(sarFileCompareItemComment.getId());
Date now = new Date();
ic.setUpdateTime(now);
ic.setComment(sarFileCompareItemComment.getComment());
saveOrUpdate(ic);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public SarFileCompareItemComment queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<SarFileCompareItemComment> queryList() {
return list();
}
@Override
public SarFileCompareResultVO queryCompareResult(String infoId) {
SarFileCompareResultVO resultVO = new SarFileCompareResultVO();
SarFileCompareInfo sfcInfo = sarFileCompareInfoServiceImpl.queryById(infoId);
resultVO.setInfoId(infoId);
resultVO.setSerialNumberLeft(sfcInfo.getSerialNumberLeft());
resultVO.setFileNameLeft(sfcInfo.getFileNameLeft());
resultVO.setSerialNumberRight(sfcInfo.getSerialNumberRight());
resultVO.setFileNameRight(sfcInfo.getFileNameRight());
resultVO.setComments(sfcInfo.getComments());
List<SarFileCompareItemComment> list = queryListByInfoId(infoId);
Map<String, SarFileCompareItem> sfcItemMap = SarFileCompareItemServiceImpl.queryMapByInfoId(infoId);
for (SarFileCompareItemComment sfcItemCom : list) {
SarFileCompareItemComVO itemComVO = new SarFileCompareItemComVO();
itemComVO.setId(sfcItemCom.getId());
itemComVO.setComment(sfcItemCom.getComment());
String itemIdLeft = sfcItemCom.getItemsIdLeft();
if (!StringUtils.isEmpty(itemIdLeft)) {
SarFileCompareItem sfcItem = sfcItemMap.get(itemIdLeft);
if (null != sfcItem) {
itemComVO.setItemsNameLeft(sfcItem.getItemsName());
itemComVO.setItemsNumLeft(sfcItem.getItemsNum());
itemComVO.setItemsTextLeft(sfcItem.getItemsText());
}
}
String itemIdRight = sfcItemCom.getItemsIdRight();
if (!StringUtils.isEmpty(itemIdRight)) {
SarFileCompareItem sfcItem = sfcItemMap.get(itemIdRight);
if (null != sfcItem) {
itemComVO.setItemsNameRight(sfcItem.getItemsName());
itemComVO.setItemsNumRight(sfcItem.getItemsNum());
itemComVO.setItemsTextRight(sfcItem.getItemsText());
}
}
resultVO.addRes(itemComVO);
}
return resultVO;
}
public List<SarFileCompareItemComment> queryListByInfoId(String infoId) {
LambdaQueryWrapper<SarFileCompareItemComment> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SarFileCompareItemComment::getInfoId, infoId);
queryWrapper.orderBy(true, true, SarFileCompareItemComment::getCreateTime);
List<SarFileCompareItemComment> list = this.list(queryWrapper);
return list;
}
@Override
public void exportResXls(HttpServletResponse response, String infoId, String selectIds, boolean includeComments, String cut) {
List<SarFileCompareItemComment> list = null;
if (includeComments && StringUtils.isEmpty(selectIds)) {
//只导出全文评论的情况
list = new ArrayList<>();
} else {
LambdaQueryWrapper<SarFileCompareItemComment> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SarFileCompareItemComment::getInfoId, infoId);
if (!StringUtils.isEmpty(selectIds)) {
queryWrapper.in(SarFileCompareItemComment::getId, Arrays.asList(selectIds.split(",")));
}
queryWrapper.orderBy(true, true, SarFileCompareItemComment::getCreateTime);
list = this.list(queryWrapper);
}
Map<String, SarFileCompareItem> sfcItemMap = SarFileCompareItemServiceImpl.queryMapByInfoId(infoId);
OutputStream os = null;
Workbook workbook = new XSSFWorkbook();
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String fileName = "导出对比结果 " + sdf.format(new Date()) + ".xlsx";
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
response.setContentType("application/force-download");
//创建工作表对象
Sheet sheet = workbook.createSheet("对比结果");
// 创建头部
String header = "";
if (CutEnum.CN.getValue().equals(cut)) {
header = "条款号,条款名称,条款内容,条款号,条款名称,条款内容,评论";
} else {
header = "Number,Title,Content,Number,Title,Content,Comment";
}
CellStyle cellStyle = workbook.createCellStyle();//初始化单元格格式对象
cellStyle.setAlignment(HorizontalAlignment.CENTER);
cellStyle.setWrapText(true);
Row rowHeader = sheet.createRow(0);//开始创建标题行
if (StringUtils.isNotBlank(header)) {
String[] headerArr = header.split(",");
for (int i = 0; i < headerArr.length; i++) {
rowHeader.createCell(i).setCellValue(headerArr[i]);
}
}
int i = 1;
for (SarFileCompareItemComment itemComment : list) {
Row row = sheet.createRow(i);
String itemIdLeft = itemComment.getItemsIdLeft();
if (!StringUtils.isEmpty(itemIdLeft)) {
SarFileCompareItem itemLeft = sfcItemMap.get(itemIdLeft);
if (null != itemLeft) {
row.createCell(0).setCellValue(itemLeft.getItemsNum());
row.createCell(1).setCellValue(itemLeft.getItemsName());
String text = itemLeft.getItemsText();
text = text.replace("<p>", "").replace("</p>", "\r\n");
row.createCell(2).setCellValue(text);
}
}
String itemIdRight = itemComment.getItemsIdRight();
SarFileCompareItem itemRight = sfcItemMap.get(itemIdRight);
if (null != itemRight) {
row.createCell(3).setCellValue(itemRight.getItemsNum());
row.createCell(4).setCellValue(itemRight.getItemsName());
String text = itemRight.getItemsText();
text = text.replace("<p>", "").replace("</p>", "\r\n");
row.createCell(5).setCellValue(text);
}
row.createCell(6).setCellValue(itemComment.getComment());
i++;
}
if (includeComments || StringUtils.isEmpty(selectIds)) {
Row row = sheet.createRow(i);
if (CutEnum.CN.getValue().equals(cut)) {
row.createCell(0).setCellValue("全文评论");
} else {
row.createCell(0).setCellValue("The full text comments");
}
//合并单元格
CellRangeAddress rangeAddress = new CellRangeAddress(row.getRowNum(), row.getRowNum(), 1, 6);
sheet.addMergedRegion(rangeAddress);
SarFileCompareInfo compareInfo = sarFileCompareInfoServiceImpl.queryById(infoId);
row.createCell(1).setCellValue(compareInfo.getComments());
}
for (int j = 0; j < 7; j++) {
sheet.autoSizeColumn(j, true);//设置列宽
}
os = response.getOutputStream();
// File file = new File("C://work/ee.xlsx");
// os = new FileOutputStream(file);
workbook.write(os);
os.flush();
} catch (IOException e) {
if (CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("下载文件失败");
} else {
throw new JeroBootException("Failed to download file");
}
} finally {
IOUtils.closeQuietly(os);
}
}
}
@@ -1,29 +1,35 @@
package com.jero.modules.compare.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.compare.entity.SarFileCompareItem;
import com.jero.modules.compare.mapper.SarFileCompareItemMapper;
import com.jero.modules.compare.service.ISarFileCompareItemService;
import com.jero.modules.compare.utils.CompareConst;
import com.jero.modules.system.util.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Description: 文档对比信息条款表
* @Author: jero-boot
* @Date: 2022-08-02
* @Date: 2022-08-02
* @Version: V1.0
*/
@Service
public class SarFileCompareItemServiceImpl extends ServiceImpl<SarFileCompareItemMapper, SarFileCompareItem> implements ISarFileCompareItemService {
/**
* 保存
*
* @param sarFileCompareItem
* @return
*/
@Override
/**
* 保存
*
* @param sarFileCompareItem
* @return
*/
@Override
public void add(SarFileCompareItem sarFileCompareItem) {
Date now = new Date();
sarFileCompareItem.setCreateTime(now);
@@ -31,59 +37,89 @@ public class SarFileCompareItemServiceImpl extends ServiceImpl<SarFileCompareIte
save(sarFileCompareItem);
}
/**
* 更新
*
* @param sarFileCompareItem
* @return
*/
@Override
/**
* 更新
*
* @param sarFileCompareItem
* @return
*/
@Override
public void editById(SarFileCompareItem sarFileCompareItem) {
Date now = new Date();
Date now = new Date();
sarFileCompareItem.setUpdateTime(now);
saveOrUpdate(sarFileCompareItem);
saveOrUpdate(sarFileCompareItem);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
@Override
public void updateReviewedById(String id) {
if (!StringUtils.isEmpty(id)) {
SarFileCompareItem item = getById(id);
if (null != item && item.getReviewed() == CompareConst.NO_REVIEWED) {
item.setReviewed(CompareConst.REVIEWED);
editById(item);
}
}
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public SarFileCompareItem queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
* 列表查询
*
* @return
*/
@Override
public List<SarFileCompareItem> queryList() {
return list();
}
@Override
public List<SarFileCompareItem> queryListByInfoId(String infoId) {
LambdaQueryWrapper<SarFileCompareItem> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SarFileCompareItem::getInfoId, infoId);
queryWrapper.orderBy(true, true, SarFileCompareItem::getItemsDisplayNum);
List<SarFileCompareItem> list = this.list(queryWrapper);
return list;
}
@Override
public Map<String, SarFileCompareItem> queryMapByInfoId(String infoId) {
Map<String, SarFileCompareItem> resMap = new HashMap<String, SarFileCompareItem>();
List<SarFileCompareItem> list = queryListByInfoId(infoId);
for (SarFileCompareItem item : list) {
resMap.put(item.getId(), item);
}
return resMap;
}
}
@@ -0,0 +1,101 @@
package com.jero.modules.compare.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.compare.entity.SarFileCompareMenu;
import com.jero.modules.compare.mapper.SarFileCompareMenuMapper;
import com.jero.modules.compare.service.ISarFileCompareMenuService;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* @Description: 文档对比信息目录表
* @Author: jero-boot
* @Date: 2022-08-03
* @Version: V1.0
*/
@Service
public class SarFileCompareMenuServiceImpl extends ServiceImpl<SarFileCompareMenuMapper, SarFileCompareMenu> implements ISarFileCompareMenuService {
/**
* 保存
*
* @param sarFileCompareMenu
* @return
*/
@Override
public void add(SarFileCompareMenu sarFileCompareMenu) {
Date now = new Date();
sarFileCompareMenu.setCreateTime(now);
sarFileCompareMenu.setUpdateTime(now);
save(sarFileCompareMenu);
}
/**
* 更新
*
* @param sarFileCompareMenu
* @return
*/
@Override
public void editById(SarFileCompareMenu sarFileCompareMenu) {
Date now = new Date();
sarFileCompareMenu.setUpdateTime(now);
saveOrUpdate(sarFileCompareMenu);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public SarFileCompareMenu queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<SarFileCompareMenu> queryList() {
return list();
}
@Override
public List<SarFileCompareMenu> queryListByInfoId(String infoId) {
LambdaQueryWrapper<SarFileCompareMenu> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SarFileCompareMenu::getInfoId, infoId);
queryWrapper.orderBy(true,true,SarFileCompareMenu::getDisplaySeq);
List<SarFileCompareMenu> list = this.list(queryWrapper);
return list;
}
}
@@ -0,0 +1,159 @@
package com.jero.modules.compare.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import com.jero.modules.compare.entity.SarFileCompareResComVO;
import com.jero.modules.compare.entity.SarFileCompareResComment;
import com.jero.modules.compare.mapper.SarFileCompareResCommentMapper;
import com.jero.modules.compare.service.ISarFileCompareResCommentService;
import com.jero.modules.system.util.StringUtils;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @Description: 文档对比信息结果评论表
* @Author: jero-boot
* @Date: 2022-08-05
* @Version: V1.0
*/
@Service
public class SarFileCompareResCommentServiceImpl extends ServiceImpl<SarFileCompareResCommentMapper, SarFileCompareResComment> implements ISarFileCompareResCommentService {
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/**
* 保存
*
* @param sarFileCompareResComment
* @return
*/
@Override
public void add(SarFileCompareResComment sarFileCompareResComment) {
Date now = new Date();
sarFileCompareResComment.setCreateTime(now);
sarFileCompareResComment.setUpdateTime(now);
save(sarFileCompareResComment);
}
/**
* 更新
*
* @param sarFileCompareResComment
* @return
*/
@Override
public void editById(SarFileCompareResComment sarFileCompareResComment) {
Date now = new Date();
sarFileCompareResComment.setUpdateTime(now);
saveOrUpdate(sarFileCompareResComment);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public SarFileCompareResComment queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<SarFileCompareResComment> queryList() {
return list();
}
public List<SarFileCompareResComVO> queryListByInfoId(String id) {
LambdaQueryWrapper<SarFileCompareResComment> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SarFileCompareResComment::getInfoId, id);
queryWrapper.orderBy(true, true, SarFileCompareResComment::getCreateTime);
List<SarFileCompareResComVO> resList = new ArrayList<>();
List<SarFileCompareResComment> list = this.list(queryWrapper);
for (SarFileCompareResComment rc : list) {
if (StringUtils.isEmpty(rc.getParentId())) {
SarFileCompareResComVO resComVO = wrapperSarFileCompareResComVO(rc);
for (SarFileCompareResComment rc1 : list) {
if (!StringUtils.isEmpty(rc1.getParentId()) && rc1.getParentId().equals(resComVO.getId())) {
resComVO.addResComVo(wrapperSarFileCompareResComVO(rc1));
}
}
resList.add(resComVO);
}
}
return resList;
}
private SarFileCompareResComVO wrapperSarFileCompareResComVO(SarFileCompareResComment rc) {
SarFileCompareResComVO resComVO = new SarFileCompareResComVO();
resComVO.setId(rc.getId());
resComVO.setName(rc.getCreateBy());
resComVO.setCreateTime(sdf.format(rc.getCreateTime()));
resComVO.setContent(rc.getComment());
return resComVO;
}
@Override
public List<SarFileCompareResComVO> queryListByInfoId(String id, String str) {
if (StringUtils.isBlank(str)) {
return queryListByInfoId(id);
}
LambdaQueryWrapper<SarFileCompareResComment> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SarFileCompareResComment::getInfoId, id);
queryWrapper.like(SarFileCompareResComment::getComment, str);
queryWrapper.orderBy(true, true, SarFileCompareResComment::getCreateTime);
List<SarFileCompareResComment> list = this.list(queryWrapper);
Map<String, SarFileCompareResComVO> resCommentMap = new HashMap<>();
List<SarFileCompareResComment> subList = new ArrayList<>();
//先找到一级评论
for (SarFileCompareResComment rc : list) {
if (StringUtils.isEmpty(rc.getParentId())) {
resCommentMap.put(rc.getId(), wrapperSarFileCompareResComVO(rc));
} else {
subList.add(rc);
}
}
//把回复评论放进一级评论下,没有一级评论要查出来放上
for (SarFileCompareResComment rc : subList) {
if (resCommentMap.keySet().contains(rc.getParentId())) {
resCommentMap.get(rc.getParentId()).addResComVo(wrapperSarFileCompareResComVO(rc));
} else {
SarFileCompareResComment prc = this.queryById(rc.getParentId());
SarFileCompareResComVO prcVo = wrapperSarFileCompareResComVO(prc);
prcVo.addResComVo(wrapperSarFileCompareResComVO(rc));
resCommentMap.put(prcVo.getId(), prcVo);
}
}
return Lists.newArrayList(resCommentMap.values());
}
}
@@ -0,0 +1,21 @@
package com.jero.modules.compare.utils;
public class CompareConst {
/**
* 在对比列表左侧
*/
public static String POS_LEFT = "LEFT";
/**
* 在对比列表右侧
*/
public static String POS_RIGHT = "RIGHT";
/**
* 对比条目没有被评论
*/
public static int NO_REVIEWED = 0;
/**
* 对比条目已被评论
*/
public static int REVIEWED = 1;
}
@@ -130,12 +130,12 @@ public class ExtRepoDataServiceImpl extends ServiceImpl<ExtRepoDataMapper, ExtRe
/**
* 列表查询
*
* @param folserId
* @param folderId
* @return
*/
public List<ExtRepoData> queryByFolder(String folserId) {
public List<ExtRepoData> queryByFolder(String folderId) {
LambdaQueryWrapper<ExtRepoData> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ExtRepoData::getSupFolder, folserId);
queryWrapper.eq(ExtRepoData::getSupFolder, folderId);
List<ExtRepoData> list = this.list(queryWrapper);
return list;
}
@@ -269,7 +269,6 @@ public class ExtRepoFolderServiceImpl extends ServiceImpl<ExtRepoFolderMapper, E
* @return
*/
private List<ERFTreeData> getSubFolder(String supId, List<ExtRepoFolder> list, int level) throws Exception {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<ERFTreeData> resList = new ArrayList<ERFTreeData>();
for (ExtRepoFolder erf : list) {
if (supId.equals(erf.getSupFolder())) {
@@ -56,6 +56,7 @@ public class LawsOpinionGatherEOController extends JeroController<LawsOpinionGat
@RequestParam(name="cut", defaultValue="cn") String cut,
HttpServletRequest req) {
QueryWrapper<LawsOpinionGatherEO> queryWrapper = QueryGenerator.initQueryWrapper(lawsOpinionGatherEO, req.getParameterMap());
queryWrapper.orderByDesc("start_time");
Page<LawsOpinionGatherEO> page = new Page<LawsOpinionGatherEO>(pageNo, pageSize);
IPage<LawsOpinionGatherEO> pageList = lawsOpinionGatherEOService.page(page, queryWrapper);
this.lawsOpinionGatherEOService.disposeData(pageList.getRecords(),cut);
@@ -59,6 +59,7 @@ public class LawsTechnologyEvaluationEOController extends JeroController<LawsTec
@RequestParam(name="cut", defaultValue="cn") String cut,
HttpServletRequest req) {
QueryWrapper<LawsTechnologyEvaluationEO> queryWrapper = QueryGenerator.initQueryWrapper(lawsTechnologyEvaluationEO, req.getParameterMap());
queryWrapper.orderByDesc("start_time");
Page<LawsTechnologyEvaluationEO> page = new Page<LawsTechnologyEvaluationEO>(pageNo, pageSize);
IPage<LawsTechnologyEvaluationEO> pageList = lawsTechnologyEvaluationEOService.page(page, queryWrapper);
this.lawsTechnologyEvaluationEOService.disposeData(pageList.getRecords(),cut);
@@ -1,9 +1,13 @@
package com.jero.modules.problemKnowledgeBase.controller;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
@@ -35,7 +39,7 @@ import com.jero.common.aspect.annotation.AutoLog;
public class CountryCardManageReleaseDetailEOController extends JeroController<CountryCardManageReleaseDetailEO, ICountryCardManageReleaseDetailEOService> {
@Autowired
private ICountryCardManageReleaseDetailEOService countryCardManageReleaseDetailEOService;
/**
* 分页列表查询
*
@@ -55,6 +59,7 @@ public class CountryCardManageReleaseDetailEOController extends JeroController<C
QueryWrapper<CountryCardManageReleaseDetailEO> queryWrapper = QueryGenerator.initQueryWrapper(countryCardManageReleaseDetailEO, req.getParameterMap());
Page<CountryCardManageReleaseDetailEO> page = new Page<CountryCardManageReleaseDetailEO>(pageNo, pageSize);
IPage<CountryCardManageReleaseDetailEO> pageList = countryCardManageReleaseDetailEOService.page(page, queryWrapper);
this.countryCardManageReleaseDetailEOService.disposeData(pageList.getRecords(),countryCardManageReleaseDetailEO.getCut());
return Result.OK(pageList);
}
@@ -66,9 +71,10 @@ public class CountryCardManageReleaseDetailEOController extends JeroController<C
@AutoLog(value = "问题知识库-country_card-管理发布明细表-列表查询")
@ApiOperation(value="问题知识库-country_card-管理发布明细表-列表查询", notes="问题知识库-country_card-管理发布明细表-列表查询")
@GetMapping(value = "/list")
public Result<List<CountryCardManageReleaseDetailEO>> queryList() {
List<CountryCardManageReleaseDetailEO> list = countryCardManageReleaseDetailEOService.queryList();
return Result.OK(list);
public Result<List<CountryCardManageReleaseDetailEO>> queryList(CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO,HttpServletRequest req) {
List<CountryCardManageReleaseDetailEO> result = countryCardManageReleaseDetailEOService.queryList(countryCardManageReleaseDetailEO,req);
this.countryCardManageReleaseDetailEOService.disposeData(result,countryCardManageReleaseDetailEO.getCut());
return Result.OK(result);
}
/**
@@ -167,4 +173,25 @@ public class CountryCardManageReleaseDetailEOController extends JeroController<C
return super.importExcel(request, response, CountryCardManageReleaseDetailEO.class);
}
/**
* 批量编辑
*
* @param json
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布明细表-批量编辑")
@ApiOperation(value="问题知识库-country_card-管理发布明细表-批量编辑", notes="问题知识库-country_card-管理发布明细表-批量编辑")
@PostMapping(value = "/editBatch")
public Result<?> editBatch(@RequestBody JSONObject json) {
JSONArray countryCardManageReleaseDetailEOList = json.getJSONArray("countryCardManageReleaseDetailEOList");
List<CountryCardManageReleaseDetailEO> releaseDetailEOList = new ArrayList<>();
CountryCardManageReleaseDetailEO releaseDetailEO = null;
for (Object releaseDetail : countryCardManageReleaseDetailEOList) {
releaseDetailEO = JSONObject.parseObject(JSONObject.toJSONString(releaseDetail),CountryCardManageReleaseDetailEO.class);
releaseDetailEOList.add(releaseDetailEO);
}
this.countryCardManageReleaseDetailEOService.updateBatchById(releaseDetailEOList);
return Result.OK("编辑成功!");
}
}
@@ -4,8 +4,11 @@ import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.DictModel;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardManageReleaseEOService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -35,7 +38,7 @@ import com.jero.common.aspect.annotation.AutoLog;
public class CountryCardManageReleaseEOController extends JeroController<CountryCardManageReleaseEO, ICountryCardManageReleaseEOService> {
@Autowired
private ICountryCardManageReleaseEOService countryCardManageReleaseEOService;
/**
* 分页列表查询
*
@@ -51,11 +54,14 @@ public class CountryCardManageReleaseEOController extends JeroController<Country
public Result<?> queryPageList(CountryCardManageReleaseEO countryCardManageReleaseEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
@RequestParam(name="cut", defaultValue="cn") String cut,
HttpServletRequest req) {
QueryWrapper<CountryCardManageReleaseEO> queryWrapper = QueryGenerator.initQueryWrapper(countryCardManageReleaseEO, req.getParameterMap());
queryWrapper.orderByDesc("create_time");
Page<CountryCardManageReleaseEO> page = new Page<CountryCardManageReleaseEO>(pageNo, pageSize);
IPage<CountryCardManageReleaseEO> pageList = countryCardManageReleaseEOService.page(page, queryWrapper);
return Result.OK(pageList);
this.countryCardManageReleaseEOService.disposeData(pageList.getRecords(),cut);
return Result.OK(cut,pageList);
}
/**
@@ -167,4 +173,42 @@ public class CountryCardManageReleaseEOController extends JeroController<Country
return super.importExcel(request, response, CountryCardManageReleaseEO.class);
}
/**
* 更新状态 发布或撤回
* @param json
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布表-发布或撤回")
@ApiOperation(value="问题知识库-country_card-管理发布表-发布或撤回", notes="问题知识库-country_card-管理发布表-发布或撤回")
@PostMapping(value = "/batchUpdateReleaseStatus")
public Result<?> batchUpdateReleaseStatus(@RequestBody JSONObject json) {
this.countryCardManageReleaseEOService.batchUpdateReleaseStatus(json);
return Result.OK("批量更新发布状态成功!");
}
/**
* 管理发布查询适用市场下拉选,只获取管理发布中没有的适用市场。
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布-获取适用市场下拉选")
@ApiOperation(value="问题知识库-country_card-管理发布-获取适用市场下拉选", notes="问题知识库-country_card-管理发布-获取适用市场下拉选")
@GetMapping(value = "/getApplyMarketList")
public Result<List<DictModel>> getApplyMarketList(@RequestParam(name = "queryFlag",required=false) String queryFlag) {
Result<List<DictModel>> result = this.countryCardManageReleaseEOService.getApplyMarketList(queryFlag);
return result;
}
/**
* 根据多个适用地区查询数据
*
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布表-根据多个适用地区查询数据")
@ApiOperation(value="问题知识库-country_card-管理发布表-根据多个适用地区查询数据", notes="问题知识库-country_card-管理发布表-根据多个适用地区查询数据")
@PostMapping(value = "/queryCountryCardManageReleaseByApplyMarkets")
public Result<List<CountryCardManageReleaseEO>> queryCountryCardManageReleaseByApplyMarkets(@RequestBody JSONObject params) {
List<CountryCardManageReleaseEO> list = countryCardManageReleaseEOService.queryCountryCardManageReleaseByApplyMarkets(params);
return Result.OK(list);
}
}
@@ -54,6 +54,7 @@ public class CountryCardTempEOController extends JeroController<CountryCardTempE
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<CountryCardTempEO> queryWrapper = QueryGenerator.initQueryWrapper(countryCardTempEO, req.getParameterMap());
queryWrapper.orderByAsc("order_num");
Page<CountryCardTempEO> page = new Page<CountryCardTempEO>(pageNo, pageSize);
IPage<CountryCardTempEO> pageList = countryCardTempEOService.page(page, queryWrapper);
this.countryCardTempEOService.disposeData(pageList.getRecords(),countryCardTempEO.getCut());
@@ -96,7 +97,7 @@ public class CountryCardTempEOController extends JeroController<CountryCardTempE
*/
@AutoLog(value = "Country Card模板维护表-编辑")
@ApiOperation(value="Country Card模板维护表-编辑", notes="Country Card模板维护表-编辑")
@PutMapping(value = "/edit")
@PostMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody CountryCardTempEO countryCardTempEO) {
countryCardTempEOService.editById(countryCardTempEO);
return Result.OK("编辑成功!");
@@ -167,4 +167,14 @@ public class CountryCardTempItemEOController extends JeroController<CountryCardT
return super.importExcel(request, response, CountryCardTempItemEO.class);
}
@AutoLog(value = "Country Card模板维护-字典项表-通过模板维护表id删除")
@ApiOperation(value="Country Card模板维护-字典项表-通过模板维护表id删除", notes="Country Card模板维护-字典项表-通过模板维护表id删除")
@DeleteMapping(value = "/deleteByCountryCardTempId")
public Result<?> deleteByCountryCardTempId(@RequestParam(name="countryCardTempId",required=true) String countryCardTempId) {
QueryWrapper<CountryCardTempItemEO> deleteWrapper = new QueryWrapper<>();
deleteWrapper.lambda().eq(CountryCardTempItemEO::getCountryCardTempId,countryCardTempId);
this.countryCardTempItemEOService.remove(deleteWrapper);
return Result.OK("删除成功!");
}
}
@@ -0,0 +1,170 @@
package com.jero.modules.problemKnowledgeBase.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.problemKnowledgeBase.entity.CountryNationalFlagEO;
import com.jero.modules.problemKnowledgeBase.service.ICountryNationalFlagEOService;
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: jero-boot
* @Date: 2022-08-09
* @Version: V1.0
*/
@Api(tags="国家与国旗中间表")
@RestController
@RequestMapping("/problemKnowledgeBase/countryNationalFlagEO")
@Slf4j
public class CountryNationalFlagEOController extends JeroController<CountryNationalFlagEO, ICountryNationalFlagEOService> {
@Autowired
private ICountryNationalFlagEOService countryNationalFlagEOService;
/**
* 分页列表查询
*
* @param countryNationalFlagEO
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "国家与国旗中间表-分页列表查询")
@ApiOperation(value="国家与国旗中间表-分页列表查询", notes="国家与国旗中间表-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(CountryNationalFlagEO countryNationalFlagEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<CountryNationalFlagEO> queryWrapper = QueryGenerator.initQueryWrapper(countryNationalFlagEO, req.getParameterMap());
Page<CountryNationalFlagEO> page = new Page<CountryNationalFlagEO>(pageNo, pageSize);
IPage<CountryNationalFlagEO> pageList = countryNationalFlagEOService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "国家与国旗中间表-列表查询")
@ApiOperation(value="国家与国旗中间表-列表查询", notes="国家与国旗中间表-列表查询")
@GetMapping(value = "/list")
public Result<List<CountryNationalFlagEO>> queryList() {
List<CountryNationalFlagEO> list = countryNationalFlagEOService.queryList();
return Result.OK(list);
}
/**
* 添加
*
* @param countryNationalFlagEO
* @return
*/
@AutoLog(value = "国家与国旗中间表-添加")
@ApiOperation(value="国家与国旗中间表-添加", notes="国家与国旗中间表-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody CountryNationalFlagEO countryNationalFlagEO) {
countryNationalFlagEOService.add(countryNationalFlagEO);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param countryNationalFlagEO
* @return
*/
@AutoLog(value = "国家与国旗中间表-编辑")
@ApiOperation(value="国家与国旗中间表-编辑", notes="国家与国旗中间表-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody CountryNationalFlagEO countryNationalFlagEO) {
countryNationalFlagEOService.editById(countryNationalFlagEO);
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) {
countryNationalFlagEOService.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.countryNationalFlagEOService.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) {
CountryNationalFlagEO countryNationalFlagEO = countryNationalFlagEOService.queryById(id);
if(countryNationalFlagEO==null) {
return Result.error("未找到对应数据");
}
return Result.OK(countryNationalFlagEO);
}
/**
* 导出excel
*
* @param request
* @param countryNationalFlagEO
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, CountryNationalFlagEO countryNationalFlagEO) {
return super.exportXls(request, countryNationalFlagEO, CountryNationalFlagEO.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, CountryNationalFlagEO.class);
}
}
@@ -35,7 +35,7 @@ import com.jero.common.aspect.annotation.AutoLog;
public class ProblemKnowledgeBaseClassifyEOController extends JeroController<ProblemKnowledgeBaseClassifyEO, IProblemKnowledgeBaseClassifyEOService> {
@Autowired
private IProblemKnowledgeBaseClassifyEOService problemKnowledgeBaseClassifyEOService;
/**
* 分页列表查询
*
@@ -53,8 +53,10 @@ public class ProblemKnowledgeBaseClassifyEOController extends JeroController<Pro
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ProblemKnowledgeBaseClassifyEO> queryWrapper = QueryGenerator.initQueryWrapper(problemKnowledgeBaseClassifyEO, req.getParameterMap());
queryWrapper.orderByDesc("create_time");
Page<ProblemKnowledgeBaseClassifyEO> page = new Page<ProblemKnowledgeBaseClassifyEO>(pageNo, pageSize);
IPage<ProblemKnowledgeBaseClassifyEO> pageList = problemKnowledgeBaseClassifyEOService.page(page, queryWrapper);
this.problemKnowledgeBaseClassifyEOService.disposeData(pageList.getRecords());
return Result.OK(pageList);
}
@@ -68,6 +70,7 @@ public class ProblemKnowledgeBaseClassifyEOController extends JeroController<Pro
@GetMapping(value = "/list")
public Result<List<ProblemKnowledgeBaseClassifyEO>> queryList() {
List<ProblemKnowledgeBaseClassifyEO> list = problemKnowledgeBaseClassifyEOService.queryList();
this.problemKnowledgeBaseClassifyEOService.disposeData(list);
return Result.OK(list);
}
@@ -93,7 +96,7 @@ public class ProblemKnowledgeBaseClassifyEOController extends JeroController<Pro
*/
@AutoLog(value = "问题知识库-分类表-编辑")
@ApiOperation(value="问题知识库-分类表-编辑", notes="问题知识库-分类表-编辑")
@PutMapping(value = "/edit")
@PostMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody ProblemKnowledgeBaseClassifyEO problemKnowledgeBaseClassifyEO) {
problemKnowledgeBaseClassifyEOService.editById(problemKnowledgeBaseClassifyEO);
return Result.OK("编辑成功!");
@@ -35,7 +35,7 @@ import com.jero.common.aspect.annotation.AutoLog;
public class ProblemKnowledgeBaseCommentEOController extends JeroController<ProblemKnowledgeBaseCommentEO, IProblemKnowledgeBaseCommentEOService> {
@Autowired
private IProblemKnowledgeBaseCommentEOService problemKnowledgeBaseCommentEOService;
/**
* 分页列表查询
*
@@ -53,6 +53,7 @@ public class ProblemKnowledgeBaseCommentEOController extends JeroController<Prob
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ProblemKnowledgeBaseCommentEO> queryWrapper = QueryGenerator.initQueryWrapper(problemKnowledgeBaseCommentEO, req.getParameterMap());
queryWrapper.orderByDesc("create_time");
Page<ProblemKnowledgeBaseCommentEO> page = new Page<ProblemKnowledgeBaseCommentEO>(pageNo, pageSize);
IPage<ProblemKnowledgeBaseCommentEO> pageList = problemKnowledgeBaseCommentEOService.page(page, queryWrapper);
return Result.OK(pageList);
@@ -66,8 +67,8 @@ public class ProblemKnowledgeBaseCommentEOController extends JeroController<Prob
@AutoLog(value = "问题知识库评论表-列表查询")
@ApiOperation(value="问题知识库评论表-列表查询", notes="问题知识库评论表-列表查询")
@GetMapping(value = "/list")
public Result<List<ProblemKnowledgeBaseCommentEO>> queryList() {
List<ProblemKnowledgeBaseCommentEO> list = problemKnowledgeBaseCommentEOService.queryList();
public Result<List<ProblemKnowledgeBaseCommentEO>> queryList(ProblemKnowledgeBaseCommentEO problemKnowledgeBaseCommentEO,HttpServletRequest req) {
List<ProblemKnowledgeBaseCommentEO> list = problemKnowledgeBaseCommentEOService.queryList(problemKnowledgeBaseCommentEO,req);
return Result.OK(list);
}
@@ -35,7 +35,7 @@ import com.jero.common.aspect.annotation.AutoLog;
public class ProblemKnowledgeBaseEOController extends JeroController<ProblemKnowledgeBaseEO, IProblemKnowledgeBaseEOService> {
@Autowired
private IProblemKnowledgeBaseEOService problemKnowledgeBaseEOService;
/**
* 分页列表查询
*
@@ -53,8 +53,11 @@ public class ProblemKnowledgeBaseEOController extends JeroController<ProblemKnow
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper = QueryGenerator.initQueryWrapper(problemKnowledgeBaseEO, req.getParameterMap());
this.problemKnowledgeBaseEOService.createQueryPermission(queryWrapper,problemKnowledgeBaseEO);
queryWrapper.orderByDesc("create_time");
Page<ProblemKnowledgeBaseEO> page = new Page<ProblemKnowledgeBaseEO>(pageNo, pageSize);
IPage<ProblemKnowledgeBaseEO> pageList = problemKnowledgeBaseEOService.page(page, queryWrapper);
this.problemKnowledgeBaseEOService.disposeData(pageList.getRecords(),problemKnowledgeBaseEO.getCut());
return Result.OK(pageList);
}
@@ -66,8 +69,9 @@ public class ProblemKnowledgeBaseEOController extends JeroController<ProblemKnow
@AutoLog(value = "问题知识库表-列表查询")
@ApiOperation(value="问题知识库表-列表查询", notes="问题知识库表-列表查询")
@GetMapping(value = "/list")
public Result<List<ProblemKnowledgeBaseEO>> queryList() {
List<ProblemKnowledgeBaseEO> list = problemKnowledgeBaseEOService.queryList();
public Result<List<ProblemKnowledgeBaseEO>> queryList(ProblemKnowledgeBaseEO problemKnowledgeBaseEO,
HttpServletRequest req) {
List<ProblemKnowledgeBaseEO> list = problemKnowledgeBaseEOService.queryList(problemKnowledgeBaseEO,req);
return Result.OK(list);
}
@@ -136,8 +140,9 @@ public class ProblemKnowledgeBaseEOController extends JeroController<ProblemKnow
@AutoLog(value = "问题知识库表-通过id查询")
@ApiOperation(value="问题知识库表-通过id查询", notes="问题知识库表-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
ProblemKnowledgeBaseEO problemKnowledgeBaseEO = problemKnowledgeBaseEOService.queryById(id);
public Result<?> queryById(@RequestParam(name="id",required=true) String id,
@RequestParam(name="cut",required=true) String cut) {
ProblemKnowledgeBaseEO problemKnowledgeBaseEO = problemKnowledgeBaseEOService.queryById(id,cut);
if(problemKnowledgeBaseEO==null) {
return Result.error("未找到对应数据");
}
@@ -1,21 +1,20 @@
package com.jero.modules.problemKnowledgeBase.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.List;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
@@ -70,6 +69,10 @@ public class CountryCardManageReleaseDetailEO implements Serializable {
@Excel(name = "模板表id", width = 15)
@ApiModelProperty(value = "模板表id")
private java.lang.String countryCardTempId;
/**标签名称**/
@TableField(exist = false)
@ApiModelProperty(value = "标签名称")
private java.lang.String lableName;
/**描述*/
@Excel(name = "描述", width = 15)
@@ -81,4 +84,15 @@ public class CountryCardManageReleaseDetailEO implements Serializable {
@ApiModelProperty(value = "内容")
private java.lang.String content;
@TableField(exist = false)
private String cut;
/**标签类型**/
@TableField(exist = false)
@ApiModelProperty(value = "标签类型")
private String lableType;
/**Country Card模板维护-字典项实体*/
@TableField(exist = false)
private List<CountryCardTempItemEO> countryCardTempItemEOList;
}
@@ -3,7 +3,10 @@ package com.jero.modules.problemKnowledgeBase.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.List;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -64,6 +67,7 @@ public class CountryCardManageReleaseEO implements Serializable {
/**适用市场*/
@Excel(name = "适用市场", width = 15)
@ApiModelProperty(value = "适用市场")
@Dict(dicCode = "region")
private java.lang.String applyMarket;
/**发布状态*/
@@ -71,4 +75,16 @@ public class CountryCardManageReleaseEO implements Serializable {
@ApiModelProperty(value = "发布状态")
private java.lang.String releaseStatus;
/**发布状态展示字段**/
@TableField(exist = false)
private String releaseStatus_dictText;
/**问题知识库-country_card-管理发布明细数组**/
@TableField(exist = false)
private List<CountryCardManageReleaseDetailEO> countryCardManageReleaseDetailEOList;
/**国旗**/
@TableField(exist = false)
private java.lang.String countryNationalFlag;
}
@@ -73,6 +73,8 @@ public class CountryCardTempEO implements Serializable {
@Excel(name = "标签类型", width = 15)
@ApiModelProperty(value = "标签类型")
private java.lang.String lableType;
@TableField(exist = false)
private java.lang.String lableType_dicText;
/**展示顺序*/
@Excel(name = "展示顺序", width = 15)
@@ -0,0 +1,84 @@
package com.jero.modules.problemKnowledgeBase.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* @Description: 国家与国旗中间表
* @Author: jero-boot
* @Date: 2022-08-09
* @Version: V1.0
*/
@Data
@TableName("country_national_flag")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="country_national_flag对象", description="国家与国旗中间表")
public class CountryNationalFlagEO implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.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 java.lang.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 java.lang.String sysOrgCode;
/**国家名称*/
@Excel(name = "国家名称中文", width = 15)
@ApiModelProperty(value = "国家名称中文")
private java.lang.String countryNameCn;
/**国家名称*/
@Excel(name = "国家名称英文", width = 15)
@ApiModelProperty(value = "国家名称英文")
private java.lang.String countryNameEn;
/**国旗文件id*/
@Excel(name = "国旗文件id", width = 15)
@ApiModelProperty(value = "国旗文件id")
private java.lang.String nationalFlagId;
/**国旗文件url*/
@Excel(name = "国旗文件url", width = 15)
@ApiModelProperty(value = "国旗文件url")
private java.lang.String nationalFlagUrl;
}
@@ -4,6 +4,7 @@ import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -70,5 +71,7 @@ public class ProblemKnowledgeBaseClassifyEO implements Serializable {
@Excel(name = "负责人id", width = 15)
@ApiModelProperty(value = "负责人id")
private java.lang.String chargePersonId;
@TableField(exist = false)
private java.lang.String chargePersonIdName;
}
@@ -1,9 +1,10 @@
package com.jero.modules.problemKnowledgeBase.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.List;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -15,8 +16,6 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* @Description: 问题知识库表
@@ -70,8 +69,12 @@ public class ProblemKnowledgeBaseEO implements Serializable {
@Excel(name = "问题分类", width = 15)
@ApiModelProperty(value = "问题分类")
private java.lang.String problemType;
/**问题分类展示名称*/
@TableField(exist = false)
private java.lang.String problemTypeName;
/**市场*/
@Dict(dicCode = "region")
@Excel(name = "市场", width = 15)
@ApiModelProperty(value = "市场")
private java.lang.String targetMarket;
@@ -93,9 +96,9 @@ public class ProblemKnowledgeBaseEO implements Serializable {
/**内容(正文)*/
@Excel(name = "内容(正文)", width = 15)
private transient java.lang.String contentString;
private java.lang.String content;
private byte[] content;
/*private byte[] content;
public byte[] getContent(){
if(contentString==null){
@@ -119,7 +122,7 @@ public class ProblemKnowledgeBaseEO implements Serializable {
e.printStackTrace();
}
return "";
}
}*/
/**附件*/
@Excel(name = "附件", width = 15)
@ApiModelProperty(value = "附件")
@@ -129,6 +132,13 @@ public class ProblemKnowledgeBaseEO implements Serializable {
@Excel(name = "展示权限", width = 15)
@ApiModelProperty(value = "展示权限")
private java.lang.String showPermissions;
/**展示权限翻译*/
@TableField(exist = false)
private java.lang.String showPermissions_dicText;
/**允许的用户列表*/
@TableField(exist = false)
private List<ProblemKnowledgeBaseUserEO> permissionUserList;
/**发布人id*/
@Excel(name = "展示权限", width = 15)
@@ -140,4 +150,29 @@ public class ProblemKnowledgeBaseEO implements Serializable {
@ApiModelProperty(value = "发布日期")
private java.lang.String releaseTime;
/**点赞总数量*/
@TableField(exist = false)
private long praiseCount;
/**自己的点赞信息*/
@TableField(exist = false)
private ProblemKnowledgeBasePraiseEO praiseEO;
/**收藏总数量*/
@TableField(exist = false)
private long collectCount;
/**自己的收藏信息*/
@TableField(exist = false)
private ProblemKnowledgeBaseCollectEO collectEO;
/**浏览总数量*/
@TableField(exist = false)
private long browsingHistoryCount;
/**中英文切换*/
@TableField(exist = false)
private String cut;
/**模糊搜索全部输入字段条件*/
@TableField(exist = false)
private String searchStr;
}
@@ -4,6 +4,7 @@ import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -70,5 +71,8 @@ public class ProblemKnowledgeBaseUserEO implements Serializable {
@Excel(name = "用户id", width = 15)
@ApiModelProperty(value = "用户id")
private java.lang.String userId;
/**用户姓名*/
@TableField(exist = false)
private String userName;
}
@@ -0,0 +1,46 @@
package com.jero.modules.problemKnowledgeBase.enums;
import com.jero.common.constant.enums.CutEnum;
import org.apache.commons.lang3.StringUtils;
/**
* 问题知识库-收藏状态枚举类
*/
public enum CollectStatusEnum {
COLLECT("收藏","Collect","Collect"),
CANCEL_COLLECT("取消收藏","Cancel collect","Cancel collect"),
;
String cnName;
String enName;
String value;
private CollectStatusEnum(String cnName, String enName, String value) {
this.cnName = cnName;
this.enName = enName;
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static String getTextByValue(String value,String cut) {
CollectStatusEnum[] values = values();
for (CollectStatusEnum collectStatusEnum : values) {
if (collectStatusEnum.value.equals(value)) {
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
return collectStatusEnum.cnName;
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
return collectStatusEnum.enName;
}
}
}
return null;
}
}
@@ -35,12 +35,12 @@ public enum LableTypeEnum {
public static String getTextByValue(String value,String cut) {
LableTypeEnum[] values = values();
for (LableTypeEnum taskStatusEnum : values) {
if (taskStatusEnum.value.equals(value)) {
for (LableTypeEnum lableTypeEnum : values) {
if (lableTypeEnum.value.equals(value)) {
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
return taskStatusEnum.cnName;
return lableTypeEnum.cnName;
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
return taskStatusEnum.enName;
return lableTypeEnum.enName;
}
}
}
@@ -0,0 +1,46 @@
package com.jero.modules.problemKnowledgeBase.enums;
import com.jero.common.constant.enums.CutEnum;
import org.apache.commons.lang3.StringUtils;
/**
* 问题知识库-点赞状态枚举类
*/
public enum PraiseStatusEnum {
PRAISE("点赞","Praise","Praise"),
CANCEL_PRAISE("取消点赞","Cancel praise","Cancel praise"),
;
String cnName;
String enName;
String value;
private PraiseStatusEnum(String cnName, String enName, String value) {
this.cnName = cnName;
this.enName = enName;
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static String getTextByValue(String value,String cut) {
PraiseStatusEnum[] values = values();
for (PraiseStatusEnum praiseStatusEnum : values) {
if (praiseStatusEnum.value.equals(value)) {
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
return praiseStatusEnum.cnName;
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
return praiseStatusEnum.enName;
}
}
}
return null;
}
}
@@ -0,0 +1,47 @@
package com.jero.modules.problemKnowledgeBase.enums;
import com.jero.common.constant.enums.CutEnum;
import org.apache.commons.lang3.StringUtils;
/**
* 发布状态枚举类
*/
public enum ReleaseStatusEnum {
HAVE_RELEASED("已发布","Have released","Have released"),
DRAFT("草稿","Draft","Draft"),
;
String cnName;
String enName;
String value;
private ReleaseStatusEnum(String cnName, String enName, String value) {
this.cnName = cnName;
this.enName = enName;
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static String getTextByValue(String value,String cut) {
ReleaseStatusEnum[] values = values();
for (ReleaseStatusEnum releaseStatusEnum : values) {
if (releaseStatusEnum.value.equals(value)) {
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
return releaseStatusEnum.cnName;
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
return releaseStatusEnum.enName;
}
}
}
return null;
}
}
@@ -0,0 +1,46 @@
package com.jero.modules.problemKnowledgeBase.enums;
import com.jero.common.constant.enums.CutEnum;
import org.apache.commons.lang3.StringUtils;
/**
* 问题知识库-展示权限枚举类
*/
public enum ShowPermissionsEnum {
OPEN("公开","Open","Open"),
PRIVACY("私密","Privacy","Privacy"),
;
String cnName;
String enName;
String value;
private ShowPermissionsEnum(String cnName, String enName, String value) {
this.cnName = cnName;
this.enName = enName;
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static String getTextByValue(String value,String cut) {
ShowPermissionsEnum[] values = values();
for (ShowPermissionsEnum showPermissionsEnum : values) {
if (showPermissionsEnum.value.equals(value)) {
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
return showPermissionsEnum.cnName;
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
return showPermissionsEnum.enName;
}
}
}
return null;
}
}
@@ -0,0 +1,17 @@
package com.jero.modules.problemKnowledgeBase.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.problemKnowledgeBase.entity.CountryNationalFlagEO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 国家与国旗中间表
* @Author: jero-boot
* @Date: 2022-08-09
* @Version: V1.0
*/
public interface CountryNationalFlagEOMapper extends BaseMapper<CountryNationalFlagEO> {
}
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.problemKnowledgeBase.mapper.CountryNationalFlagEOMapper">
<resultMap id="CountryNationalFlagEOResultMap" type="com.jero.modules.problemKnowledgeBase.entity.CountryNationalFlagEO">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="country_name_cn" property="countryNameCn" />
<result column="country_name_en" property="countryNameEn" />
<result column="national_flag_id" property="nationalFlagId" />
<result column="national_flag_url" property="nationalFlagUrl" />
</resultMap>
</mapper>
@@ -2,6 +2,8 @@ package com.jero.modules.problemKnowledgeBase.service;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
@@ -57,5 +59,12 @@ public interface ICountryCardManageReleaseDetailEOService extends IService<Count
*
* @return
*/
List<CountryCardManageReleaseDetailEO> queryList();
List<CountryCardManageReleaseDetailEO> queryList(CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO, HttpServletRequest req);
/**
* 处理数据
* @param datas
* @param cut
*/
void disposeData(List<CountryCardManageReleaseDetailEO> datas, String cut);
}
@@ -1,5 +1,8 @@
package com.jero.modules.problemKnowledgeBase.service;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.common.system.vo.DictModel;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
@@ -58,4 +61,25 @@ public interface ICountryCardManageReleaseEOService extends IService<CountryCard
* @return
*/
List<CountryCardManageReleaseEO> queryList();
/**
* 处理数据
* @param datas
* @param cut
*/
void disposeData(List<CountryCardManageReleaseEO> datas, String cut);
/**
* 批量更新发布状态
* @param json
*/
void batchUpdateReleaseStatus(JSONObject json);
/**
* 获取适用市场
* @return
*/
Result<List<DictModel>> getApplyMarketList(String queryFlag);
List<CountryCardManageReleaseEO> queryCountryCardManageReleaseByApplyMarkets(JSONObject params);
}
@@ -67,4 +67,16 @@ public interface ICountryCardTempEOService extends IService<CountryCardTempEO> {
* @param cut
*/
void disposeData(List<CountryCardTempEO> datas, String cut);
/**
* 设置编辑时排序号
* @param countryCardTempEO
*/
void setEditOrderNum(CountryCardTempEO countryCardTempEO);
/**
* 设置新增时的排序号
* @param countryCardTempEO
*/
void setAddOrderNum(CountryCardTempEO countryCardTempEO);
}
@@ -0,0 +1,61 @@
package com.jero.modules.problemKnowledgeBase.service;
import com.jero.modules.problemKnowledgeBase.entity.CountryNationalFlagEO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 国家与国旗中间表
* @Author: jero-boot
* @Date: 2022-08-09
* @Version: V1.0
*/
public interface ICountryNationalFlagEOService extends IService<CountryNationalFlagEO> {
/**
* 保存
*
* @param countryNationalFlagEO
* @return
*/
void add(CountryNationalFlagEO countryNationalFlagEO);
/**
* 更新
*
* @param countryNationalFlagEO
* @return
*/
void editById(CountryNationalFlagEO countryNationalFlagEO);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
CountryNationalFlagEO queryById(String id);
/**
* 列表查询
*
* @return
*/
List<CountryNationalFlagEO> queryList();
}
@@ -58,4 +58,10 @@ public interface IProblemKnowledgeBaseClassifyEOService extends IService<Problem
* @return
*/
List<ProblemKnowledgeBaseClassifyEO> queryList();
/**
* 处理数据
* @param datas
*/
void disposeData(List<ProblemKnowledgeBaseClassifyEO> datas);
}
@@ -2,6 +2,8 @@ package com.jero.modules.problemKnowledgeBase.service;
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseCommentEO;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
@@ -57,5 +59,5 @@ public interface IProblemKnowledgeBaseCommentEOService extends IService<ProblemK
*
* @return
*/
List<ProblemKnowledgeBaseCommentEO> queryList();
List<ProblemKnowledgeBaseCommentEO> queryList(ProblemKnowledgeBaseCommentEO problemKnowledgeBaseCommentEO, HttpServletRequest req);
}
@@ -1,7 +1,10 @@
package com.jero.modules.problemKnowledgeBase.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
@@ -50,12 +53,26 @@ public interface IProblemKnowledgeBaseEOService extends IService<ProblemKnowledg
* @param id
* @return
*/
ProblemKnowledgeBaseEO queryById(String id);
ProblemKnowledgeBaseEO queryById(String id,String cut);
/**
* 列表查询
*
* @return
*/
List<ProblemKnowledgeBaseEO> queryList();
List<ProblemKnowledgeBaseEO> queryList(ProblemKnowledgeBaseEO problemKnowledgeBaseEO,
HttpServletRequest req);
/**
* 处理数据
* @param datas
* @param cut
*/
void disposeData(List<ProblemKnowledgeBaseEO> datas,String cut);
/**
* 创建查询权限
* @param queryWrapper
*/
void createQueryPermission(QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper,ProblemKnowledgeBaseEO problemKnowledgeBaseEO);
}
@@ -58,4 +58,11 @@ public interface IProblemKnowledgeBaseUserEOService extends IService<ProblemKnow
* @return
*/
List<ProblemKnowledgeBaseUserEO> queryList();
/**
* 处理数据
* @param datas
* @param cut
*/
void disposeData(List<ProblemKnowledgeBaseUserEO> datas,String cut);
}
@@ -1,15 +1,29 @@
package com.jero.modules.problemKnowledgeBase.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardTempEO;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardTempItemEO;
import com.jero.modules.problemKnowledgeBase.enums.LableTypeEnum;
import com.jero.modules.problemKnowledgeBase.mapper.CountryCardManageReleaseDetailEOMapper;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardManageReleaseDetailEOService;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardTempEOService;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardTempItemEOService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
/**
* @Description: 问题知识库-country_card-管理发布明细表
* @Author: jero-boot
@@ -20,6 +34,11 @@ import org.springframework.transaction.annotation.Transactional;
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class CountryCardManageReleaseDetailEOServiceImpl extends ServiceImpl<CountryCardManageReleaseDetailEOMapper, CountryCardManageReleaseDetailEO> implements ICountryCardManageReleaseDetailEOService {
@Autowired
private ICountryCardTempEOService countryCardTempEOService;
@Autowired
private ICountryCardTempItemEOService countryCardTempItemEOService;
/**
* 保存
*
@@ -86,7 +105,52 @@ public class CountryCardManageReleaseDetailEOServiceImpl extends ServiceImpl<Cou
* @return
*/
@Override
public List<CountryCardManageReleaseDetailEO> queryList() {
return list();
public List<CountryCardManageReleaseDetailEO> queryList(CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO, HttpServletRequest req) {
QueryWrapper<CountryCardManageReleaseDetailEO> queryWrapper = QueryGenerator.initQueryWrapper(countryCardManageReleaseDetailEO, req.getParameterMap());
queryWrapper.orderByDesc("create_time");
List<CountryCardManageReleaseDetailEO> result = this.list(queryWrapper);
return result;
}
@Override
public void disposeData(List<CountryCardManageReleaseDetailEO> datas, String cut) {
if (CollectionUtils.isNotEmpty(datas)) {
//获取模板
List<CountryCardTempEO> countryCardTempEOList = this.countryCardTempEOService.list();
List<String> countroCardTempIdList = countryCardTempEOList.stream().map(CountryCardTempEO::getId).distinct().collect(Collectors.toList());
QueryWrapper<CountryCardTempItemEO> tempItemEOQueryWrapper = new QueryWrapper<>();
tempItemEOQueryWrapper.lambda().in(CountryCardTempItemEO::getCountryCardTempId,countroCardTempIdList);
List<CountryCardTempItemEO> countryCardTempItemEOList = this.countryCardTempItemEOService.list(tempItemEOQueryWrapper);
datas.forEach(data -> {
List<CountryCardTempEO> countryCardTemp = countryCardTempEOList.stream().filter(countryCardTempEO -> {
boolean flag = false;
if (StringUtils.equals(data.getCountryCardTempId(), countryCardTempEO.getId())) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(countryCardTemp)){
data.setLableName(countryCardTemp.get(0).getLableName());
data.setLableType(countryCardTemp.get(0).getLableType());
}
//如果该条数据的标签类型是下拉选项
if(CollectionUtils.isNotEmpty(countryCardTempItemEOList) && StringUtils.equals(data.getLableType(), LableTypeEnum.PULL_SINGLE.getValue())){
//把这条模板的下拉选项设置进去
List<CountryCardTempItemEO> collect = countryCardTempItemEOList.stream().filter(countryCardTempItemEO -> {
boolean flag = false;
if (StringUtils.equals(data.getCountryCardTempId(), countryCardTempItemEO.getCountryCardTempId())) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
data.setCountryCardTempItemEOList(collect);
}
});
}
}
}
@@ -1,11 +1,30 @@
package com.jero.modules.problemKnowledgeBase.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.system.vo.DictModel;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO;
import com.jero.modules.problemKnowledgeBase.entity.CountryNationalFlagEO;
import com.jero.modules.problemKnowledgeBase.enums.ReleaseStatusEnum;
import com.jero.modules.problemKnowledgeBase.mapper.CountryCardManageReleaseEOMapper;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardManageReleaseDetailEOService;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardManageReleaseEOService;
import com.jero.modules.problemKnowledgeBase.service.ICountryNationalFlagEOService;
import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.service.ISysDictService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Date;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@@ -20,6 +39,13 @@ import org.springframework.transaction.annotation.Transactional;
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class CountryCardManageReleaseEOServiceImpl extends ServiceImpl<CountryCardManageReleaseEOMapper, CountryCardManageReleaseEO> implements ICountryCardManageReleaseEOService {
@Autowired
private ICountryCardManageReleaseDetailEOService countryCardManageReleaseDetailEOService;
@Autowired
private ISysDictService sysDictService;
@Autowired
private ICountryNationalFlagEOService countryNationalFlagEOService;
/**
* 保存
*
@@ -31,7 +57,15 @@ public class CountryCardManageReleaseEOServiceImpl extends ServiceImpl<CountryCa
Date now = new Date();
countryCardManageReleaseEO.setCreateTime(now);
countryCardManageReleaseEO.setUpdateTime(now);
countryCardManageReleaseEO.setReleaseStatus(ReleaseStatusEnum.DRAFT.getValue());
save(countryCardManageReleaseEO);
List<CountryCardManageReleaseDetailEO> releaseDetailEOList = countryCardManageReleaseEO.getCountryCardManageReleaseDetailEOList();
if(CollectionUtils.isNotEmpty(releaseDetailEOList)){
releaseDetailEOList.forEach(releaseDetailEO -> {
releaseDetailEO.setCountryCardManageReleaseId(countryCardManageReleaseEO.getId());
});
this.countryCardManageReleaseDetailEOService.saveBatch(releaseDetailEOList);
}
}
/**
@@ -67,6 +101,9 @@ public class CountryCardManageReleaseEOServiceImpl extends ServiceImpl<CountryCa
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
QueryWrapper<CountryCardManageReleaseDetailEO> manageReleaseDetailEODeleteWrapper = new QueryWrapper<>();
manageReleaseDetailEODeleteWrapper.lambda().in(CountryCardManageReleaseDetailEO::getCountryCardManageReleaseId,ids);
this.countryCardManageReleaseDetailEOService.remove(manageReleaseDetailEODeleteWrapper);
}
/**
@@ -89,4 +126,140 @@ public class CountryCardManageReleaseEOServiceImpl extends ServiceImpl<CountryCa
public List<CountryCardManageReleaseEO> queryList() {
return list();
}
@Override
public void disposeData(List<CountryCardManageReleaseEO> datas, String cut) {
if (CollectionUtils.isNotEmpty(datas)) {
List<String> CountryCardManageReleaseEOId = datas.stream().map(CountryCardManageReleaseEO::getId).collect(Collectors.toList());
//查询出来管理发布列表中数据的明细信息
QueryWrapper<CountryCardManageReleaseDetailEO> releaseDetailEOQueryWrapper = new QueryWrapper<>();
releaseDetailEOQueryWrapper.lambda().in(CountryCardManageReleaseDetailEO::getCountryCardManageReleaseId,CountryCardManageReleaseEOId);
List<CountryCardManageReleaseDetailEO> releaseDetailEOList = this.countryCardManageReleaseDetailEOService.list(releaseDetailEOQueryWrapper);
this.countryCardManageReleaseDetailEOService.disposeData(releaseDetailEOList,cut);
List<DictModel> dictModelList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
//获取国旗
List<CountryNationalFlagEO> countryNationalFlagList = countryNationalFlagEOService.list();
datas.forEach(data -> {
if (StringUtils.isNotEmpty(data.getReleaseStatus())) {
data.setReleaseStatus_dictText(ReleaseStatusEnum.getTextByValue(data.getReleaseStatus(),cut));
}
if(CollectionUtils.isNotEmpty(releaseDetailEOList)){
List<CountryCardManageReleaseDetailEO> collect = releaseDetailEOList.stream().filter(releaseDetailEO -> {
boolean flag = false;
if(StringUtils.equals(data.getId(),releaseDetailEO.getCountryCardManageReleaseId())){
flag = true;
}
return flag;
}).collect(Collectors.toList());
data.setCountryCardManageReleaseDetailEOList(collect);
}
List<DictModel> regionList = dictModelList.stream().filter(region -> {
boolean flag = false;
if (StringUtils.equals(region.getValue(), data.getApplyMarket())) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(regionList)){
DictModel dictModel = regionList.get(0);
String collect = countryNationalFlagList.stream().filter(nationalFlag -> {
boolean flag = false;
if(StringUtils.equals(nationalFlag.getCountryNameCn(),dictModel.getText())){
flag = true;
}
return flag;
}).map(CountryNationalFlagEO::getNationalFlagUrl).collect(Collectors.joining(","));
data.setCountryNationalFlag(collect);
}
});
}
}
@Override
public void batchUpdateReleaseStatus(JSONObject json) {
String ids = json.getString("ids");
String releaseStatus = json.getString("releaseStatus");
QueryWrapper<CountryCardManageReleaseEO> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().in(CountryCardManageReleaseEO::getId,Arrays.asList(ids.split(",")));
List<CountryCardManageReleaseEO> countryCardManageReleaseEOList = this.list(queryWrapper);
countryCardManageReleaseEOList.forEach(countryCardManageReleaseEO -> {
countryCardManageReleaseEO.setReleaseStatus(releaseStatus);
});
this.updateBatchById(countryCardManageReleaseEOList);
}
@Override
public Result<List<DictModel>> getApplyMarketList(String queryFlag) {
List<DictModel> result = new ArrayList<>();
//获取所有的适用地区
List<DictModel> dictModelList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
//获取已经创建了country Card的适用地区,该接口只返回,在country Card里面没有的适用地区。
List<CountryCardManageReleaseEO> countryCardManageReleaseEOList = this.list();
//如果查询标识是空,则是在countryCard管理发布页面新增数据时使用:管理发布页新增查询的是,所有未创建countryCard的适用市场。
//如果查询标识不是空,则是在CountryCard的首页使用:首页查询的是 所有已创建了countryCard的适用市场。
if (StringUtils.isEmpty(queryFlag)) {
if(CollectionUtils.isEmpty(countryCardManageReleaseEOList)){
result = dictModelList;
}else {
for (DictModel dictModel : dictModelList) {
boolean flag = true;
for (CountryCardManageReleaseEO countryCardManageReleaseEO : countryCardManageReleaseEOList) {
if(StringUtils.equals(dictModel.getValue(),countryCardManageReleaseEO.getApplyMarket())){
flag = false;
break;
}
}
if(flag){
result.add(dictModel);
}
}
}
}else {
if(CollectionUtils.isEmpty(countryCardManageReleaseEOList)){
result = null;
}else {
for (DictModel dictModel : dictModelList) {
boolean flag = false;
for (CountryCardManageReleaseEO countryCardManageReleaseEO : countryCardManageReleaseEOList) {
if(StringUtils.equals(dictModel.getValue(),countryCardManageReleaseEO.getApplyMarket())){
flag = true;
break;
}
}
if(flag){
result.add(dictModel);
}
}
}
}
return Result.OK(result);
}
@Override
public List<CountryCardManageReleaseEO> queryCountryCardManageReleaseByApplyMarkets(JSONObject params) {
String applyMarkets = params.getString("applyMarkets");
String cut = params.getString("cut");
List<String> applyMarketList = Arrays.asList(applyMarkets.split(","));
QueryWrapper<CountryCardManageReleaseEO> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().in(CountryCardManageReleaseEO::getApplyMarket,applyMarketList);
List<CountryCardManageReleaseEO> result = this.list(queryWrapper);
this.disposeData(result,cut);
return result;
}
}
@@ -2,10 +2,14 @@ package com.jero.modules.problemKnowledgeBase.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardTempEO;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardTempItemEO;
import com.jero.modules.problemKnowledgeBase.enums.LableTypeEnum;
import com.jero.modules.problemKnowledgeBase.mapper.CountryCardTempEOMapper;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardManageReleaseDetailEOService;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardManageReleaseEOService;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardTempEOService;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardTempItemEOService;
import org.apache.commons.collections4.CollectionUtils;
@@ -36,6 +40,10 @@ public class CountryCardTempEOServiceImpl extends ServiceImpl<CountryCardTempEOM
@Autowired
private ICountryCardTempItemEOService countryCardTempItemEOService;
@Autowired
private ICountryCardManageReleaseEOService countryCardManageReleaseEOService;
@Autowired
private ICountryCardManageReleaseDetailEOService countryCardManageReleaseDetailEOService;
/**
* 保存
@@ -45,15 +53,27 @@ public class CountryCardTempEOServiceImpl extends ServiceImpl<CountryCardTempEOM
*/
@Override
public void add(CountryCardTempEO countryCardTempEO) {
this.setAddOrderNum(countryCardTempEO);
Date now = new Date();
countryCardTempEO.setCreateTime(now);
countryCardTempEO.setUpdateTime(now);
save(countryCardTempEO);
//如果选择了下拉框
if(StringUtils.equals(countryCardTempEO.getLableType(), LableTypeEnum.PULL_SINGLE.getValue())){
/*if(StringUtils.equals(countryCardTempEO.getLableType(), LableTypeEnum.PULL_SINGLE.getValue())){
this.countryCardTempItemEOService.batchInsert(countryCardTempEO.getCountryCardTempItemEOList(),countryCardTempEO.getId(),countryCardTempEO.getCut());
}*/
//模板新增的时候,获取现在系统中已经有的country Card数据,country Card管理发布明细表插入数据
List<CountryCardManageReleaseEO> countryCardManageReleaseEOList = this.countryCardManageReleaseEOService.list();
if(CollectionUtils.isNotEmpty(countryCardManageReleaseEOList)){
List<CountryCardManageReleaseDetailEO> releaseDetailEOList = new ArrayList<>();
countryCardManageReleaseEOList.forEach(manageReleaseEO -> {
CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO = new CountryCardManageReleaseDetailEO();
countryCardManageReleaseDetailEO.setCountryCardTempId(countryCardTempEO.getId());
countryCardManageReleaseDetailEO.setCountryCardManageReleaseId(manageReleaseEO.getId());
});
this.countryCardManageReleaseDetailEOService.saveBatch(releaseDetailEOList);
}
}
}
/**
* 更新
@@ -63,13 +83,14 @@ public class CountryCardTempEOServiceImpl extends ServiceImpl<CountryCardTempEOM
*/
@Override
public void editById(CountryCardTempEO countryCardTempEO) {
this.setEditOrderNum(countryCardTempEO);
Date now = new Date();
countryCardTempEO.setUpdateTime(now);
saveOrUpdate(countryCardTempEO);
//如果选择了下拉框
if(StringUtils.equals(countryCardTempEO.getLableType(), LableTypeEnum.PULL_SINGLE.getValue())){
/*if(StringUtils.equals(countryCardTempEO.getLableType(), LableTypeEnum.PULL_SINGLE.getValue())){
this.countryCardTempItemEOService.batchInsert(countryCardTempEO.getCountryCardTempItemEOList(),countryCardTempEO.getId(),countryCardTempEO.getCut());
}
}*/
}
/**
@@ -81,6 +102,9 @@ public class CountryCardTempEOServiceImpl extends ServiceImpl<CountryCardTempEOM
@Override
public void deleteById(String id) {
removeById(id);
QueryWrapper<CountryCardManageReleaseDetailEO> manageReleaseDetailDeleteWrapper = new QueryWrapper<>();
manageReleaseDetailDeleteWrapper.lambda().eq(CountryCardManageReleaseDetailEO::getCountryCardTempId,id);
this.countryCardManageReleaseDetailEOService.remove(manageReleaseDetailDeleteWrapper);
}
/**
@@ -92,6 +116,14 @@ public class CountryCardTempEOServiceImpl extends ServiceImpl<CountryCardTempEOM
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
QueryWrapper<CountryCardTempItemEO> itemDeleteWrapper = new QueryWrapper<>();
itemDeleteWrapper.lambda().in(CountryCardTempItemEO::getCountryCardTempId,ids);
this.countryCardTempItemEOService.remove(itemDeleteWrapper);
QueryWrapper<CountryCardManageReleaseDetailEO> manageReleaseDetailDeleteWrapper = new QueryWrapper<>();
manageReleaseDetailDeleteWrapper.lambda().in(CountryCardManageReleaseDetailEO::getCountryCardTempId,ids);
this.countryCardManageReleaseDetailEOService.remove(manageReleaseDetailDeleteWrapper);
}
/**
@@ -113,6 +145,7 @@ public class CountryCardTempEOServiceImpl extends ServiceImpl<CountryCardTempEOM
@Override
public List<CountryCardTempEO> queryList(CountryCardTempEO countryCardTempEO, HttpServletRequest req) {
QueryWrapper<CountryCardTempEO> queryWrapper = QueryGenerator.initQueryWrapper(countryCardTempEO, req.getParameterMap());
queryWrapper.orderByAsc("order_num");
List<CountryCardTempEO> result = this.list(queryWrapper);
return result;
}
@@ -139,7 +172,90 @@ public class CountryCardTempEOServiceImpl extends ServiceImpl<CountryCardTempEOM
countryCardTemp.setCountryCardTempItemEOList(collect);
}
if(StringUtils.isNotEmpty(countryCardTemp.getLableType())){
countryCardTemp.setLableType_dicText(LableTypeEnum.getTextByValue(countryCardTemp.getLableType(),cut));
}
});
}
}
@Override
public void setEditOrderNum(CountryCardTempEO countryCardTempEO){
Integer inputOrderNum = countryCardTempEO.getOrderNum();
if(inputOrderNum != null) {
QueryWrapper<CountryCardTempEO> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByAsc("order_num");
List<CountryCardTempEO> countryCardTempEOList = this.list(queryWrapper);
if(CollectionUtils.isNotEmpty(countryCardTempEOList)){
Integer orderNumData = countryCardTempEOList.stream().filter(e -> e.getId().equals(countryCardTempEO.getId()))
.map(e -> e.getOrderNum()).collect(Collectors.toList()).get(0);
queryWrapper.eq("order_num", inputOrderNum);
Integer orderNumCount = this.baseMapper.selectCount(queryWrapper);
//有重复展示顺序的,后面的号全+1
if (orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {
//设置排序
QueryWrapper<CountryCardTempEO> orderNumQueryWrapper = new QueryWrapper<>();
orderNumQueryWrapper.ge("order_num", inputOrderNum)
.orderByAsc("order_num");
List<CountryCardTempEO> geOrderNumList = this.list(orderNumQueryWrapper);
//判断相邻的序号,去掉不邻的
for (int i = 0; i < geOrderNumList.size(); i++) {
if (geOrderNumList.size() == 1) {
break;
} else if(i+1 >= geOrderNumList.size()){
break;
}else if (geOrderNumList.get(i + 1).getOrderNum() - geOrderNumList.get(i).getOrderNum() > 1) {
int deleteStart = geOrderNumList.get(i + 1).getOrderNum();
geOrderNumList = geOrderNumList.stream().filter(e -> e.getOrderNum() < deleteStart).collect(Collectors.toList());
break;
}
}
geOrderNumList.stream().forEach(e -> e.setOrderNum(e.getOrderNum() + 1));
saveOrUpdateBatch(geOrderNumList);
}
}
}
}
@Override
public void setAddOrderNum(CountryCardTempEO countryCardTempEO) {
Integer inputOrderNum = countryCardTempEO.getOrderNum();
if(inputOrderNum != null) {
//查询展示顺序相同的
QueryWrapper<CountryCardTempEO> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByAsc("order_num");
queryWrapper.eq("order_num", inputOrderNum);
Integer orderNumCount = this.baseMapper.selectCount(queryWrapper);
//有重复展示顺序的,后面的号全+1
if (orderNumCount > 0) {
//设置排序
QueryWrapper<CountryCardTempEO> orderNumQueryWrapper = new QueryWrapper<>();
orderNumQueryWrapper.ge("order_num", inputOrderNum)
.orderByAsc("order_num");
List<CountryCardTempEO> geOrderNumList = list(orderNumQueryWrapper);
//判断相邻的序号,去掉不邻的
for (int i = 0; i < geOrderNumList.size(); i++) {
if (geOrderNumList.size() == 1) {
break;
}else if(i+1 >= geOrderNumList.size()){
break;
} else if (geOrderNumList.get(i + 1).getOrderNum() - geOrderNumList.get(i).getOrderNum() > 1) {
int deleteStart = geOrderNumList.get(i + 1).getOrderNum();
geOrderNumList = geOrderNumList.stream().filter(e -> e.getOrderNum() < deleteStart).collect(Collectors.toList());
break;
}
}
geOrderNumList.stream().forEach(e -> e.setOrderNum(e.getOrderNum() + 1));
saveOrUpdateBatch(geOrderNumList);
}
}
}
}
@@ -0,0 +1,89 @@
package com.jero.modules.problemKnowledgeBase.service.impl;
import com.jero.modules.problemKnowledgeBase.entity.CountryNationalFlagEO;
import com.jero.modules.problemKnowledgeBase.mapper.CountryNationalFlagEOMapper;
import com.jero.modules.problemKnowledgeBase.service.ICountryNationalFlagEOService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 国家与国旗中间表
* @Author: jero-boot
* @Date: 2022-08-09
* @Version: V1.0
*/
@Service
public class CountryNationalFlagEOServiceImpl extends ServiceImpl<CountryNationalFlagEOMapper, CountryNationalFlagEO> implements ICountryNationalFlagEOService {
/**
* 保存
*
* @param countryNationalFlagEO
* @return
*/
@Override
public void add(CountryNationalFlagEO countryNationalFlagEO) {
Date now = new Date();
countryNationalFlagEO.setCreateTime(now);
countryNationalFlagEO.setUpdateTime(now);
save(countryNationalFlagEO);
}
/**
* 更新
*
* @param countryNationalFlagEO
* @return
*/
@Override
public void editById(CountryNationalFlagEO countryNationalFlagEO) {
Date now = new Date();
countryNationalFlagEO.setUpdateTime(now);
saveOrUpdate(countryNationalFlagEO);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public CountryNationalFlagEO queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<CountryNationalFlagEO> queryList() {
return list();
}
}
@@ -3,9 +3,19 @@ package com.jero.modules.problemKnowledgeBase.service.impl;
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseClassifyEO;
import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseClassifyEOMapper;
import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseClassifyEOService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.util.StringUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Date;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@@ -19,6 +29,8 @@ import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class ProblemKnowledgeBaseClassifyEOServiceImpl extends ServiceImpl<ProblemKnowledgeBaseClassifyEOMapper, ProblemKnowledgeBaseClassifyEO> implements IProblemKnowledgeBaseClassifyEOService {
@Autowired
private ISysUserService sysUserService;
/**
* 保存
@@ -89,4 +101,40 @@ public class ProblemKnowledgeBaseClassifyEOServiceImpl extends ServiceImpl<Probl
public List<ProblemKnowledgeBaseClassifyEO> queryList() {
return list();
}
@Override
public void disposeData(List<ProblemKnowledgeBaseClassifyEO> datas) {
if (CollectionUtils.isNotEmpty(datas)) {
StringBuffer userIdSb = new StringBuffer();
for (ProblemKnowledgeBaseClassifyEO data : datas) {
userIdSb.append(data.getChargePersonId() + ",");
}
List<String> userIdList = new ArrayList<>();
if(StringUtils.isNotEmpty(userIdSb.toString())){
userIdList = Arrays.asList(userIdSb.toString().substring(0,userIdSb.length()-1).split(","));
}
List<SysUser> userList = this.sysUserService.querySysUserListByIdList(userIdList);
datas.forEach(data -> {
if(CollectionUtils.isNotEmpty(userList)){
String chargePersonId = data.getChargePersonId();
if(StringUtils.isNotEmpty(chargePersonId)){
String[] chargePersonIdArr = chargePersonId.split(",");
String chargePersonIdName = userList.stream().filter(user -> {
boolean flag = false;
for (String chargePerson : chargePersonIdArr) {
if(StringUtils.equals(user.getId(),chargePerson)){
flag = true;
}
}
return flag;
}).map(SysUser::getUsername).collect(Collectors.joining(","));
data.setChargePersonIdName(chargePersonIdName);
}
}
});
}
}
}
@@ -1,5 +1,7 @@
package com.jero.modules.problemKnowledgeBase.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseCommentEO;
import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseCommentEOMapper;
import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseCommentEOService;
@@ -10,6 +12,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
/**
* @Description: 问题知识库评论表
* @Author: jero-boot
@@ -86,7 +90,10 @@ public class ProblemKnowledgeBaseCommentEOServiceImpl extends ServiceImpl<Proble
* @return
*/
@Override
public List<ProblemKnowledgeBaseCommentEO> queryList() {
return list();
public List<ProblemKnowledgeBaseCommentEO> queryList(ProblemKnowledgeBaseCommentEO problemKnowledgeBaseCommentEO, HttpServletRequest req) {
QueryWrapper<ProblemKnowledgeBaseCommentEO> queryWrapper = QueryGenerator.initQueryWrapper(problemKnowledgeBaseCommentEO, req.getParameterMap());
queryWrapper.orderByDesc("create_time");
List<ProblemKnowledgeBaseCommentEO> result = this.list(queryWrapper);
return result;
}
}
@@ -1,15 +1,29 @@
package com.jero.modules.problemKnowledgeBase.service.impl;
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.problemKnowledgeBase.entity.*;
import com.jero.modules.problemKnowledgeBase.enums.CollectStatusEnum;
import com.jero.modules.problemKnowledgeBase.enums.PraiseStatusEnum;
import com.jero.modules.problemKnowledgeBase.enums.ShowPermissionsEnum;
import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseEOMapper;
import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseEOService;
import com.jero.modules.problemKnowledgeBase.service.*;
import com.jero.modules.system.util.StringUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import java.util.*;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
/**
* @Description: 问题知识库表
* @Author: jero-boot
@@ -20,6 +34,17 @@ import org.springframework.transaction.annotation.Transactional;
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowledgeBaseEOMapper, ProblemKnowledgeBaseEO> implements IProblemKnowledgeBaseEOService {
@Autowired
private IProblemKnowledgeBaseUserEOService problemKnowledgeBaseUserEOService;
@Autowired
private IProblemKnowledgeBasePraiseEOService problemKnowledgeBasePraiseEOService;
@Autowired
private IProblemKnowledgeBaseCollectEOService problemKnowledgeBaseCollectEOService;
@Autowired
private IProblemKnowledgeBaseBrowsingHistoryEOService problemKnowledgeBaseBrowsingHistoryEOService;
@Autowired
private IProblemKnowledgeBaseClassifyEOService problemKnowledgeBaseClassifyEOService;
/**
* 保存
*
@@ -32,6 +57,11 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
problemKnowledgeBaseEO.setCreateTime(now);
problemKnowledgeBaseEO.setUpdateTime(now);
save(problemKnowledgeBaseEO);
//如果该条问题知识库的展示权限为私密,则创建权限表数据
if(StringUtils.equals(problemKnowledgeBaseEO.getShowPermissions(), ShowPermissionsEnum.PRIVACY.getValue())){
batchInsertProblemKnowledgeBaseUserEO(problemKnowledgeBaseEO);
}
}
/**
@@ -45,6 +75,11 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
Date now = new Date();
problemKnowledgeBaseEO.setUpdateTime(now);
saveOrUpdate(problemKnowledgeBaseEO);
//如果该条问题知识库的展示权限为私密,则创建权限表数据
if(StringUtils.equals(problemKnowledgeBaseEO.getShowPermissions(), ShowPermissionsEnum.PRIVACY.getValue())){
batchInsertProblemKnowledgeBaseUserEO(problemKnowledgeBaseEO);
}
}
/**
@@ -76,8 +111,15 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
* @return
*/
@Override
public ProblemKnowledgeBaseEO queryById(String id) {
return getById(id);
public ProblemKnowledgeBaseEO queryById(String id,String cut) {
ProblemKnowledgeBaseEO problemKnowledgeBaseEO = getById(id);
List<ProblemKnowledgeBaseEO> problemKnowledgeBaseEOList = new ArrayList<>();
problemKnowledgeBaseEOList.add(problemKnowledgeBaseEO);
this.disposeData(problemKnowledgeBaseEOList,cut);
if (CollectionUtils.isNotEmpty(problemKnowledgeBaseEOList)) {
problemKnowledgeBaseEO = problemKnowledgeBaseEOList.get(0);
}
return problemKnowledgeBaseEO;
}
/**
@@ -86,7 +128,212 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
* @return
*/
@Override
public List<ProblemKnowledgeBaseEO> queryList() {
return list();
public List<ProblemKnowledgeBaseEO> queryList(ProblemKnowledgeBaseEO problemKnowledgeBaseEO,
HttpServletRequest req) {
QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper = QueryGenerator.initQueryWrapper(problemKnowledgeBaseEO, req.getParameterMap());
this.createQueryPermission(queryWrapper,problemKnowledgeBaseEO);
queryWrapper.orderByDesc("create_time");
List<ProblemKnowledgeBaseEO> result = this.list(queryWrapper);
this.disposeData(result,problemKnowledgeBaseEO.getCut());
return result;
}
/**
* 批量添加问题知识库展示权限表数据。
*/
public void batchInsertProblemKnowledgeBaseUserEO(ProblemKnowledgeBaseEO problemKnowledgeBaseEO){
//1.把当前问题知识库所有的权限删掉。
QueryWrapper<ProblemKnowledgeBaseUserEO> deleteWrapper = new QueryWrapper<>();
deleteWrapper.lambda().eq(ProblemKnowledgeBaseUserEO::getProblemKnowledgeBaseId,problemKnowledgeBaseEO.getId());
this.problemKnowledgeBaseUserEOService.remove(deleteWrapper);
List<ProblemKnowledgeBaseUserEO> permissionUserList = problemKnowledgeBaseEO.getPermissionUserList();
//2.获取当前登录用户信息,把当前登录用户组成一条数据添加进权限表
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
ProblemKnowledgeBaseUserEO currentUserPermission = new ProblemKnowledgeBaseUserEO();
currentUserPermission.setUserId(currentUser.getId());
permissionUserList.add(currentUserPermission);
permissionUserList.forEach(permissionUser -> {
permissionUser.setProblemKnowledgeBaseId(problemKnowledgeBaseEO.getId());
});
//根据用户id去重。
permissionUserList = permissionUserList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() ->
new TreeSet<>(Comparator.comparing(o -> o.getUserId()))),
ArrayList::new));
//3.把允许的用户添加进权限表。
this.problemKnowledgeBaseUserEOService.saveOrUpdateBatch(permissionUserList);
}
@Override
public void disposeData(List<ProblemKnowledgeBaseEO> datas,String cut){
if (CollectionUtils.isNotEmpty(datas)) {
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
StringBuffer problemTypeSb = new StringBuffer();
for (ProblemKnowledgeBaseEO data : datas) {
problemTypeSb.append(data.getProblemType() + ",");
}
List<String> probleKnowledgeBaseIdList = datas.stream().map(ProblemKnowledgeBaseEO::getId).distinct().collect(Collectors.toList());
//查询出数据的所有点赞数量
QueryWrapper<ProblemKnowledgeBasePraiseEO> praiseQueryWrapper = new QueryWrapper<>();
praiseQueryWrapper.lambda().in(ProblemKnowledgeBasePraiseEO::getProblemKnowledgeBaseId,probleKnowledgeBaseIdList);
List<ProblemKnowledgeBasePraiseEO> praiseEOList = this.problemKnowledgeBasePraiseEOService.list(praiseQueryWrapper);
//查询出数据的所有的浏览数量
QueryWrapper<ProblemKnowledgeBaseBrowsingHistoryEO> browsingHistoryQueryWrapper = new QueryWrapper<>();
browsingHistoryQueryWrapper.lambda().in(ProblemKnowledgeBaseBrowsingHistoryEO::getProblemKnowledgeBaseId,probleKnowledgeBaseIdList);
List<ProblemKnowledgeBaseBrowsingHistoryEO> browsingHistoryEOList = this.problemKnowledgeBaseBrowsingHistoryEOService.list(browsingHistoryQueryWrapper);
//查询出数据的所有的收藏数量
QueryWrapper<ProblemKnowledgeBaseCollectEO> collectQueryWrapper = new QueryWrapper<>();
collectQueryWrapper.lambda().in(ProblemKnowledgeBaseCollectEO::getProblemKnowledgeBaseId,probleKnowledgeBaseIdList);
List<ProblemKnowledgeBaseCollectEO> collectEOList = this.problemKnowledgeBaseCollectEOService.list(collectQueryWrapper);
//查询出数据的所有的权限用户
QueryWrapper<ProblemKnowledgeBaseUserEO> permissionUserQueryWrapper = new QueryWrapper<>();
permissionUserQueryWrapper.lambda().in(ProblemKnowledgeBaseUserEO::getProblemKnowledgeBaseId,probleKnowledgeBaseIdList);
List<ProblemKnowledgeBaseUserEO> permissionUserEOList = this.problemKnowledgeBaseUserEOService.list(permissionUserQueryWrapper);
this.problemKnowledgeBaseUserEOService.disposeData(permissionUserEOList,cut);
List<ProblemKnowledgeBaseClassifyEO> problemKnowledgeBaseClassifyEOList = new ArrayList<>();
if(StringUtils.isNotEmpty(problemTypeSb.toString())){
List<String> problemTypeList = Arrays.asList(problemTypeSb.toString().substring(0, problemTypeSb.toString().length() - 1).split(",")).stream().distinct().collect(Collectors.toList());
QueryWrapper<ProblemKnowledgeBaseClassifyEO> classifyEOQueryWrapper = new QueryWrapper<>();
classifyEOQueryWrapper.lambda().in(ProblemKnowledgeBaseClassifyEO::getId,problemTypeList);
problemKnowledgeBaseClassifyEOList = this.problemKnowledgeBaseClassifyEOService.list(classifyEOQueryWrapper);
}
List<ProblemKnowledgeBaseClassifyEO> finalProblemKnowledgeBaseClassifyEOList = problemKnowledgeBaseClassifyEOList;
datas.forEach(data -> {
if(StringUtils.isNotEmpty(data.getShowPermissions())){
data.setShowPermissions_dicText(ShowPermissionsEnum.getTextByValue(data.getShowPermissions(),cut));
}
long praiseCount = praiseEOList.stream().filter(praiseEO -> {
boolean flag = false;
if(StringUtils.equals(data.getId(),praiseEO.getProblemKnowledgeBaseId())
&&StringUtils.equals(praiseEO.getPraiseStatus(), PraiseStatusEnum.PRAISE.getValue())){
flag = true;
}
return flag;
}).count();
data.setPraiseCount(praiseCount);
List<ProblemKnowledgeBasePraiseEO> poblemKnowledgeBasePraiseEOS = praiseEOList.stream().filter(praiseEO -> {
boolean flag = false;
if(StringUtils.equals(data.getId(),praiseEO.getProblemKnowledgeBaseId())
&& StringUtils.equals(praiseEO.getPraiseUserId(),currentUser.getId())){
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(poblemKnowledgeBasePraiseEOS)){
data.setPraiseEO(poblemKnowledgeBasePraiseEOS.get(0));
}
long browsingHistoryCount = browsingHistoryEOList.stream().filter(baseBrowsingHistoryEO -> {
boolean flag = false;
if(StringUtils.equals(data.getId(),baseBrowsingHistoryEO.getProblemKnowledgeBaseId())){
flag = true;
}
return flag;
}).count();
data.setBrowsingHistoryCount(browsingHistoryCount);
long collectCount = collectEOList.stream().filter(collectEO -> {
boolean flag = false;
if(StringUtils.equals(data.getId(),collectEO.getProblemKnowledgeBaseId())
&& StringUtils.equals(collectEO.getCollectStatus(), CollectStatusEnum.COLLECT.getValue())){
flag = true;
}
return flag;
}).count();
data.setCollectCount(collectCount);
List<ProblemKnowledgeBaseCollectEO> problemKnowledgeBaseCollectEOS = collectEOList.stream().filter(collectEO -> {
boolean flag = false;
if(StringUtils.equals(data.getId(),collectEO.getProblemKnowledgeBaseId())
&& StringUtils.equals(collectEO.getCollectUserId(),currentUser.getId())){
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(problemKnowledgeBaseCollectEOS)){
data.setCollectEO(problemKnowledgeBaseCollectEOS.get(0));
}
List<ProblemKnowledgeBaseUserEO> permissionUserEOS = permissionUserEOList.stream().filter(permissionUserEO -> {
boolean flag = false;
if (StringUtils.equals(data.getId(), permissionUserEO.getProblemKnowledgeBaseId())) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(permissionUserEOS)){
data.setPermissionUserList(permissionUserEOS);
}
String problemType = data.getProblemType();
if(StringUtils.isNotEmpty(problemType)){
String[] problemTypeArr = problemType.split(",");
String problemTypeName = finalProblemKnowledgeBaseClassifyEOList.stream().filter(problemKnowledgeBaseClassifyEO -> {
boolean flag = false;
for (String type : problemTypeArr) {
if (StringUtils.equals(type, problemKnowledgeBaseClassifyEO.getId())) {
flag = true;
}
}
return flag;
}).map(ProblemKnowledgeBaseClassifyEO::getProblemLabel).collect(Collectors.joining(","));
data.setProblemTypeName(problemTypeName);
}
});
}
}
@Override
public void createQueryPermission(QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper,ProblemKnowledgeBaseEO problemKnowledgeBaseEO) {
/**
* 查询权限
* 公开:所有人都可以看到。
* 私密:只有配置了的权限用户可以看到。
*/
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
QueryWrapper<ProblemKnowledgeBaseUserEO> userPermissionQueryWrapper = new QueryWrapper<>();
userPermissionQueryWrapper.lambda().eq(ProblemKnowledgeBaseUserEO::getUserId,currentUser.getId());
List<ProblemKnowledgeBaseUserEO> problemKnowledgeBaseUserEOList = problemKnowledgeBaseUserEOService.list(userPermissionQueryWrapper);
List<String> problemKnowledgeBaseIdList = problemKnowledgeBaseUserEOList.stream().map(ProblemKnowledgeBaseUserEO::getProblemKnowledgeBaseId).distinct().collect(Collectors.toList());
queryWrapper.lambda().and(query -> {
query.eq(ProblemKnowledgeBaseEO::getShowPermissions,ShowPermissionsEnum.OPEN.getValue()).
or(o -> {
o.eq(ProblemKnowledgeBaseEO::getShowPermissions,ShowPermissionsEnum.PRIVACY.getValue());
o.in(ProblemKnowledgeBaseEO::getId,problemKnowledgeBaseIdList);
});
});
String searchStr = problemKnowledgeBaseEO.getSearchStr();
if(StringUtils.isNotEmpty(searchStr)){
queryWrapper.lambda().and(query -> {
query.like(ProblemKnowledgeBaseEO::getTitle,searchStr);
query.or().like(ProblemKnowledgeBaseEO::getProblemType,searchStr);
query.or().like(ProblemKnowledgeBaseEO::getTargetMarket,searchStr);
query.or().like(ProblemKnowledgeBaseEO::getStandNumber,searchStr);
query.or().like(ProblemKnowledgeBaseEO::getStandTitle,searchStr);
query.or().like(ProblemKnowledgeBaseEO::getContent,searchStr);
});
}
}
}
@@ -3,9 +3,16 @@ package com.jero.modules.problemKnowledgeBase.service.impl;
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseUserEO;
import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseUserEOMapper;
import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseUserEOService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@@ -20,6 +27,9 @@ import org.springframework.transaction.annotation.Transactional;
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class ProblemKnowledgeBaseUserEOServiceImpl extends ServiceImpl<ProblemKnowledgeBaseUserEOMapper, ProblemKnowledgeBaseUserEO> implements IProblemKnowledgeBaseUserEOService {
@Autowired
private ISysUserService sysUserService;
/**
* 保存
*
@@ -89,4 +99,30 @@ public class ProblemKnowledgeBaseUserEOServiceImpl extends ServiceImpl<ProblemKn
public List<ProblemKnowledgeBaseUserEO> queryList() {
return list();
}
@Override
public void disposeData(List<ProblemKnowledgeBaseUserEO> datas, String cut) {
if(CollectionUtils.isNotEmpty(datas)){
List<String> userIdList = datas.stream().map(ProblemKnowledgeBaseUserEO::getUserId).distinct().collect(Collectors.toList());
List<SysUser> userList = sysUserService.querySysUserListByIdList(userIdList);
datas.forEach(data -> {
if(CollectionUtils.isNotEmpty(userList)){
String userName = "";
for (SysUser user : userList) {
if (StringUtils.equals(data.getUserId(), user.getId())) {
userName = user.getUsername();
break;
}
}
if(StringUtils.isNotEmpty(userName)){
data.setUserName(userName);
}
}
});
}
}
}
@@ -60,13 +60,12 @@
</select>
<select id="queryById" resultType="com.jero.modules.project.entity.ProjectRelatedPersonnel">
SELECT
<include refid="select_item"/>
SELECT *
FROM
project_related_personnel AS prp
project_related_personnel
<where>
prp.id=#{id}
id=#{id}
</where>
order by prp.create_time desc
order by create_time desc
</select>
</mapper>
@@ -34,14 +34,7 @@ import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -475,8 +468,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
if (id.contains(",")) {//多个id
List<String> idList = Arrays.asList(id.split(","));
QueryWrapper<ProjectRelatedPersonnel> queryWrapper = new QueryWrapper<>();
queryWrapper.in("id",idList);
queryWrapper.lambda().in(ProjectRelatedPersonnel::getId, idList);
records = list(queryWrapper);
disposeData(records);
} else {//1个id
records = queryById(id);
@@ -486,8 +480,12 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
}
//id无值,传全部
disposeDutyTerritory(records,cut);
records = records.stream()
.sorted(Comparator.comparing(ProjectRelatedPersonnel::getDutyTerritory))
.collect(Collectors.toList());
return records;
}
public void disposeDutyTerritory(List<ProjectRelatedPersonnel> records,String cut) {
//查标签内容里的责任领域数据
List<SysDictItem> sysDictItemValueList = sysDictItemMapper.selectItemsByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue());
@@ -1,5 +1,6 @@
package com.jero.modules.project.util;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
@@ -40,6 +41,7 @@ import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@Slf4j
public class ExcelUtil {
@@ -70,6 +72,33 @@ public class ExcelUtil {
System.out.println("mmmmmmm");
}
/**
* 过滤出需要导出的
* @param pkg
* @param params
* @return
* @throws Exception
*/
public static Map<String, String> filterParams(SpreadsheetMLPackage pkg, Map<String, String> params) throws Exception {
JaxbSmlPart smlPart = (JaxbSmlPart)pkg.getParts().get(new PartName("/xl/sharedStrings.xml")); // 获取所有sheet中的文本
String wmlTemplateString = getWmlTemplateString(smlPart);
List<String> placeholderList = new ArrayList<>();
getAllPlaceholderElementFromObject(wmlTemplateString, 0, placeholderList); // 获取文档中所有占位符
Map<String, String> paramsAfterFilter = new HashMap<>();
List<String> textValueList = placeholderList.stream().distinct().collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(textValueList)) {
for (Map.Entry<String, String> map : params.entrySet()) {
String value = "${" + map.getKey() + "}";
if (textValueList.contains(value)) {
paramsAfterFilter.put(map.getKey(), map.getValue());
}
}
}
return paramsAfterFilter;
}
public static void setRowHeight(WorksheetPart worksheetPart, int rIndex, double height, int cIndex, String text) {
SheetData sheetData = worksheetPart.getJaxbElement().getSheetData();
@@ -370,8 +399,8 @@ public class ExcelUtil {
// This seems to be about 5% faster than the Scanner approach
wmlTemplateString = IOUtils.toString(is, "UTF-8");
List<String> placeholderList = new ArrayList<>();
getAllPlaceholderElementFromObject(wmlTemplateString, 0, placeholderList);
// List<String> placeholderList = new ArrayList<>();
// getAllPlaceholderElementFromObject(wmlTemplateString, 0, placeholderList);
}
} catch (Exception e) {
log.error(e.getMessage(), e);
@@ -381,18 +410,18 @@ public class ExcelUtil {
}
}
private static List<String> getAllPlaceholderElementFromObject(String wmlTemplateString, int offset, List<String> placeholderList) {
private static void getAllPlaceholderElementFromObject(String wmlTemplateString, int offset, List<String> placeholderList) {
int startKey = wmlTemplateString.indexOf("${", offset);
if (startKey == -1)
return null;
return;
else {
int keyEnd = wmlTemplateString.indexOf('}', startKey);
String placeHolder = wmlTemplateString.substring(startKey, keyEnd + 1);
if (isPlaceholder(placeHolder)) {
placeholderList.add(placeHolder);
}
return getAllPlaceholderElementFromObject(wmlTemplateString, keyEnd + 1, placeholderList);
getAllPlaceholderElementFromObject(wmlTemplateString, keyEnd + 1, placeholderList);
}
}
@@ -1,5 +1,6 @@
package com.jero.modules.project.util;
import cn.hutool.core.collection.CollectionUtil;
import org.docx4j.Docx4J;
import org.docx4j.TraversalUtil;
import org.docx4j.XmlUtils;
@@ -28,6 +29,7 @@ import java.io.OutputStream;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
public class WordUtil {
private static final Logger log = LoggerFactory.getLogger(WordUtil.class);
@@ -230,6 +232,34 @@ public class WordUtil {
}
/**
* 过滤出需要导出的
* @param wordMLPackage
* @param params
* @return
* @throws Exception
*/
public static Map<String, String> filterParams(WordprocessingMLPackage wordMLPackage, Map<String, String> params) throws Exception {
MainDocumentPart mainDocumentPart = wordMLPackage.getMainDocumentPart();
Docx4jUtils.cleanDocumentPart(mainDocumentPart);
Document wmlDoc = (Document)mainDocumentPart.getJaxbElement();
Body body = wmlDoc.getBody();
List<Text> textList = getAllPlaceholderElementFromObject(body); // 获取文档中所有占位符
Map<String, String> paramsAfterFilter = new HashMap<>();
List<String> textValueList = textList.stream().map(Text::getValue).distinct().collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(textValueList)) {
for (Map.Entry<String, String> map : params.entrySet()) {
String value = "${" + map.getKey() + "}";
if (textValueList.contains(value)) {
paramsAfterFilter.put(map.getKey(), map.getValue());
}
}
}
return paramsAfterFilter;
}
/**
* 发现docx文档包含占位符的文本节点
* 未解决问题:两个连着的相同占位符会识别成一个。如 原文:${key1}${key1}
@@ -132,14 +132,24 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
saveOrUpdate(lawsMonthlyReportWriteEO);
if(ContentTemplateEnum.NEW_REQUEST_LIST_TEMPLATE.getValue().equals(lawsMonthlyReportWriteEO.getContentTemplate())){
//新征求意见清单模板
//新征求意见清单模板(先删除在新增)
//删除
LambdaQueryWrapper<NewOpinionTemplateEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(NewOpinionTemplateEO::getLawsMonthlyReportWriteId,lawsMonthlyReportWriteEO.getId());
iNewOpinionTemplateEOService.remove(wrapper);
//新增
List<NewOpinionTemplateEO> newOpinionTemplateEOList = lawsMonthlyReportWriteEO.getNewOpinionTemplateEOList();
iNewOpinionTemplateEOService.updateBatchById(newOpinionTemplateEOList);
iNewOpinionTemplateEOService.saveBatch(newOpinionTemplateEOList);
}else if (ContentTemplateEnum.NEW_RELEASE_STANDARD_MANIFEST_TEMPLATE.getValue().equals(lawsMonthlyReportWriteEO.getContentTemplate())){
//新发布标准清单模板
//新发布标准清单模板(先删除在新增)
//删除
LambdaQueryWrapper<NewStandardTemplateEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(NewStandardTemplateEO::getLawsMonthlyReportWriteId,lawsMonthlyReportWriteEO.getId());
iNewStandardTemplateEOService.remove(lambdaQueryWrapper);
//新增
List<NewStandardTemplateEO> newStandardTemplateEOList = lawsMonthlyReportWriteEO.getNewStandardTemplateEOList();
iNewStandardTemplateEOService.updateBatchById(newStandardTemplateEOList);
iNewStandardTemplateEOService.saveBatch(newStandardTemplateEOList);
}
}
@@ -536,10 +546,12 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
}else{
content = "Content";
}
String moth = lawsMonthlyReportWriteEOS.get(0).getMonth().replaceAll("-", "") + "";
//单独设置每页右侧的时间
WordUtil.exportWordMonth(document, lawsMonthlyReportWriteEOS.get(0).getMonth(), null, ParagraphAlignment.RIGHT, 0, 12, false, true, "微软雅黑");
WordUtil.exportWord(document, titleCN, null, ParagraphAlignment.CENTER, 0, 12, false, true, "Microsoft YaHei UI");
WordUtil.exportWord(document, content, null, ParagraphAlignment.LEFT, 0, 12, false, true, "Microsoft YaHei UI");
WordUtil.exportWord(document, titleCN, null, ParagraphAlignment.CENTER, 0, 18, false, false, "Blue Sky Noto Regular");
WordUtil.exportWord(document, content, null, ParagraphAlignment.LEFT, 0, 12, false, true, "Blue Sky Noto Regular");
//生成页脚
WordUtil.exportHeardAndFootMain(document,moth);
int oneCount = 1;
for (LawsMonthlyReportTitleTemplateEO lawsMonthlyReportTitleTemplateEO : reportTitleOneList) {
@@ -553,7 +565,7 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
oneTitle = lawsMonthlyReportTitleTemplateEO.getTitleEn();
}
if(StringUtils.isNotBlank(oneTitle)){
WordUtil.exportWord(document, oneNumber+" "+oneTitle, null, ParagraphAlignment.LEFT, 0, 12, false, true, "Microsoft YaHei UI");
WordUtil.exportWord(document, oneNumber+" "+oneTitle, null, ParagraphAlignment.LEFT, 0, 12, false, true, "Blue Sky Noto Regular");
oneCount++;
}
@@ -575,7 +587,7 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
twoTitle = monthlyReportTitleTemplateEO.getTitleEn();
}
if(StringUtils.isNotBlank(twoTitle)){
WordUtil.exportWord(document, twoNumber+" "+twoTitle, null, ParagraphAlignment.LEFT, 2, 12, false, true, "Microsoft YaHei UI");
WordUtil.exportWord(document, twoNumber+" "+twoTitle, null, ParagraphAlignment.LEFT, 2, 12, false, true, "Blue Sky Noto Regular");
twoCount++;
}
@@ -588,7 +600,7 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
reportTitle = lawsMonthlyReportWriteEO.getTitleEn();
}
if(org.apache.commons.lang3.StringUtils.isNotBlank(reportTitle)){
WordUtil.exportWord(document, reportCount+". "+reportTitle, null, ParagraphAlignment.LEFT, 6, 10, false, false, "Microsoft YaHei UI");
WordUtil.exportWord(document, reportCount+". "+reportTitle, null, ParagraphAlignment.LEFT, 6, 12, false, false, "Blue Sky Noto Regular");
reportCount++;
}
}
@@ -606,16 +618,11 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
//树形数据字典
List<SysCategory> categoryList = sysCategoryService.list();
String content = "";
if(CutEnum.CN.getValue().equals(cut)){
content = "主要内容";
}else{
content = "Content";
}
WordUtil.exportWord(document, titleCN, null, ParagraphAlignment.CENTER, 0, 12, false, true, "Microsoft YaHei UI");
//单独设置每页右侧的时间
WordUtil.exportWordMonth(document, lawsMonthlyReportWriteEOS.get(0).getMonth(), null, ParagraphAlignment.RIGHT, 0, 12, false, true, "Microsoft YaHei UI");
// WordUtil.exportWord(document, content, null, ParagraphAlignment.LEFT, 0, 12, false, true, "Microsoft YaHei UI");
String moth = lawsMonthlyReportWriteEOS.get(0).getMonth().replaceAll("-", "") + "";
//生成页眉页脚
WordUtil.exportHeardAndFoot(document,moth);
//生成标题
WordUtil.exportWord(document, titleCN, null, ParagraphAlignment.CENTER, 0, 18, false, true, "Blue Sky Noto Regular");
int oneCount = 1;
for (LawsMonthlyReportTitleTemplateEO lawsMonthlyReportTitleTemplateEO : reportTitleOneList) {
@@ -629,7 +636,7 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
oneTitle = lawsMonthlyReportTitleTemplateEO.getTitleEn();
}
if(StringUtils.isNotBlank(oneTitle)){
WordUtil.exportWord(document, oneNumber+" "+oneTitle, null, ParagraphAlignment.LEFT, 0, 12, false, true, "Microsoft YaHei UI");
WordUtil.exportWord(document, oneNumber+" "+oneTitle, null, ParagraphAlignment.LEFT, 0, 14, false, true, "Blue Sky Noto Regular");
oneCount++;
}
@@ -651,7 +658,7 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
twoTitle = monthlyReportTitleTemplateEO.getTitleEn();
}
if(StringUtils.isNotBlank(twoTitle)){
WordUtil.exportWord(document, twoNumber+" "+twoTitle, null, ParagraphAlignment.LEFT, 2, 12, false, true, "Microsoft YaHei UI");
WordUtil.exportWord(document, twoNumber+" "+twoTitle, null, ParagraphAlignment.LEFT, 2, 12, false, true, "Blue Sky Noto Regular");
twoCount++;
}
//二级目录下放--->新征求意见清单模板, 新发布标准清单模板
@@ -676,7 +683,7 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
reportTitle = lawsMonthlyReportWriteEO.getTitleEn();
}
if(StringUtils.isNotBlank(reportTitle)){
WordUtil.exportWord(document, reportCount+". "+reportTitle, null, ParagraphAlignment.LEFT, 6, 10, false, false, "Microsoft YaHei UI");
WordUtil.exportWord(document, reportCount+". "+reportTitle, null, ParagraphAlignment.LEFT, 6, 11, false, false, "Blue Sky Noto Regular");
}
@@ -8,20 +8,35 @@ import com.jero.modules.report.entity.NewStandardTemplateEO;
import com.jero.modules.report.enums.DictCodeReportEnum;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysDictItem;
import lombok.SneakyThrows;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.poi.util.Units;
import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFFooter;
import org.apache.poi.xwpf.usermodel.XWPFHeader;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFPicture;
import org.apache.poi.xwpf.usermodel.XWPFPictureData;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
import org.apache.xmlbeans.impl.xb.xmlschema.SpaceAttribute;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFldChar;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTJc;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPageMar;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSectPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTText;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STFldCharType;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STJc;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth;
import java.io.FileInputStream;
import java.io.InputStream;
import java.math.BigInteger;
import java.util.Arrays;
import java.util.List;
@@ -103,6 +118,154 @@ public class WordUtil {
}
}
// @SneakyThrows
// public static void exportHeardAndFoot(XWPFDocument document){
//// XWPFDocument document = new XWPFDocument();
//
// // create header-footer
// XWPFHeaderFooterPolicy headerFooterPolicy = document.getHeaderFooterPolicy();
// if (headerFooterPolicy == null) headerFooterPolicy = document.createHeaderFooterPolicy();
//
// // create header start
// XWPFHeader header = headerFooterPolicy.createHeader(XWPFHeaderFooterPolicy.DEFAULT);
//
// XWPFParagraph paragraph = header.createParagraph();
// paragraph.setAlignment(ParagraphAlignment.CENTER);
//
// XWPFRun run = paragraph.createRun();
// run.setText("Header");
//
// // create footer start
// XWPFFooter footer = headerFooterPolicy.createFooter(XWPFHeaderFooterPolicy.DEFAULT);
//
// paragraph = footer.createParagraph();
// paragraph.setAlignment(ParagraphAlignment.CENTER);
//
// run = paragraph.createRun();
// run.setText("Footer");
//
// CTSectPr sectPr = document.getDocument().getBody().getSectPr();
// if (sectPr == null) sectPr = document.getDocument().getBody().addNewSectPr();
// CTPageMar pageMar = sectPr.getPgMar();
// if (pageMar == null) pageMar = sectPr.addNewPgMar();
// pageMar.setLeft(BigInteger.valueOf(2000)); //720 TWentieths of an Inch Point (Twips) = 720/20 = 36 pt = 36/72 = 0.5"
// pageMar.setRight(BigInteger.valueOf(720));
// pageMar.setTop(BigInteger.valueOf(1440)); //1440 Twips = 1440/20 = 72 pt = 72/72 = 1"
// pageMar.setBottom(BigInteger.valueOf(1440));
//
// pageMar.setHeader(BigInteger.valueOf(2000)); //45.4 pt * 20 = 908 = 45.4 pt header from top
// pageMar.setFooter(BigInteger.valueOf(568)); //28.4 pt * 20 = 568 = 28.4 pt footer from bottom
//
// }
@SneakyThrows
public static void exportHeardAndFoot(XWPFDocument document,String month){
XWPFHeaderFooterPolicy headerFooterPolicy = document.getHeaderFooterPolicy();
if (headerFooterPolicy == null) headerFooterPolicy = document.createHeaderFooterPolicy();
XWPFHeader header = headerFooterPolicy.createHeader(XWPFHeaderFooterPolicy.DEFAULT);
// String logoFilePath = "/jero-boot/home/weilai.png";
String logoFilePath = WordUtil.class.getClassLoader().getResource("static/home/weilai.png").getPath();
//页眉第一个段落展示logo-----------------------------------------------------------------------------------
if (org.apache.commons.lang3.StringUtils.isNotBlank(logoFilePath)) {
XWPFParagraph logo = header.createParagraph();
logo.setAlignment(ParagraphAlignment.LEFT);
XWPFRun run = logo.createRun();
String imgFile = logoFilePath;
InputStream is = new FileInputStream(imgFile);
XWPFPicture picture = run.addPicture(is, XWPFDocument.PICTURE_TYPE_PNG, imgFile, Units.toEMU(95), Units.toEMU(35));
String blipID = "";
for(XWPFPictureData picturedata : header.getAllPackagePictures()) { //这段必须有,不然打开的logo图片不显示
blipID = header.getRelationId(picturedata);
}
picture.getCTPicture().getBlipFill().getBlip().setEmbed(blipID);
run.addTab();
is.close();
}
//页眉第二个段落展示日期------------------------------------------------------------
XWPFParagraph paragraph = header.createParagraph();//创建新的段落
paragraph.setAlignment(ParagraphAlignment.RIGHT);//段落文本的对齐方式
XWPFRun run = paragraph.createRun();
run.setText(month);
//页脚(三个段落分别展示3个内容)-----------------------------------------------------
XWPFFooter footer = headerFooterPolicy.createFooter(XWPFHeaderFooterPolicy.DEFAULT);
paragraph = footer.createParagraph();
paragraph.setAlignment(ParagraphAlignment.CENTER);
run = paragraph.createRun();
run.setText("NIO Internal");
paragraph = footer.createParagraph();
paragraph.setAlignment(ParagraphAlignment.LEFT);
run = paragraph.createRun();
run.setText("NIO.com");
//生成页码---------------------------------------------------------------------
paragraph = footer.createParagraph();
paragraph.setAlignment(ParagraphAlignment.RIGHT);
run = paragraph.createRun();
CTFldChar fldChar = run.getCTR().addNewFldChar();
fldChar.setFldCharType(STFldCharType.Enum.forString("begin"));
run = paragraph.createRun();
CTText ctText = run.getCTR().addNewInstrText();
ctText.setStringValue("PAGE \\* MERGEFORMAT");
ctText.setSpace(SpaceAttribute.Space.Enum.forString("preserve"));
fldChar = run.getCTR().addNewFldChar();
fldChar.setFldCharType(STFldCharType.Enum.forString("end"));
//----------------------------------------------------------------------------
CTSectPr sectPr = document.getDocument().getBody().getSectPr();
if (sectPr == null) sectPr = document.getDocument().getBody().addNewSectPr();
CTPageMar pageMar = sectPr.getPgMar();
if (pageMar == null) pageMar = sectPr.addNewPgMar();
pageMar.setLeft(BigInteger.valueOf(1000)); //左边距
pageMar.setRight(BigInteger.valueOf(1000));//右边距
pageMar.setTop(BigInteger.valueOf(1440)); //页眉高度
pageMar.setBottom(BigInteger.valueOf(1440));//页脚高度
pageMar.setHeader(BigInteger.valueOf(500)); //页眉上边框到顶部的距离
pageMar.setFooter(BigInteger.valueOf(800)); //页脚下边框到底部的距离
}
/**
* 主页面(只有页脚)
* @param document
* @param month
*/
@SneakyThrows
public static void exportHeardAndFootMain(XWPFDocument document,String month){
XWPFHeaderFooterPolicy headerFooterPolicy = document.getHeaderFooterPolicy();
if (headerFooterPolicy == null) headerFooterPolicy = document.createHeaderFooterPolicy();
// XWPFHeader header = headerFooterPolicy.createHeader(XWPFHeaderFooterPolicy.DEFAULT);
// XWPFParagraph paragraph = header.createParagraph();//创建新的段落
// XWPFRun run = paragraph.createRun();
XWPFFooter footer = headerFooterPolicy.createFooter(XWPFHeaderFooterPolicy.DEFAULT);
XWPFParagraph paragraph = footer.createParagraph();
paragraph.setAlignment(ParagraphAlignment.CENTER);
XWPFRun run = paragraph.createRun();
run.setText("NIO Internal");
CTSectPr sectPr = document.getDocument().getBody().getSectPr();
if (sectPr == null) sectPr = document.getDocument().getBody().addNewSectPr();
CTPageMar pageMar = sectPr.getPgMar();
if (pageMar == null) pageMar = sectPr.addNewPgMar();
pageMar.setLeft(BigInteger.valueOf(1000)); //左边距
pageMar.setRight(BigInteger.valueOf(1000));//右边距
pageMar.setTop(BigInteger.valueOf(1440)); //页眉高度
pageMar.setBottom(BigInteger.valueOf(1440));//页脚高度
pageMar.setHeader(BigInteger.valueOf(500)); //页眉上边框到顶部的距离
pageMar.setFooter(BigInteger.valueOf(1200)); //页脚下边框到底部的距离
}
/**
* 导出工具示例
*
@@ -126,27 +289,6 @@ public class WordUtil {
Boolean isBold,
String fontFamily) {
// CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();
// XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(document, sectPr);
//
// //添加页眉
// CTP ctpHeader = CTP.Factory.newInstance();
// CTR ctrHeader = ctpHeader.addNewR();
// CTText ctHeader = ctrHeader.addNewT();
// String headerText = "Java POI create MS word file.";
// ctHeader.setStringValue(headerText);
// XWPFParagraph headerParagraph = new XWPFParagraph(ctpHeader, document);
// //设置为右对齐
// headerParagraph.setAlignment(ParagraphAlignment.RIGHT);
// XWPFParagraph[] parsHeader = new XWPFParagraph[1];
// parsHeader[0] = headerParagraph;
// try {
// policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT, parsHeader);
// } catch (IOException e) {
// e.printStackTrace();
// }
//添加标题
XWPFParagraph titleParagraph = document.createParagraph();
//设置段落左对齐
@@ -519,6 +661,7 @@ public class WordUtil {
}
private static void setCell(XWPFTableRow tableRow, String fieldName,String technologyTerritory) {
tableRow.setHeight(500);
CTTblWidth ctTblWidth0 = tableRow.getCell(0).getCTTc().addNewTcPr().addNewTcW();
ctTblWidth0.setType(STTblWidth.DXA);
@@ -1,5 +1,6 @@
package com.jero.modules.split.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.split.entity.SarFileSplitItemsEO;
@@ -67,5 +68,5 @@ public interface FileSplitItemsEOMapper extends BaseMapper<SarFileSplitItemsEO>
int insertForeach(List<SarFileSplitItemsEO> list);
List<SarFileSplitItemsEO> queryByList(SarFileSplitItemsEOPage page);
List<SarFileSplitItemsEO> selectByInfoId(String value);
}
@@ -117,22 +117,10 @@
)
</foreach>
</insert>
<select id="queryByList" resultType="com.jero.modules.split.entity.SarFileSplitItemsEO" parameterType="com.jero.modules.split.page.SarFileSplitItemsEOPage">
select * from SAR_FILE_SPLIT_ITEMS
left join SAR_FILE_SPLIT_MENU on SAR_FILE_SPLIT_ITEMS.MENU_ID = SAR_FILE_SPLIT_MENU.id
<if test="infoId != null" >
and SAR_FILE_SPLIT_ITEMS.info_id ${infoIdOperator} #{infoId}
</if>
<if test="menuId != null">
and SAR_FILE_SPLIT_ITEMS.MENU_ID in
<foreach collection="menuIdList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="pager.orderCondition != null and pager.orderCondition != ''" >
${pager.orderCondition}
</if>
<!--根据infoid查询-->
<select id="selectByInfoId" resultType="com.jero.modules.split.entity.SarFileSplitItemsEO">
select *
from sar_file_split_items
where info_id = #{value}
</select>
</mapper>
@@ -84,5 +84,5 @@ public interface IFileSplitItemsEOService extends IService<SarFileSplitItemsEO>
List<Map<String, Object>> getHeader(String flag, String cut);
List<SarFileSplitItemsEO> queryByList(SarFileSplitItemsEOPage page);
List<SarFileSplitItemsEO> selectByInfoId(String infoId);
}
@@ -41,4 +41,7 @@ public interface ISarFileSplitMenuEOService extends IService<SarFileSplitMenuEO>
int queryByCount(SarFileSplitMenuEOPage page);
List<SarFileSplitMenuEO> queryByPage(SarFileSplitMenuEOPage page);
List<SarFileSplitMenuEO> queryByInfoId(String infoId);
}
@@ -72,6 +72,7 @@ import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.shiro.SecurityUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mock.web.MockMultipartFile;
@@ -3734,12 +3735,11 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
/**
* 查找拆分列表
* @param page
* @return
*/
@Override
public List<SarFileSplitItemsEO> queryByList(SarFileSplitItemsEOPage page){
return dao.queryByList(page);
public List<SarFileSplitItemsEO> selectByInfoId(String infoId){
return dao.selectByInfoId(infoId);
}
}
@@ -1,5 +1,6 @@
package com.jero.modules.split.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.split.entity.SarFileSplitMenuEO;
import com.jero.modules.split.mapper.SarFileSplitItemsValEOMapper;
@@ -141,4 +142,11 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
return dao.queryByPage(page);
}
@Override
public List<SarFileSplitMenuEO> queryByInfoId(String infoId) {
SarFileSplitMenuEOPage page = new SarFileSplitMenuEOPage();
page.setInfoId(infoId);
return dao.queryByList(page);
}
}