From 45a7233d1243508eafda46e292d1059e77be5456 Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Thu, 23 Nov 2023 11:40:23 +0800 Subject: [PATCH 01/22] =?UTF-8?q?fix(iam):=20=E8=BF=94=E5=9B=9E=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=B8=8D=E5=8A=A0=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iam/controller/SyncIamController.java | 25 ++++++++++++++----- .../iam/dto/response/BpmcResponseDto.java | 9 ++++++- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamController.java index 36c1f4c4..7e0d7785 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamController.java @@ -332,33 +332,42 @@ public class SyncIamController { MessageHeader messageHeader = acceptDecryptPo.getMessageHeader(); BpmcResponseDto bpmcResponseDto = BpmcResponseDto.success(); + SendPoEncryptPo sendPoEncryptPo = new SendPoEncryptPo(); if (CharSequenceUtil.isEmpty(bpmcAcceptDto.getType())){ bpmcResponseDto.setReturnCode(DockingConstant.IAM_ERROR_RESULT_CODE); bpmcResponseDto.setMessage("接口类型(type)未传参,请检查"); log.error(bpmcResponseDto.getMessage()); - return this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); + sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); + sendPoEncryptPo.getReturns().setData(bpmcResponseDto.toString()); + return sendPoEncryptPo; } if (CharSequenceUtil.isEmpty(bpmcAcceptDto.getEntity())){ bpmcResponseDto.setReturnCode(DockingConstant.IAM_ERROR_RESULT_CODE); bpmcResponseDto.setMessage("数据实体(entity)未传参,请检查"); log.error(bpmcResponseDto.getMessage()); - return this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); + sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); + sendPoEncryptPo.getReturns().setData(bpmcResponseDto.toString()); + return sendPoEncryptPo; } if (CharSequenceUtil.isEmpty(bpmcAcceptDto.getAction())){ bpmcResponseDto.setReturnCode(DockingConstant.IAM_ERROR_RESULT_CODE); bpmcResponseDto.setMessage("操作方式(action)未传参,请检查"); log.error(bpmcResponseDto.getMessage()); - return this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); + sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); + sendPoEncryptPo.getReturns().setData(bpmcResponseDto.toString()); + return sendPoEncryptPo; } if (CharSequenceUtil.isEmpty(bpmcAcceptDto.getSignature())){ bpmcResponseDto.setReturnCode(DockingConstant.IAM_ERROR_RESULT_CODE); bpmcResponseDto.setMessage("签名(signature)未传参,请检查"); log.error(bpmcResponseDto.getMessage()); - return this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); + sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); + sendPoEncryptPo.getReturns().setData(bpmcResponseDto.toString()); + return sendPoEncryptPo; } // 验证签名 @@ -367,7 +376,9 @@ public class SyncIamController { bpmcResponseDto.setReturnCode(DockingConstant.IAM_ERROR_RESULT_CODE); bpmcResponseDto.setMessage("签名校验不通过,请检查"); log.error(bpmcResponseDto.getMessage()); - return this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); + sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); + sendPoEncryptPo.getReturns().setData(bpmcResponseDto.toString()); + return sendPoEncryptPo; } try { @@ -402,7 +413,9 @@ public class SyncIamController { bpmcResponseDto = BpmcResponseDto.error(e.getMessage()); } log.info(bpmcResponseDto.getMessage()); - return this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); + sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); + sendPoEncryptPo.getReturns().setData(bpmcResponseDto.toString()); + return sendPoEncryptPo; } private BpmcResponseDto bpmcTypeRoleResource(ObjectMapper objectMapper, BpmcAcceptDto bpmcAcceptDto, BpmcResponseDto bpmcResponseDto) throws JsonProcessingException { List roleResourceDtoList = objectMapper.readValue(bpmcAcceptDto.getEntity(), new TypeReference>() {}); diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/BpmcResponseDto.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/BpmcResponseDto.java index c0219858..b811a8fb 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/BpmcResponseDto.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/BpmcResponseDto.java @@ -7,8 +7,15 @@ public class BpmcResponseDto { private String returnCode; - private String message; + @Override + public String toString() { + return "{" + + "returnCode='" + returnCode + '\'' + + ", message='" + message + '\'' + + '}'; + } + private String message; public static BpmcResponseDto success(){ BpmcResponseDto bpmcResponseDto = new BpmcResponseDto(); bpmcResponseDto.returnCode = "200"; // 成功时固定为200 From 40acd77e15835f6cdfdee1446fccd0357fce70f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Thu, 23 Nov 2023 11:44:08 +0800 Subject: [PATCH 02/22] fix:78587 --- .../personal/controller/LawsStandardSharingController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/laws-modules/src/main/java/com/jero/modules/personal/controller/LawsStandardSharingController.java b/laws-modules/src/main/java/com/jero/modules/personal/controller/LawsStandardSharingController.java index 5530dc87..d6a3db9b 100644 --- a/laws-modules/src/main/java/com/jero/modules/personal/controller/LawsStandardSharingController.java +++ b/laws-modules/src/main/java/com/jero/modules/personal/controller/LawsStandardSharingController.java @@ -300,7 +300,7 @@ public class LawsStandardSharingController extends JeroController queryLawsStandardSharing = new LambdaQueryWrapper<>(); queryLawsStandardSharing.in(LawsStandardSharing::getId,listIds); - queryLawsStandardSharing.ne(LawsStandardSharing::getStandardId,sysUser.getId()); + queryLawsStandardSharing.ne(LawsStandardSharing::getSharerId,sysUser.getId()); long l = lawsStandardSharingService.count(queryLawsStandardSharing); if(l > 0){ throw new JeroBootException(ResultCommon.HORIZONTAL_TRANSGRESSION); From 295aaaadfed221177f34786230c0530a5c45e42e Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Thu, 23 Nov 2023 13:41:05 +0800 Subject: [PATCH 03/22] =?UTF-8?q?feat(=E4=BC=81=E6=A0=87=E7=A8=BD=E6=9F=A5?= =?UTF-8?q?=E6=B5=81=E7=A8=8B):=20=E5=9F=BA=E7=A1=80=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EsInspectFlowController.java | 112 +++++++++++ .../ProcessEsInspectController.java | 177 ++++++++++++++++++ .../esinspect/entity/ProcessEsInspect.java | 33 ++++ .../mapper/ProcessEsInspectMapper.java | 35 ++++ .../mapper/xml/ProcessEsInspectMapper.xml | 45 +++++ .../service/IEsInspectFlowService.java | 46 +++++ .../service/IProcessEsInspectService.java | 94 ++++++++++ .../impl/EsInspectFlowServiceImpl.java | 38 ++++ .../impl/ProcessEsInspectServiceImpl.java | 149 +++++++++++++++ .../process/esinspect/vo/EsInspectFlowVO.java | 33 ++++ .../esinspect/vo/ProcessEsInspectVO.java | 25 +++ .../common/EsInspectPlanCommon.java | 17 ++ .../entity/ProcessEsInspectPlan.java | 5 +- .../impl/EsInspectPlanFlowServiceImpl.java | 57 +++--- .../impl/ProcessEsInspectPlanServiceImpl.java | 21 ++- .../EnterpriseStandardInspectController.java | 28 +++ .../vo/EnterpriseStandardInspectVo.java | 10 + .../EnterpriseStandardInspectMapper.java | 20 ++ .../xml/EnterpriseStandardInspectMapper.xml | 34 ++++ .../EnterpriseStandardInspectService.java | 17 ++ .../EnterpriseStandardInspectServiceImpl.java | 43 +++-- 21 files changed, 990 insertions(+), 49 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/controller/EsInspectFlowController.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/controller/ProcessEsInspectController.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/entity/ProcessEsInspect.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/mapper/ProcessEsInspectMapper.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/mapper/xml/ProcessEsInspectMapper.xml create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/IEsInspectFlowService.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/IProcessEsInspectService.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlowServiceImpl.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/ProcessEsInspectServiceImpl.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/vo/EsInspectFlowVO.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/vo/ProcessEsInspectVO.java diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/controller/EsInspectFlowController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/controller/EsInspectFlowController.java new file mode 100644 index 00000000..b4b66d5e --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/controller/EsInspectFlowController.java @@ -0,0 +1,112 @@ +package com.jero.modules.activiti.process.esinspect.controller; + +import com.jero.common.api.vo.Result; +import com.jero.common.api.vo.ResultCommon; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.aspect.annotation.Translation; +import com.jero.common.util.MessageUtils; +import com.jero.common.util.SnowflakeUtils; +import com.jero.modules.activiti.process.esinspect.service.IEsInspectFlowService; +import com.jero.modules.activiti.process.esinspect.vo.EsInspectFlowVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.context.annotation.Lazy; +import org.springframework.web.bind.annotation.*; + +/** + * @ClassName: EsInspectFlowController + * @Description: + * @Author: yjz + * @Date: 2023-11-23 09:22 + * @Version: 1.0 + **/ +@Api(tags="企标稽查流程") +@RestController +@RequestMapping("/esinspect/esInspectFlowController") +@Slf4j +public class EsInspectFlowController { + private final IEsInspectFlowService esInspectFlowService; + + public EsInspectFlowController(@Lazy IEsInspectFlowService esInspectFlowService) { + this.esInspectFlowService = esInspectFlowService; + } + + /** + * 企标稽查流程-生成项目id + * @return 项目id + */ + @AutoLog(value = "企标稽查流程-生成项目id") + @ApiOperation(value="企标稽查流程-生成项目id", notes="企标稽查流程-生成项目id") + @GetMapping(value = "/getProjectId") + public String getProjectId() { + return String.valueOf(SnowflakeUtils.snowflake()); + } + + /** + * 企标稽查流程-流程发起 + * @param esInspectFlowVO 企标稽查流程VO对象 + * @return 结果对象 + */ + @AutoLog(value = "企标稽查流程-流程发起") + @ApiOperation(value="企标稽查流程-流程发起", notes="企标稽查流程-流程发起") + @PostMapping(value = "/flowStart") + public Result flowStart(@RequestBody EsInspectFlowVO esInspectFlowVO) { + esInspectFlowService.flowStart(esInspectFlowVO); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } + + /** + * 企标稽查流程-流程保存 + * @param esInspectFlowVO 企标稽查流程VO对象 + * @return 结果对象 + */ + @AutoLog(value = "企标稽查流程-流程保存") + @ApiOperation(value="企标稽查流程-流程保存", notes="企标稽查流程-流程保存") + @PostMapping(value = "/flowSave") + public Result flowSave(@RequestBody EsInspectFlowVO esInspectFlowVO) { + esInspectFlowService.flowSave(esInspectFlowVO); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } + + + /** + * 企标稽查流程-办理详情 + * @param projectId 项目id + * @return 结果对象 + */ + @AutoLog(value = "企标稽查流程-办理详情") + @ApiOperation(value="企标稽查流程-办理详情", notes="企标稽查流程-办理详情") + @GetMapping(value = "/queryDetailByProjectId") + @Translation + public Result queryDetailByProjectId(@ApiParam("项目id") String projectId, @ApiParam("任务id") String taskId) { + return Result.OK(esInspectFlowService.queryDetailByProjectId(projectId, taskId)); + } + + /** + * 企标稽查流程-流程审批 + * @param esInspectFlowVO 企标稽查流程VO对象 + * @return 结果对象 + */ + @AutoLog(value = "企标稽查流程-流程审批") + @ApiOperation(value="企标稽查流程-流程审批", notes="企标稽查流程-流程审批") + @PostMapping(value = "/flowApproval") + public Result flowApproval(@RequestBody EsInspectFlowVO esInspectFlowVO) { + esInspectFlowService.flowApproval(esInspectFlowVO); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } + + /** + * 企标稽查流程-流程转办 + * @return 结果对象 + */ + @AutoLog(value = "企标稽查流程-流程转办") + @ApiOperation(value="企标稽查流程-流程转办", notes="企标稽查流程-流程转办") + @GetMapping(value = "/flowTransfer") + public Result flowTransfer(@ApiParam("任务id") String taskId, @ApiParam("用户id") String userId) { + esInspectFlowService.flowTransfer(taskId, userId); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/controller/ProcessEsInspectController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/controller/ProcessEsInspectController.java new file mode 100644 index 00000000..383d8658 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/controller/ProcessEsInspectController.java @@ -0,0 +1,177 @@ +package com.jero.modules.activiti.process.esinspect.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.system.base.controller.JeroController; +import com.jero.modules.activiti.process.esinspect.entity.ProcessEsInspect; +import com.jero.modules.activiti.process.esinspect.service.IProcessEsInspectService; +import com.jero.modules.activiti.process.esinspect.vo.ProcessEsInspectVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.formula.functions.T; +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; +import java.util.Map; + + + /** + * @Description: 企标稽查流程业务表 + * @Author: jero-boot + * @Date: 2023-11-22 + * @Version: V1.0 + */ +@Api(tags="企标稽查流程业务表") +@RestController +@RequestMapping("/esinspect/processEsInspect") +@Slf4j +public class ProcessEsInspectController extends JeroController { + private final IProcessEsInspectService processEsInspectService; + + public ProcessEsInspectController(IProcessEsInspectService processEsInspectService) { + this.processEsInspectService = processEsInspectService; + } + + /** + * 分页列表查询 + * + * @param processEsInspect + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "企标稽查流程业务表-分页列表查询") + @ApiOperation(value="企标稽查流程业务表-分页列表查询", notes="企标稽查流程业务表-分页列表查询") + @GetMapping(value = "/queryByPage") + public Result> queryByPage(ProcessEsInspectVO processEsInspectVO, + @ApiParam("当前页") @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @ApiParam("每页条数") @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + return Result.OK(processEsInspectService.queryByPage(processEsInspectVO, pageNo, pageSize)); + } + + /** + * 列表查询 + * + * @param processEsInspectVO + * @return + */ + @AutoLog(value = "企标稽查流程业务表-列表查询") + @ApiOperation(value="企标稽查流程业务表-列表查询", notes="企标稽查流程业务表-列表查询") + @GetMapping(value = "/queryByList") + public Result> queryByList(ProcessEsInspectVO processEsInspectVO) { + return Result.OK(processEsInspectService.queryByList(processEsInspectVO)); + } + + /** + * 添加 + * + * @param processEsInspect + * @return + */ + @AutoLog(value = "企标稽查流程业务表-添加") + @ApiOperation(value="企标稽查流程业务表-添加", notes="企标稽查流程业务表-添加") + @PostMapping(value = "/add") + public Result add(@Validated @RequestBody ProcessEsInspect processEsInspect) { + processEsInspectService.add(processEsInspect); + return Result.OK("操作成功!"); + } + + /** + * 编辑 + * + * @param processEsInspect + * @return + */ + @AutoLog(value = "企标稽查流程业务表-编辑") + @ApiOperation(value="企标稽查流程业务表-编辑", notes="企标稽查流程业务表-编辑") + @PostMapping(value = "/edit") + public Result edit(@Validated @RequestBody ProcessEsInspect processEsInspect) { + processEsInspectService.editById(processEsInspect); + return Result.OK("操作成功!"); + } + + /** + * 通过id删除 + * + * @param map + * @return + */ + @AutoLog(value = "企标稽查流程业务表-通过id删除") + @ApiOperation(value="企标稽查流程业务表-通过id删除", notes="企标稽查流程业务表-通过id删除") + @PostMapping(value = "/delete") + public Result delete(@RequestBody Map map) { + if(!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))){ + return Result.error("请选择数据!"); + } + processEsInspectService.deleteById(map.get("id")); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param map + * @return + */ + @AutoLog(value = "企标稽查流程业务表-批量删除") + @ApiOperation(value="企标稽查流程业务表-批量删除", notes="企标稽查流程业务表-批量删除") + @PostMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestBody Map map) { + if(!map.containsKey("ids") || StringUtils.isEmpty(map.get("ids"))){ + return Result.error("请选择数据!"); + } + this.processEsInspectService.deleteByIds(Arrays.asList(map.get("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) { + ProcessEsInspect processEsInspect = processEsInspectService.queryById(id); + if(processEsInspect==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(processEsInspect); + } + + /** + * 导出excel + * + * @param request + * @param processEsInspect + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, ProcessEsInspect processEsInspect) { + return super.exportXls(request, processEsInspect, ProcessEsInspect.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, ProcessEsInspect.class); + } + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/entity/ProcessEsInspect.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/entity/ProcessEsInspect.java new file mode 100644 index 00000000..336c0309 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/entity/ProcessEsInspect.java @@ -0,0 +1,33 @@ +package com.jero.modules.activiti.process.esinspect.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.jero.modules.laws.documenttool.entity.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; + + +/** + * @Description: 企标稽查流程业务表 + * @Author: jero-boot + * @Date: 2023-11-22 + * @Version: V1.0 + */ +@Data +@TableName("process_es_inspect") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="process_es_inspect对象", description="企标稽查流程业务表") +public class ProcessEsInspect extends BaseEntity { + /**项目id*/ + @Excel(name = "项目id", width = 15) + @ApiModelProperty(value = "项目id") + private java.lang.String projectId; + /**企标稽查id*/ + @Excel(name = "企标稽查id", width = 15) + @ApiModelProperty(value = "企标稽查id") + private java.lang.String inspect; +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/mapper/ProcessEsInspectMapper.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/mapper/ProcessEsInspectMapper.java new file mode 100644 index 00000000..27d8fe71 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/mapper/ProcessEsInspectMapper.java @@ -0,0 +1,35 @@ +package com.jero.modules.activiti.process.esinspect.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.jero.modules.activiti.process.esinspect.entity.ProcessEsInspect; +import com.jero.modules.activiti.process.esinspect.vo.ProcessEsInspectVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @Description: 企标稽查流程业务表 + * @Author: jero-boot + * @Date: 2023-11-22 + * @Version: V1.0 + */ +public interface ProcessEsInspectMapper extends BaseMapper { + + /** + * 企标稽查流程业务表-分页查询 + * @param page + * @param queryWrapper + * @return + */ + IPage queryByPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + /** + * 企标稽查流程业务表-列表查询 + * @param queryWrapper + * @return + */ + List queryByList(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/mapper/xml/ProcessEsInspectMapper.xml b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/mapper/xml/ProcessEsInspectMapper.xml new file mode 100644 index 00000000..1ef22036 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/mapper/xml/ProcessEsInspectMapper.xml @@ -0,0 +1,45 @@ + + + + + + + + + + select pesi.id, + pesi.create_by, + pesi.create_time, + pesi.update_by, + pesi.update_time, + pesi.del_flag, + pesi.project_id, + pesi.inspect_id, + lesi.id, + lesi.create_by, + lesi.create_time, + lesi.update_by, + lesi.update_time, + inspect_no, + (IF(les.standard_number is not null, les.standard_name, inspect_name)) inspect_name, + standardization_work_group, + belong_dept, + plan_inspect_date, + inspect_user, + standardization_docking_user, + complete_date, + actual_inspect_user, + inspect_status, + group_concat(lesio.plan_inspect_object separator ',') plan_inspect_object + from process_es_inspect pesi + left join laws_enterprise_standard_inspect lesi on pesi.inspect_id = lesi.id + left join laws_enterprise_standard les on lesi.inspect_no = les.standard_number and les.del_flag = '0' + left join laws_enterprise_standard_inspect_object lesio on lesi.id = lesio.inspect_id + ${ew.customSqlSegment} + group by lesi.id + + \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/IEsInspectFlowService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/IEsInspectFlowService.java new file mode 100644 index 00000000..1fbc92fb --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/IEsInspectFlowService.java @@ -0,0 +1,46 @@ +package com.jero.modules.activiti.process.esinspect.service; + +import com.jero.modules.activiti.process.esinspect.vo.EsInspectFlowVO; + +/** + * @InterfaceName: IEsInspectFlowService + * @Description: + * @Author: yjz + * @Date: 2023-11-23 09:23 + * @Version: 1.0 + **/ +public interface IEsInspectFlowService { + + /** + * 企标稽查流程-流程发起 + * @param esInspectFlowVO + */ + void flowStart(EsInspectFlowVO esInspectFlowVO); + + /** + * 企标稽查流程-流程保存 + * @param esInspectFlowVO + */ + void flowSave(EsInspectFlowVO esInspectFlowVO); + + /** + * 企标稽查流程-办理详情 + * @param projectId + * @param taskId + * @return + */ + EsInspectFlowVO queryDetailByProjectId(String projectId, String taskId); + + /** + * 企标稽查流程-流程审批 + * @param esInspectFlowVO + */ + void flowApproval(EsInspectFlowVO esInspectFlowVO); + + /** + * 企标稽查流程-流程转办 + * @param taskId + * @param userId + */ + void flowTransfer(String taskId, String userId); +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/IProcessEsInspectService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/IProcessEsInspectService.java new file mode 100644 index 00000000..a77c9ca5 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/IProcessEsInspectService.java @@ -0,0 +1,94 @@ +package com.jero.modules.activiti.process.esinspect.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.activiti.process.esinspect.entity.ProcessEsInspect; +import com.jero.modules.activiti.process.esinspect.vo.ProcessEsInspectVO; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + * @Description: 企标稽查流程业务表 + * @Author: jero-boot + * @Date: 2023-11-22 + * @Version: V1.0 + */ +public interface IProcessEsInspectService extends IService { + + /** + * 分页查询 + * + * @param processEsInspect + * @param pageNo + * @param pageSize + * @param req + * @return + */ + IPage queryPage(ProcessEsInspect processEsInspect, Integer pageNo, Integer pageSize, HttpServletRequest req); + + /** + * 列表查询 + * + * @param processEsInspect + * @param req + * @return + */ + List queryList(ProcessEsInspect processEsInspect, HttpServletRequest req); + + /** + * 保存 + * + * @param processEsInspect + * @return + */ + void add(ProcessEsInspect processEsInspect); + + /** + * 更新 + * + * @param processEsInspect + * @return + */ + void editById(ProcessEsInspect processEsInspect); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + ProcessEsInspect queryById(String id); + + /** + * 企标稽查流程业务表-分页查询 + * @param processEsInspectVO + * @param pageNo + * @param pageSize + * @return + */ + IPage queryByPage(ProcessEsInspectVO processEsInspectVO, Integer pageNo, Integer pageSize); + + /** + * 企标稽查流程业务表-列表查询 + * @param processEsInspectVO + * @return + */ + List queryByList(ProcessEsInspectVO processEsInspectVO); +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlowServiceImpl.java new file mode 100644 index 00000000..26608ee9 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlowServiceImpl.java @@ -0,0 +1,38 @@ +package com.jero.modules.activiti.process.esinspect.service.impl; + +import com.jero.modules.activiti.process.esinspect.service.IEsInspectFlowService; +import com.jero.modules.activiti.process.esinspect.vo.EsInspectFlowVO; + +/** + * @ClassName: EsInspectFlowServiceImpl + * @Description: + * @Author: yjz + * @Date: 2023-11-23 09:25 + * @Version: 1.0 + **/ +public class EsInspectFlowServiceImpl implements IEsInspectFlowService { + @Override + public void flowStart(EsInspectFlowVO esInspectFlowVO) { + + } + + @Override + public void flowSave(EsInspectFlowVO esInspectFlowVO) { + + } + + @Override + public EsInspectFlowVO queryDetailByProjectId(String projectId, String taskId) { + return null; + } + + @Override + public void flowApproval(EsInspectFlowVO esInspectFlowVO) { + + } + + @Override + public void flowTransfer(String taskId, String userId) { + + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/ProcessEsInspectServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/ProcessEsInspectServiceImpl.java new file mode 100644 index 00000000..6fa3b63e --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/ProcessEsInspectServiceImpl.java @@ -0,0 +1,149 @@ +package com.jero.modules.activiti.process.esinspect.service.impl; + +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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.exception.JeroBootException; +import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.activiti.process.esinspect.entity.ProcessEsInspect; +import com.jero.modules.activiti.process.esinspect.mapper.ProcessEsInspectMapper; +import com.jero.modules.activiti.process.esinspect.service.IProcessEsInspectService; +import com.jero.modules.activiti.process.esinspect.vo.ProcessEsInspectVO; +import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.List; + + +/** + * @Description: 企标稽查流程业务表 + * @Author: jero-boot + * @Date: 2023-11-22 + * @Version: V1.0 + */ +@Service +@Transactional(rollbackFor = JeroBootException.class) +public class ProcessEsInspectServiceImpl extends ServiceImpl implements IProcessEsInspectService { + + private final ProcessEsInspectMapper processEsInspectMapper; + + public ProcessEsInspectServiceImpl(ProcessEsInspectMapper processEsInspectMapper) { + this.processEsInspectMapper = processEsInspectMapper; + } + + + /** + * 分页查询 + * + * @param processEsInspect + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @Override + public IPage queryPage(ProcessEsInspect processEsInspect, Integer pageNo, Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(processEsInspect, req.getParameterMap()); + Page page = new Page<>(pageNo, pageSize); + return page(page, queryWrapper); + } + + /** + * 列表查询 + * + * @param processEsInspect + * @param req + * @return + */ + @Override + public List queryList(ProcessEsInspect processEsInspect, HttpServletRequest req) { + return list(QueryGenerator.initQueryWrapper(processEsInspect, req.getParameterMap())); + } + + /** + * 保存 + * + * @param processEsInspect + * @return + */ + @Override + public void add(ProcessEsInspect processEsInspect) { + Date now = new Date(); + processEsInspect.setCreateTime(now); + processEsInspect.setUpdateTime(now); + save(processEsInspect); + } + + /** + * 更新 + * + * @param processEsInspect + * @return + */ + @Override + public void editById(ProcessEsInspect processEsInspect) { + Date now = new Date(); + processEsInspect.setUpdateTime(now); + saveOrUpdate(processEsInspect); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override + public void deleteById(String id) { + removeById(id); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override + public void deleteByIds(List ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public ProcessEsInspect queryById(String id) { + return getById(id); + } + + @Override + public IPage queryByPage(ProcessEsInspectVO processEsInspectVO, Integer pageNo, Integer pageSize) { + QueryWrapper queryWrapper = getProcessEsInspectVOQueryWrapper(processEsInspectVO); + return processEsInspectMapper.queryByPage(new Page<>(pageNo, pageSize), queryWrapper); + } + + @Override + public List queryByList(ProcessEsInspectVO processEsInspectVO) { + QueryWrapper queryWrapper = getProcessEsInspectVOQueryWrapper(processEsInspectVO); + return processEsInspectMapper.queryByList(queryWrapper); + } + + @NotNull + private static QueryWrapper getProcessEsInspectVOQueryWrapper(ProcessEsInspectVO processEsInspectVO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(StringUtils.isNotBlank(processEsInspectVO.getProjectId()), "pesi.project_id", processEsInspectVO.getProjectId()); + queryWrapper.eq("pesi.del_flag", 0); + queryWrapper.orderByDesc("pesi.create_time"); + return queryWrapper; + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/vo/EsInspectFlowVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/vo/EsInspectFlowVO.java new file mode 100644 index 00000000..1eab7b74 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/vo/EsInspectFlowVO.java @@ -0,0 +1,33 @@ +package com.jero.modules.activiti.process.esinspect.vo; + +import com.jero.modules.activiti.entity.ProcessAll; +import com.jero.modules.activiti.entity.ProcessApprovalRecord; +import com.jero.modules.activiti.process.esinspect.entity.ProcessEsInspect; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +/** + * @ClassName: 企标稽查流程VO + * @Description: + * @Author: yjz + * @Date: 2023-11-09 11:51 + * @Version: 1.0 + **/ +@Data +public class EsInspectFlowVO { + /**流程信息*/ + @ApiModelProperty(value = "流程信息") + private ProcessAll processAll; + /**流程审批信息*/ + @ApiModelProperty(value = "流程审批信息") + private ProcessApprovalRecord processApprovalRecord; + /**业务基本信息*/ + @ApiModelProperty(value = "业务基本信息") + private List processEsInspectList; + /**map*/ + @ApiModelProperty(value = "map") + private Map map; +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/vo/ProcessEsInspectVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/vo/ProcessEsInspectVO.java new file mode 100644 index 00000000..92a4caa6 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/vo/ProcessEsInspectVO.java @@ -0,0 +1,25 @@ +package com.jero.modules.activiti.process.esinspect.vo; + +import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardInspectVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +/** + * @ClassName: ProcessEsInspectVO + * @Description: + * @Author: yjz + * @Date: 2023-11-23 09:20 + * @Version: 1.0 + **/ +@Data +public class ProcessEsInspectVO extends EnterpriseStandardInspectVo { + /**项目id*/ + @Excel(name = "项目id", width = 15) + @ApiModelProperty(value = "项目id") + private java.lang.String projectId; + /**企标稽查id*/ + @Excel(name = "企标稽查id", width = 15) + @ApiModelProperty(value = "企标稽查id") + private java.lang.String inspect; +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/common/EsInspectPlanCommon.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/common/EsInspectPlanCommon.java index 873bc4a8..62ba44c0 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/common/EsInspectPlanCommon.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/common/EsInspectPlanCommon.java @@ -42,4 +42,21 @@ public class EsInspectPlanCommon { * 企业稽查计划流程开始节点: 1:稽查联络人发起计划,2:稽查征求意见对象填写意见,3:稽查联络人汇总,4:相关人员会签,5:联络人主管级领导批准 */ public static final String PROCESS_NODE_5 = "leader_approval"; + + /** + * 稽查状态: 1:进行中,2:稽查中,3:已完成,4:拖期 + */ + public static final String INSPECT_STATUS_1 = "1"; + /** + * 稽查状态: 1:进行中,2:稽查中,3:已完成,4:拖期 + */ + public static final String INSPECT_STATUS_2 = "2"; + /** + * 稽查状态: 1:进行中,2:稽查中,3:已完成,4:拖期 + */ + public static final String INSPECT_STATUS_3 = "3"; + /** + * 稽查状态: 1:进行中,2:稽查中,3:已完成,4:拖期 + */ + public static final String INSPECT_STATUS_4 = "4"; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/entity/ProcessEsInspectPlan.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/entity/ProcessEsInspectPlan.java index 8cdd4636..5792d2a8 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/entity/ProcessEsInspectPlan.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/entity/ProcessEsInspectPlan.java @@ -43,11 +43,8 @@ public class ProcessEsInspectPlan extends BaseEntity { /**计划稽查对象*/ @Excel(name = "计划稽查对象", width = 15) @ApiModelProperty(value = "计划稽查对象") + @Dict(dictTable ="sys_depart",dicText = "depart_name",dicCode = "id") private String inspectObject; - /**计划稽查对象 翻译*/ - @ApiModelProperty(value = "计划稽查对象 翻译") - @TableField(exist = false) - private String inspectObjectDictText; /**主责标准化工作组*/ @Excel(name = "主责标准化工作组", width = 15) @ApiModelProperty(value = "主责标准化工作组") diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java index 28ae60ae..f0100e11 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.jero.common.api.dto.message.SendMessageDTO; import com.jero.common.api.vo.SendMessageAPI; import com.jero.common.system.vo.LoginUser; +import com.jero.common.util.SnowflakeUtils; import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.entity.ProcessNode; @@ -154,8 +155,8 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { public void flowSave(EsInspectPlanFlowVO esInspectPlanFlowVO) { // 流程信息 ProcessAll processAll = esInspectPlanFlowVO.getProcessAll(); - // 企标稽查计划业务表 - List processEsInspectPlanList = esInspectPlanFlowVO.getProcessEsInspectPlanList(); +// // 企标稽查计划业务表 +// List processEsInspectPlanList = esInspectPlanFlowVO.getProcessEsInspectPlanList(); // 流程审批信息 ProcessApprovalRecord processApprovalRecord = esInspectPlanFlowVO.getProcessApprovalRecord(); @@ -187,25 +188,25 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { processDraftService.save(processDraft); // 处理企标稽查计划业务表 - List newInspectPlanList = processEsInspectPlanList.stream().filter(v -> StringUtils.isBlank(v.getId())).collect(Collectors.toList()); - List oldInspectPlanList = processEsInspectPlanList.stream().filter(v -> StringUtils.isNotBlank(v.getId())).collect(Collectors.toList()); +// List newInspectPlanList = processEsInspectPlanList.stream().filter(v -> StringUtils.isBlank(v.getId())).collect(Collectors.toList()); +// List oldInspectPlanList = processEsInspectPlanList.stream().filter(v -> StringUtils.isNotBlank(v.getId())).collect(Collectors.toList()); // 设置项目id - newInspectPlanList.forEach(v -> v.setProjectId(processAll.getProjectId())); - // 保存新数据 - processEsInspectPlanService.saveBatch(newInspectPlanList); - - // 旧数据ids - List oldIds = oldInspectPlanList.stream().map(ProcessEsInspectPlan::getId).collect(Collectors.toList()); - - //删除旧数据 - if (oldIds.isEmpty()){ - processEsInspectPlanService.remove(new LambdaQueryWrapper() - .eq(ProcessEsInspectPlan::getProjectId, processAll.getProjectId())); - }else { - processEsInspectPlanService.remove(new LambdaQueryWrapper() - .eq(ProcessEsInspectPlan::getProjectId, processAll.getProjectId()) - .notIn(ProcessEsInspectPlan::getId, oldIds)); - } +// newInspectPlanList.forEach(v -> v.setProjectId(processAll.getProjectId())); +// // 保存新数据 +// processEsInspectPlanService.saveBatch(newInspectPlanList); +// +// // 旧数据ids +// List oldIds = oldInspectPlanList.stream().map(ProcessEsInspectPlan::getId).collect(Collectors.toList()); +// +// //删除旧数据 +// if (oldIds.isEmpty()){ +// processEsInspectPlanService.remove(new LambdaQueryWrapper() +// .eq(ProcessEsInspectPlan::getProjectId, processAll.getProjectId())); +// }else { +// processEsInspectPlanService.remove(new LambdaQueryWrapper() +// .eq(ProcessEsInspectPlan::getProjectId, processAll.getProjectId()) +// .notIn(ProcessEsInspectPlan::getId, oldIds)); +// } } private Map listToString(Map map) { @@ -233,7 +234,13 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { .eq(ProcessDraft::getProjectId, projectId) .eq(ProcessDraft::getUserId, loginUser.getId())); if (!processDraftList.isEmpty()){ - String id = processAll.getId(); + String id = ""; + if(Objects.isNull(processAll)){ + processAll = new ProcessAll(); + id = String.valueOf(SnowflakeUtils.snowflake()); + }else { + id = processAll.getId(); + } // 存在草稿 ProcessDraft processDraft = processDraftList.get(0); // 属性拷贝 @@ -280,8 +287,7 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { ListprocessNodeLinkList = processNodeLinkService.list( new LambdaQueryWrapper() .eq(ProcessNodeLink::getProcessDefinitionId, processDefinition.getId()) - .eq(ProcessNodeLink::getProcessNodeId, processNode.getId()) - .eq(ProcessNodeLink::getProcessInstanceId, processInstanceId)); + .eq(ProcessNodeLink::getProcessNodeId, processNode.getId())); if (!processNodeLinkList.isEmpty()){ List userIdList = processNodeLinkList.stream().map(ProcessNodeLink::getUserId).collect(Collectors.toList()); List sysUserList = sysUserService.listByIds(userIdList); @@ -334,7 +340,7 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { sendMessageDTO.setToUserId(v.getLinkUserIds()); Map sendMap = new HashMap<>(); ProcessAll process = processAllService.getByProcessInstanceId(processAll.getProcessInstanceId()); - sendMap.put("prcNum", process.getPrcNum()); + sendMap.put("prcNum", StringUtils.isNotBlank(process.getPrcNum()) ? process.getPrcNum() : ""); sendMap.put("prcName", process.getPrcName()); sendMessageDTO.setMap(sendMap); sendMessageAPI.sendMessage(sendMessageDTO); @@ -356,6 +362,8 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { EnterpriseStandardInspect enterpriseStandardInspect = new EnterpriseStandardInspect(); // 属性拷贝 BeanUtils.copyProperties(processEsInspectPlan, enterpriseStandardInspect); + // 稽查状态 + enterpriseStandardInspect.setInspectStatus(EsInspectPlanCommon.INSPECT_STATUS_1); // 计划稽查对象 String inspectObject = processEsInspectPlan.getInspectObject(); String[] inspectObjectList = inspectObject.split(","); @@ -363,6 +371,7 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { EnterpriseStandardInspectObject enterpriseStandardInspectObject = new EnterpriseStandardInspectObject(); enterpriseStandardInspectObject.setInspectId(processEsInspectPlan.getId()); enterpriseStandardInspectObject.setPlanInspectObject(object); + objectList.add(enterpriseStandardInspectObject); } list.add(enterpriseStandardInspect); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanServiceImpl.java index b2977597..0ae0a38a 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanServiceImpl.java @@ -100,20 +100,23 @@ public class ProcessEsInspectPlanServiceImpl extends ServiceImpl list) { + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); for (ProcessEsInspectPlan processEsInspectPlan : list) { - List opinionList = iProcessEsInspectPlanOpinionService.list( - new LambdaQueryWrapper() - .eq(ProcessEsInspectPlanOpinion::getInspectPlanId, processEsInspectPlan.getId())); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(ProcessEsInspectPlanOpinion::getInspectPlanId, processEsInspectPlan.getId()); + if (StringUtils.isNotBlank(processEsInspectPlan.getNodeId()) && "Activity_0mnt8n8".equals(processEsInspectPlan.getNodeId())){ + queryWrapper.eq(ProcessEsInspectPlanOpinion::getCreateBy, loginUser.getUsername()); + } + List opinionList = iProcessEsInspectPlanOpinionService.list(queryWrapper); for (ProcessEsInspectPlanOpinion processEsInspectPlanOpinion : opinionList) { - processEsInspectPlanOpinion.setCreateByDictText(sysUserService.dictByIdsOrUserNames(processEsInspectPlanOpinion.getCreateBy(), "")); - processEsInspectPlanOpinion.setUpdateByDictText(sysUserService.dictByIdsOrUserNames(processEsInspectPlanOpinion.getUpdateBy(), "")); + // 用户翻译 + processEsInspectPlanOpinion.setCreateByDictText(sysUserService.dictByIdsOrUserNames("", processEsInspectPlanOpinion.getCreateBy())); + processEsInspectPlanOpinion.setUpdateByDictText(sysUserService.dictByIdsOrUserNames("", processEsInspectPlanOpinion.getUpdateBy())); } processEsInspectPlan.setProcessEsInspectPlanOpinionList(opinionList); // 用户翻译 - processEsInspectPlan.setInspectObjectDictText(sysUserService.dictByIdsOrUserNames(processEsInspectPlan.getInspectObject(), "")); processEsInspectPlan.setInspectUserDictText(sysUserService.dictByIdsOrUserNames(processEsInspectPlan.getInspectUser(), "")); processEsInspectPlan.setStandardizationDockingUserDictText(sysUserService.dictByIdsOrUserNames(processEsInspectPlan.getStandardizationDockingUser(), "")); - processEsInspectPlan.setStandardizationDockingUserDictText(sysUserService.dictByIdsOrUserNames(processEsInspectPlan.getStandardizationDockingUser(), "")); processEsInspectPlan.setObjectOfConsultationDictText(sysUserService.dictByIdsOrUserNames(processEsInspectPlan.getObjectOfConsultation(), "")); processEsInspectPlan.setCreateByDictText(sysUserService.dictByIdsOrUserNames("", processEsInspectPlan.getCreateBy())); processEsInspectPlan.setUpdateByDictText(sysUserService.dictByIdsOrUserNames("", processEsInspectPlan.getUpdateBy())); @@ -126,7 +129,9 @@ public class ProcessEsInspectPlanServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq(StringUtils.isNotBlank(processEsInspectPlan.getProjectId()), "project_id", processEsInspectPlan.getProjectId()); if (StringUtils.isNotBlank(processEsInspectPlan.getNodeId()) && "Activity_0mnt8n8".equals(processEsInspectPlan.getNodeId())){ - queryWrapper.like(StringUtils.isNotBlank(processEsInspectPlan.getNodeId()), "object_of_consultation", loginUser.getId()); + queryWrapper.and(qw -> + qw.eq("object_of_consultation", loginUser.getId()) + .or().eq("create_by", loginUser.getUsername())); } queryWrapper.orderByDesc("create_time"); return queryWrapper; diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/controller/EnterpriseStandardInspectController.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/controller/EnterpriseStandardInspectController.java index 78613b90..43f4b767 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/controller/EnterpriseStandardInspectController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/controller/EnterpriseStandardInspectController.java @@ -27,6 +27,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.List; /** @@ -69,6 +70,33 @@ public class EnterpriseStandardInspectController extends JeroController> queryByPage(EnterpriseStandardInspectVo enterpriseStandardInspectVo, + @ApiParam("当前页") @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @ApiParam("每页条数") @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + IPage pageList = esInspectService.queryByPage(enterpriseStandardInspectVo, pageNo, pageSize); + return Result.OK(pageList); + } + + /** + * 企标稽查-列表查询2 + * + * @return + */ + @AutoLog(value = "企标稽查-列表查询2") + @ApiOperation(value="企标稽查-列表查询2", notes="企标稽查-列表查询2") + @GetMapping(value = "/queryByList") + public Result> queryByList(EnterpriseStandardInspectVo enterpriseStandardInspectVo) { + return Result.OK(esInspectService.queryByList(enterpriseStandardInspectVo)); + } + /** * 延期稽查 * diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/EnterpriseStandardInspectVo.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/EnterpriseStandardInspectVo.java index addeab00..0a04b422 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/EnterpriseStandardInspectVo.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/EnterpriseStandardInspectVo.java @@ -1,5 +1,6 @@ package com.jero.modules.laws.enterprise.entity.vo; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.jero.common.aspect.annotation.Dict; import io.swagger.annotations.ApiModelProperty; @@ -43,6 +44,7 @@ public class EnterpriseStandardInspectVo { /** 所属部门 */ @Excel(name = "所属部门", width = 15, orderNum = "1") @ApiModelProperty(value = "所属部门") + @Dict(dictTable ="sys_depart",dicText = "depart_name",dicCode = "id") private String belongDept; /** 计划稽查日期 */ @@ -55,11 +57,13 @@ public class EnterpriseStandardInspectVo { /** 稽查负责人 */ @Excel(name = "稽查负责人", width = 15, orderNum = "1") @ApiModelProperty(value = "稽查负责人") + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") private String inspectUser; /** 标准化组对接人 */ @Excel(name = "标准化组对接人", width = 15, orderNum = "1") @ApiModelProperty(value = "标准化组对接人") + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") private String standardizationDockingUser; /** 实际稽查完成日期 */ @@ -72,6 +76,7 @@ public class EnterpriseStandardInspectVo { /** 实际稽查人 */ @Excel(name = "实际稽查人", width = 15, orderNum = "1") @ApiModelProperty(value = "实际稽查人") + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") private String actualInspectUser; /** 稽查状态 */ @@ -91,4 +96,9 @@ public class EnterpriseStandardInspectVo { @ApiModelProperty(value = "延期稽查标识") private boolean delayFlag; + //================================= + /**ids 查询用*/ + @ApiModelProperty(value = "ids 查询用") + @TableField(exist = false) + private String ids; } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/EnterpriseStandardInspectMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/EnterpriseStandardInspectMapper.java index dfa84290..3b9eeeb6 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/EnterpriseStandardInspectMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/EnterpriseStandardInspectMapper.java @@ -1,6 +1,9 @@ package com.jero.modules.laws.enterprise.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.modules.laws.enterprise.entity.EnterpriseStandardInspect; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO; @@ -8,6 +11,8 @@ import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardInspectDelay import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardInspectVo; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @author ThinkBook * @description 针对表【laws_enterprise_standard_inspect(企业标准)】的数据库操作Mapper @@ -31,6 +36,21 @@ public interface EnterpriseStandardInspectMapper extends BaseMapper pageWithDelay(IPage page, @Param("param") ESQueryCommonDTO esQueryCommonDTO); + + /** + * 企标稽查-分页列表查询2 + * @param page + * @param queryWrapper + * @return + */ + IPage queryByPage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + /** + * 企标稽查-列表查询2 + * @param queryWrapper + * @return + */ + List queryByList(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardInspectMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardInspectMapper.xml index a22b8d3e..3ad3e856 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardInspectMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardInspectMapper.xml @@ -167,4 +167,38 @@ ORDER BY i.create_time DESC + + + + + + + select lesi.id, + lesi.create_by, + lesi.create_time, + lesi.update_by, + lesi.update_time, + inspect_no, + (IF(les.standard_number is not null, les.standard_name, inspect_name)) inspect_name, + standardization_work_group, + belong_dept, + plan_inspect_date, + inspect_user, + standardization_docking_user, + complete_date, + actual_inspect_user, + inspect_status, + group_concat(lesio.plan_inspect_object separator ',') plan_inspect_object + from laws_enterprise_standard_inspect lesi + left join laws_enterprise_standard les on lesi.inspect_no = les.standard_number and les.del_flag = '0' + left join laws_enterprise_standard_inspect_object lesio on lesi.id = lesio.inspect_id + ${ew.customSqlSegment} + group by lesi.id + diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/EnterpriseStandardInspectService.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/EnterpriseStandardInspectService.java index fdfe7cd3..3c2f8b04 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/EnterpriseStandardInspectService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/EnterpriseStandardInspectService.java @@ -8,6 +8,7 @@ import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardInspectVo; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.List; /** * @author ThinkBook @@ -53,4 +54,20 @@ public interface EnterpriseStandardInspectService extends IService queryByPage(EnterpriseStandardInspectVo enterpriseStandardInspectVo, Integer pageNo, Integer pageSize); + + /** + * 企标稽查-列表查询2 + * @param enterpriseStandardInspectVo + * @return + */ + List queryByList(EnterpriseStandardInspectVo enterpriseStandardInspectVo); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardInspectServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardInspectServiceImpl.java index 6fc1df6b..e2bf5061 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardInspectServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardInspectServiceImpl.java @@ -1,41 +1,34 @@ package com.jero.modules.laws.enterprise.service.impl; +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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.exception.JeroBootException; -import com.jero.common.system.api.ISysBaseAPI; -import com.jero.common.system.vo.DictModel; import com.jero.modules.laws.enterprise.entity.EnterpriseStandardInspect; import com.jero.modules.laws.enterprise.entity.EnterpriseStandardInspectRectifyPlan; import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO; -import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardDeclareVo; import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardInspectDelayVo; import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardInspectVo; -import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardRecheckPlanVo; -import com.jero.modules.laws.enterprise.mapper.EnterpriseStandardInspectRectifyPlanMapper; -import com.jero.modules.laws.enterprise.service.EnterpriseStandardInspectRectifyPlanService; -import com.jero.modules.laws.enterprise.service.EnterpriseStandardInspectService; import com.jero.modules.laws.enterprise.mapper.EnterpriseStandardInspectMapper; +import com.jero.modules.laws.enterprise.mapper.EnterpriseStandardInspectRectifyPlanMapper; +import com.jero.modules.laws.enterprise.service.EnterpriseStandardInspectService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Workbook; import org.jeecgframework.poi.excel.ExcelExportUtil; import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileOutputStream; import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -176,6 +169,30 @@ public class EnterpriseStandardInspectServiceImpl extends ServiceImpl queryByPage(EnterpriseStandardInspectVo enterpriseStandardInspectVo, Integer pageNo, Integer pageSize) { + QueryWrapper queryWrapper = getEnterpriseStandardInspectVoQueryWrapper(enterpriseStandardInspectVo); + return esInspectMapper.queryByPage(new Page<>(pageNo, pageSize), queryWrapper); + } + + @Override + public List queryByList(EnterpriseStandardInspectVo enterpriseStandardInspectVo) { + QueryWrapper queryWrapper = getEnterpriseStandardInspectVoQueryWrapper(enterpriseStandardInspectVo); + return esInspectMapper.queryByList(queryWrapper); + } + + @NotNull + private static QueryWrapper getEnterpriseStandardInspectVoQueryWrapper(EnterpriseStandardInspectVo enterpriseStandardInspectVo) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(StringUtils.isNotBlank(enterpriseStandardInspectVo.getId()), "lesi.id", enterpriseStandardInspectVo.getId()); + if (StringUtils.isNotBlank(enterpriseStandardInspectVo.getIds())){ + List list = Arrays.asList(enterpriseStandardInspectVo.getIds().split(",")); + queryWrapper.in("lesi.id", list); + } + queryWrapper.orderByDesc("lesi.createTime"); + return queryWrapper; + } } From b4267f40598b500bc4acc45466bcdc4a4a77c45f Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Thu, 23 Nov 2023 14:25:00 +0800 Subject: [PATCH 04/22] =?UTF-8?q?fix(iam):=20=E8=BF=94=E5=9B=9EjsonString?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docking/iam/controller/SyncIamController.java | 13 +++++++------ .../docking/iam/dto/response/BpmcResponseDto.java | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamController.java index 7e0d7785..7dd4778d 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamController.java @@ -1,6 +1,7 @@ package com.jero.modules.docking.iam.controller; import cn.hutool.core.text.CharSequenceUtil; +import com.alibaba.fastjson.JSON; import com.aliyun.oss.ServiceException; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; @@ -339,7 +340,7 @@ public class SyncIamController { bpmcResponseDto.setMessage("接口类型(type)未传参,请检查"); log.error(bpmcResponseDto.getMessage()); sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); - sendPoEncryptPo.getReturns().setData(bpmcResponseDto.toString()); + sendPoEncryptPo.getReturns().setData(JSON.toJSONString(bpmcResponseDto)); return sendPoEncryptPo; } @@ -348,7 +349,7 @@ public class SyncIamController { bpmcResponseDto.setMessage("数据实体(entity)未传参,请检查"); log.error(bpmcResponseDto.getMessage()); sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); - sendPoEncryptPo.getReturns().setData(bpmcResponseDto.toString()); + sendPoEncryptPo.getReturns().setData(JSON.toJSONString(bpmcResponseDto)); return sendPoEncryptPo; } @@ -357,7 +358,7 @@ public class SyncIamController { bpmcResponseDto.setMessage("操作方式(action)未传参,请检查"); log.error(bpmcResponseDto.getMessage()); sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); - sendPoEncryptPo.getReturns().setData(bpmcResponseDto.toString()); + sendPoEncryptPo.getReturns().setData(JSON.toJSONString(bpmcResponseDto)); return sendPoEncryptPo; } @@ -366,7 +367,7 @@ public class SyncIamController { bpmcResponseDto.setMessage("签名(signature)未传参,请检查"); log.error(bpmcResponseDto.getMessage()); sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); - sendPoEncryptPo.getReturns().setData(bpmcResponseDto.toString()); + sendPoEncryptPo.getReturns().setData(JSON.toJSONString(bpmcResponseDto)); return sendPoEncryptPo; } @@ -377,7 +378,7 @@ public class SyncIamController { bpmcResponseDto.setMessage("签名校验不通过,请检查"); log.error(bpmcResponseDto.getMessage()); sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); - sendPoEncryptPo.getReturns().setData(bpmcResponseDto.toString()); + sendPoEncryptPo.getReturns().setData(JSON.toJSONString(bpmcResponseDto)); return sendPoEncryptPo; } @@ -414,7 +415,7 @@ public class SyncIamController { } log.info(bpmcResponseDto.getMessage()); sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); - sendPoEncryptPo.getReturns().setData(bpmcResponseDto.toString()); + sendPoEncryptPo.getReturns().setData(JSON.toJSONString(bpmcResponseDto)); return sendPoEncryptPo; } private BpmcResponseDto bpmcTypeRoleResource(ObjectMapper objectMapper, BpmcAcceptDto bpmcAcceptDto, BpmcResponseDto bpmcResponseDto) throws JsonProcessingException { diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/BpmcResponseDto.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/BpmcResponseDto.java index b811a8fb..b99cf01f 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/BpmcResponseDto.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/BpmcResponseDto.java @@ -10,8 +10,8 @@ public class BpmcResponseDto { @Override public String toString() { return "{" + - "returnCode='" + returnCode + '\'' + - ", message='" + message + '\'' + + "returnCode:'" + returnCode + '\'' + + ", message:'" + message + '\'' + '}'; } From ef821ad709f21999cb63b4e5abd992af7630182a Mon Sep 17 00:00:00 2001 From: caihaohan Date: Thu, 23 Nov 2023 14:51:03 +0800 Subject: [PATCH 05/22] =?UTF-8?q?feat:=20=E8=8D=89=E7=A8=BF=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=96=B0=E5=A2=9EnodeId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activiti/process/common/entity/ProcessDraft.java | 6 ++++++ .../process/common/service/ActFlowCommonService.java | 2 +- .../process/fb/controller/ProcessFbInfoController.java | 7 +++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessDraft.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessDraft.java index 31e25fe1..36b5cd03 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessDraft.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessDraft.java @@ -80,6 +80,12 @@ public class ProcessDraft implements Serializable { @ApiModelProperty(value = "项目id") private String projectId; + /** + * 节点id + */ + @ApiModelProperty(value = "节点id") + private String nodeId; + /**任务id*/ @ApiModelProperty(value = "任务id") private java.lang.String taskId; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java index 4abed08b..06c82855 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java @@ -162,7 +162,7 @@ public class ActFlowCommonService { public String getNodeIdByTaskId(String taskId) { ProcessApprovalRecord approvalRecord = processApprovalRecordService.getToDoByTaskId(taskId); if (approvalRecord == null) { - throw new JeroBootException("找不到对应的审批记录"); + return null; } else { return approvalRecord.getNodeId(); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessFbInfoController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessFbInfoController.java index ff2c97b8..f1a01a18 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessFbInfoController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessFbInfoController.java @@ -10,6 +10,7 @@ import com.jero.common.system.vo.LoginUser; import com.jero.modules.activiti.entity.ProcessNode; import com.jero.modules.activiti.mapper.ProcessNodeMapper; import com.jero.modules.activiti.process.common.entity.ProcessDraft; +import com.jero.modules.activiti.process.common.service.ActFlowCommonService; import com.jero.modules.activiti.process.common.service.ProcessDraftService; import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import com.jero.modules.laws.common.util.CurrentUserUtil; @@ -61,6 +62,9 @@ public class ProcessFbInfoController { @Resource private HistoryService historyService; + @Resource + private ActFlowCommonService actFlowCommonService; + @DictPoint @GetMapping("/getNodeList") @ApiImplicitParams({ @@ -85,6 +89,9 @@ public class ProcessFbInfoController { queryWrapper.eq(!Objects.isNull(processDraft.getPrcType()), ProcessDraft::getPrcType, processDraft.getPrcType()); Page page = new Page<>(pageNo, pageSize); IPage sentList = processDraftService.page(page, queryWrapper); + sentList.getRecords().forEach(item -> { + item.setNodeId(actFlowCommonService.getNodeIdByTaskId(item.getTaskId())); + }); return Result.OK(sentList); } From 82711096f744e2fa0d405d0ad54f7bcabb0590c7 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Thu, 23 Nov 2023 14:55:48 +0800 Subject: [PATCH 06/22] =?UTF-8?q?fix:=20=E8=8D=89=E7=A8=BF=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E7=B1=BB=E7=BC=BA=E5=A4=B1=E6=B3=A8=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/activiti/process/common/entity/ProcessDraft.java | 1 + 1 file changed, 1 insertion(+) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessDraft.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessDraft.java index 36b5cd03..58b52c55 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessDraft.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessDraft.java @@ -83,6 +83,7 @@ public class ProcessDraft implements Serializable { /** * 节点id */ + @TableField(exist = false) @ApiModelProperty(value = "节点id") private String nodeId; From 768320745f3768d4977b7730ad918e8a955c7da6 Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Fri, 24 Nov 2023 14:57:31 +0800 Subject: [PATCH 07/22] =?UTF-8?q?fix(=E6=A8=A1=E5=9D=97):=20=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=88=A4=E6=96=AD=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessEsInspectPlanController.java | 2 +- .../ProcessEsInspectPlanOpinionController.java | 4 ++-- .../LawsCustomCompareInfoController.java | 4 ++-- .../controller/DocumentSplitController.java | 15 ++++++++------- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/ProcessEsInspectPlanController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/ProcessEsInspectPlanController.java index 798b57c3..2a77d45d 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/ProcessEsInspectPlanController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/ProcessEsInspectPlanController.java @@ -114,7 +114,7 @@ public class ProcessEsInspectPlanController extends JeroController delete(@RequestBody IdMapBody map) { - if (StringUtils.isNotBlank(map.getId())){ + if (StringUtils.isBlank(map.getId())){ return Result.error("请选择数据!"); } processEsInspectPlanService.deleteById(map.getId()); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/ProcessEsInspectPlanOpinionController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/ProcessEsInspectPlanOpinionController.java index bcab057e..c4800ee3 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/ProcessEsInspectPlanOpinionController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/controller/ProcessEsInspectPlanOpinionController.java @@ -127,7 +127,7 @@ public class ProcessEsInspectPlanOpinionController extends JeroController delete(@RequestBody IdMapBody map) { - if (StringUtils.isNotBlank(map.getId())){ + if (StringUtils.isBlank(map.getId())){ return Result.error("请选择数据!"); } processEsInspectPlanOpinionService.deleteById(map.getId()); @@ -144,7 +144,7 @@ public class ProcessEsInspectPlanOpinionController extends JeroController deleteBatch(@RequestBody IdsMapBody map) { - if (StringUtils.isNotBlank(map.getIds())){ + if (StringUtils.isBlank(map.getIds())){ return Result.error("请选择数据!"); } this.processEsInspectPlanOpinionService.deleteByIds(Arrays.asList(map.getIds().split(","))); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/customcompare/controller/LawsCustomCompareInfoController.java b/laws-modules/src/main/java/com/jero/modules/laws/customcompare/controller/LawsCustomCompareInfoController.java index 122e0cf9..cf83cdd2 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/customcompare/controller/LawsCustomCompareInfoController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/customcompare/controller/LawsCustomCompareInfoController.java @@ -237,7 +237,7 @@ public class LawsCustomCompareInfoController { @PostMapping(value = "/delById") @RequiresPermissions("customComparison:delete") public Result delById(@RequestBody IdMapBody map) { - if (StringUtils.isNotBlank(map.getId())){ + if (StringUtils.isBlank(map.getId())){ lawsCustomCompareInfoService.delById(map.getId()); lawsCustomCompareInfoService.editCompareCreateTime(map.getId()); } @@ -253,7 +253,7 @@ public class LawsCustomCompareInfoController { @PostMapping(value = "/delInventoryById") @RequiresPermissions("customComparison:edit") public Result delInventoryById(@RequestBody IdMapBody map) { - if (StringUtils.isNotBlank(map.getId())){ + if (StringUtils.isBlank(map.getId())){ lawsCustomCompareInventoryService.removeById(map.getId()); lawsCustomCompareInfoService.editCompareCreateTime(map.getId()); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java index 29d597fa..0086c4de 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java @@ -16,6 +16,7 @@ import com.jero.modules.split.entity.SarFileSplitItemsValEO; import com.jero.modules.split.entity.SarFileSplitMenuEO; import com.jero.modules.split.service.ISarFileSplitInfoService; import com.jero.modules.system.vo.IdMapBody; +import com.jero.modules.system.vo.IdsMapBody; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -190,7 +191,7 @@ public class DocumentSplitController { @RequiresPermissions("split:sarFileSplitInfo:delete") @ApiOperationSupport(order = 9) public Result delete(@RequestBody IdMapBody map) { - if (StringUtils.isNotBlank(map.getId())) { + if (StringUtils.isBlank(map.getId())){ String id = map.getId(); documentSplitService.checkOutOperation(Collections.singletonList(id)); sarFileSplitInfoService.deleteById(id); @@ -208,13 +209,13 @@ public class DocumentSplitController { @PostMapping(value = "/deleteBatch") @RequiresPermissions("split:sarFileSplitInfo:deleteBatch") @ApiOperationSupport(order = 10) - public Result deleteBatch(@RequestBody Map map) { - if (map.containsKey("ids")) { - String ids = (String) map.get("ids"); - List list = Arrays.asList(ids.split(",")); - documentSplitService.checkOutOperation(list); - sarFileSplitInfoService.deleteByIds(list); + public Result deleteBatch(@RequestBody IdsMapBody map) { + if (StringUtils.isBlank(map.getIds())) { + return Result.error("请选择数据!"); } + List list = Arrays.asList(map.getIds().split(",")); + documentSplitService.checkOutOperation(list); + sarFileSplitInfoService.deleteByIds(list); return Result.OK(MessageUtils.getMessage(ResultCommon.SUCCESSFULLY_DELETED_IN_BULK)); } From 86e0040303be3a9d7e8df5bfcf6cb8029427d6d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 24 Nov 2023 18:19:13 +0800 Subject: [PATCH 08/22] =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=8A=A0=E8=A7=A3=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/CommonController.java | 34 ++- .../config/ContentCachingWrapperFilter.java | 87 ++++++++ .../download/config/DownloadInterceptor.java | 60 ++++++ .../download/config/InterceptorConfig.java | 25 +++ .../service/DownloadDecryptFileService.java | 23 +++ .../impl/DownloadDecryptFileServiceImpl.java | 195 ++++++++++++++++++ .../encrypt/controller/EncrygtController.java | 47 ----- .../modules/docking/utils/IntekeyUtils.java | 5 +- .../src/main/resources/application-dev.yml | 22 ++ 9 files changed, 440 insertions(+), 58 deletions(-) create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/ContentCachingWrapperFilter.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/DownloadInterceptor.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/InterceptorConfig.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/DownloadDecryptFileService.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java delete mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/encrypt/controller/EncrygtController.java diff --git a/laws-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java b/laws-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java index 8088493f..90560c9d 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java @@ -137,27 +137,43 @@ public class CommonController { } /** - * 预览图片&下载文件 + * 下载文件 * * @param id 传入文件id * @param request * @param response */ @GetMapping(value = "/download/{id}") + public void download(@PathVariable String id,HttpServletRequest request, HttpServletResponse response) { + downloadAndView(id, response); + } + + /** + * 预览图片 + * + * @param id 传入文件id + * @param request + * @param response + */ + @GetMapping(value = "/view/{id}") public void view(@PathVariable String id,HttpServletRequest request, HttpServletResponse response) { + downloadAndView(id, response); + } + + private void downloadAndView(@PathVariable String id, HttpServletResponse response) { // 查询数据表数据是否存在 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(OSSFile::getId,id); + queryWrapper.eq(OSSFile::getId, id); OSSFile ossFile = ossFileService.getOne(queryWrapper); - if( null == ossFile){ + if (null == ossFile) { throw new JeroBootException("文件不存在.."); } String fileUrl = ossFile.getUrl(); - if(CommonConstant.UPLOAD_TYPE_LOCAL.equals(uploadType)){ + if (CommonConstant.UPLOAD_TYPE_LOCAL.equals(uploadType)) { //本地下载 String filePath = uploadpath + File.separator + fileUrl; File file = new File(filePath); - if(!file.exists()){ + if (!file.exists()) { response.setStatus(404); throw new JeroBootException("文件不存在.."); } @@ -173,12 +189,12 @@ public class CommonController { outputStream.write(buf, 0, len); } response.flushBuffer(); - }catch (Exception e){ + } catch (Exception e) { log.error(FILE_VIEW_ERROR + e.getMessage()); response.setStatus(404); e.printStackTrace(); } - }else if(CommonConstant.UPLOAD_TYPE_MINIO.equals(uploadType)){ + } else if (CommonConstant.UPLOAD_TYPE_MINIO.equals(uploadType)) { // minio 下载 // 通过MinioUtil查询时 只需要桶后面的路径 String minioUrl = MinioUtil.getMinioUrl(); @@ -193,14 +209,14 @@ public class CommonController { ) { byte[] buf = new byte[1024]; int len; - if(inputStream==null) { + if (inputStream == null) { return; } while ((len = inputStream.read(buf)) > 0) { outputStream.write(buf, 0, len); } response.flushBuffer(); - }catch (Exception e){ + } catch (Exception e) { log.error(FILE_VIEW_ERROR + e.getMessage()); response.setStatus(404); e.printStackTrace(); diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/ContentCachingWrapperFilter.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/ContentCachingWrapperFilter.java new file mode 100644 index 00000000..a179947a --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/ContentCachingWrapperFilter.java @@ -0,0 +1,87 @@ +package com.jero.modules.docking.download.config; + +import org.apache.commons.io.IOUtils; +import org.springframework.core.Ordered; +import org.springframework.stereotype.Component; +import org.springframework.web.filter.OncePerRequestFilter; +import org.springframework.web.util.ContentCachingRequestWrapper; +import org.springframework.web.util.ContentCachingResponseWrapper; +import org.springframework.web.util.WebUtils; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.Objects; + +/** + * @author lqt + * @version 1.0 + * @date 2023/11/24 11:36 + */ +//@Component +public class ContentCachingWrapperFilter extends OncePerRequestFilter implements Ordered { + + @Override + public int getOrder() { + return Ordered.LOWEST_PRECEDENCE - 10; + } + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) + throws ServletException, IOException { + // 包装流,可重复读取 + if (!(request instanceof ContentCachingRequestWrapper)) { + request = new ContentCachingRequestWrapper(request); + } + if (!(response instanceof ContentCachingResponseWrapper)) { + response = new ContentCachingResponseWrapper(response); + } + + filterChain.doFilter(request, response); + updateResponse(response); + } + + /** + * 更新响应(不操作这一步,会导致接口响应空白) + * + * @param response 响应对象 + * @throws IOException / + */ + public static void updateResponse(HttpServletResponse response) throws IOException { + ContentCachingResponseWrapper responseWrapper = WebUtils.getNativeResponse(response, ContentCachingResponseWrapper.class); + Objects.requireNonNull(responseWrapper).copyBodyToResponse(); + } + + /** + * 获取请求体 + * + * @param request 请求对象 + * @return 请求体 + */ + public static String getRequestBody(HttpServletRequest request) throws IOException { + String requestBody = ""; + ContentCachingRequestWrapper wrapper = WebUtils.getNativeRequest(request, ContentCachingRequestWrapper.class); + if (wrapper != null) { + requestBody = IOUtils.toString(wrapper.getContentAsByteArray(), StandardCharsets.UTF_8.toString()); + } + return requestBody; + } + + /** + * 获取响应体 + * + * @param response 响应对象 + * @return 响应体 + */ + public static String getResponseBody(HttpServletResponse response) throws IOException { + String responseBody = ""; + ContentCachingResponseWrapper wrapper = WebUtils.getNativeResponse(response, ContentCachingResponseWrapper.class); + if (wrapper != null) { + responseBody = IOUtils.toString(wrapper.getContentAsByteArray(), StandardCharsets.UTF_8.toString()); + } + return responseBody; + } +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/DownloadInterceptor.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/DownloadInterceptor.java new file mode 100644 index 00000000..a53be553 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/DownloadInterceptor.java @@ -0,0 +1,60 @@ +package com.jero.modules.docking.download.config; + +import com.jero.modules.docking.download.service.DownloadDecryptFileService; +import org.springframework.lang.Nullable; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * @author lqt + * @version 1.0 + * @date 2023/11/23 18:20 + */ +@Component +public class DownloadInterceptor implements HandlerInterceptor{ + + @Resource + private DownloadDecryptFileService downloadDecryptFileService; + + public DownloadInterceptor(DownloadDecryptFileService downloadDecryptFileService) { + this.downloadDecryptFileService = downloadDecryptFileService; + } + + /** + * 预处理回调方法,实现处理器的预处理(如检查登陆),第三个参数为响应的处理器 + * 返回值:true表示继续流程(如调用下一个拦截器或处理器);false表示流程中断(如登录检查失败),不会继续调用其他的拦截器或处理器,此时我们需要通过response来产生响应 + * @throws Exception + */ + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { +// HandlerMethod handlerMethod = (HandlerMethod) handler; +// Method method = handlerMethod.getMethod(); +// String methodName = method.getName(); +// System.out.println("====拦截到了方法:"+methodName+",preHandle===="); + // other + return true; + } + + /** + * 后处理回调方法,实现处理器的后处理(但在渲染视图之前),此时我们可以通过modelAndView(模型和视图对象)对模型数据进行处理或对视图进行处理,modelAndView也可能为null + */ + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception { +// downloadDecryptFileService.downloadDecryptFile(request,response,handler); + } + + /** + *整个请求处理完毕回调方法,即在视图渲染完毕时回调,如性能监控中我们可以在此记录结束时间并输出消耗时间,还可以进行一些资源清理,类似于try-catch-finally中的finally,但仅调用处理器执行链中 + */ + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception { +// downloadDecryptFileService.downloadDecryptFile(request,response,handler); + } +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/InterceptorConfig.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/InterceptorConfig.java new file mode 100644 index 00000000..74cf99b8 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/InterceptorConfig.java @@ -0,0 +1,25 @@ +package com.jero.modules.docking.download.config; + +import com.jero.modules.docking.download.service.DownloadDecryptFileService; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +import javax.annotation.Resource; + +/** + * @author lqt + * @version 1.0 + * @date 2023/11/23 18:21 + */ +@Configuration +public class InterceptorConfig implements WebMvcConfigurer { + @Resource + private DownloadDecryptFileService downloadDecryptFileService; + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(new DownloadInterceptor(downloadDecryptFileService)).addPathPatterns("/**"); + } + +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/DownloadDecryptFileService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/DownloadDecryptFileService.java new file mode 100644 index 00000000..e6ae8a8a --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/DownloadDecryptFileService.java @@ -0,0 +1,23 @@ +package com.jero.modules.docking.download.service; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * @author lqt + * @version 1.0 + * @date 2023/11/24 9:04 + */ +public interface DownloadDecryptFileService { + + /** + * + * @author LQT + * @date 2023/11/24 9:06 + * @param request + * @param response + * @param handler + * @return void + */ + void downloadDecryptFile(HttpServletRequest request, HttpServletResponse response, Object handler); +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java new file mode 100644 index 00000000..492d7cb4 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java @@ -0,0 +1,195 @@ +package com.jero.modules.docking.download.service.impl; + +import com.jero.common.api.vo.ResultCommon; +import com.jero.common.exception.JeroBootException; +import com.jero.common.system.vo.LoginUser; +import com.jero.modules.docking.download.config.ContentCachingWrapperFilter; +import com.jero.modules.docking.download.service.DownloadDecryptFileService; +import com.jero.modules.docking.utils.IntekeyUtils; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.entity.ContentType; +import org.apache.shiro.SecurityUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.stereotype.Service; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +/** + * @author lqt + * @version 1.0 + * @date 2023/11/24 9:04 + */ +@Slf4j +@Service +public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileService { + + @Value("#{'${download.download_url}'.split(',')}") + private List downloadUrl; + + @Value("#{'${download.view_url}'.split(',')}") + private List viewUrl; + + /** + * 管理员角色 + */ + @Value("#{'${download.admin_role_code}'.split(',')}") + private List adminRoleCode; + + /** + * 加密 + */ + @Value("#{'${download.encrypt.url}'}") + private String encryptUrl; + @Value("#{'${download.encrypt.app_code}'}") + private String encryptAppCode; + @Value("#{'${download.encrypt.secret_key}'}") + private String encryptSecretKey; + + /** + * 解密 + */ + @Value("#{'${download.decrypt.url}'}") + private String decryptUrl; + @Value("#{'${download.decrypt.app_code}'}") + private String decryptAppCode; + @Value("#{'${download.decrypt.secret_key}'}") + private String decryptSecretKey; + + /** + * 研发域 + */ + @Value("#{'${download.scope_dev}'}") + private int scopeDev; + /** + * 办公域 + */ + @Value("#{'${download.scope_work}'}") + private int scopeWork; + + + @Override + public void downloadDecryptFile(HttpServletRequest request, HttpServletResponse response, Object handler) { + // 判断返回值是否为文件流,否则其他接口返回值会变更成字符串,导致前端无法解析 + String responseBody = null; + HandlerMethod handlerMethod = (HandlerMethod) handler; + try { + String returnType = handlerMethod.getMethod().getReturnType().getName(); + if(!Objects.equals(returnType,"void") && !Objects.equals(returnType,"org.springframework.web.servlet.ModelAndView")){ + return; + } + responseBody = ContentCachingWrapperFilter.getResponseBody(response); + if(StringUtils.isBlank(responseBody)){ + return; + } + } catch (IOException e) { + e.printStackTrace(); + } + + MultipartFile file; + try { + InputStream inputStream = new ByteArrayInputStream(responseBody.getBytes(StandardCharsets.UTF_8)); + file = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream); + } catch (IOException e) { + e.printStackTrace(); + throw new JeroBootException(ResultCommon.ERROR); + } + // 访问路径 + String str = request.getRequestURI(); + + boolean b = false; + for (String s : viewUrl) { + if(s.contains(str)){ + b = true; + break; + } + } + + boolean b1 = false; + for (String s : downloadUrl) { + if(s.contains(str)){ + b1 = true; + break; + } + } + + if(b){ + // 预览,进行解密 + try (InputStream is = IntekeyUtils.DecryptFile(decryptUrl, decryptAppCode, decryptSecretKey, null, file)){ + writeResponse(response,is); + }catch (Exception e){ + throw new JeroBootException(ResultCommon.ERROR); + } + }else if(b1){ + // 下载文件 先解密,判断组织域,加密 + try (InputStream is = IntekeyUtils.DecryptFile(decryptUrl, decryptAppCode, decryptSecretKey, null, file)){ + writeResponse(response,is); + }catch (Exception e){ + throw new JeroBootException(ResultCommon.ERROR); + } + int scope = getScope(); + // 加密 + try (InputStream is = IntekeyUtils.DecryptFile(encryptUrl, encryptAppCode, encryptSecretKey, scope, file)){ + writeResponse(response,is); + }catch (Exception e){ + throw new JeroBootException(ResultCommon.ERROR); + } + return; + }else{ + // excel 判断组织域,加密 + int scope = getScope(); + // 加密 + try (InputStream is = IntekeyUtils.DecryptFile(encryptUrl, encryptAppCode, encryptSecretKey, scope, file)){ + writeResponse(response,is); + }catch (Exception e){ + throw new JeroBootException(ResultCommon.ERROR); + } + } + } + + private int getScope() { +// 角色信息中存在 【系统管理员】或者 【标准管理员】即加为研发密,其他情况都是OA密 +// 研发密比较高级(加密需要传参) +// 研发域 scope = 51 +// 办公密 scope = 52 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + List listRoleCode = Arrays.asList(sysUser.getRoleIds().split(",")); + if(CollectionUtils.isEmpty(listRoleCode)){ + throw new JeroBootException(ResultCommon.ERROR); + } + int scope = scopeWork; + long l = listRoleCode.stream().filter(o->adminRoleCode.contains(o)).count(); + if(l > 0){ + scope = scopeDev; + } + return scope; + } + + private void writeResponse(HttpServletResponse response,InputStream is) { + try (OutputStream outputStream = response.getOutputStream()) { + byte[] buf = new byte[1024]; + int len; + while ((len = is.read(buf)) > 0) { + outputStream.write(buf, 0, len); + } + response.flushBuffer(); + }catch (Exception e){ + log.error(e.getMessage()); + response.setStatus(404); + e.printStackTrace(); + } + } +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/encrypt/controller/EncrygtController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/encrypt/controller/EncrygtController.java deleted file mode 100644 index 7e69be48..00000000 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/encrypt/controller/EncrygtController.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.jero.modules.docking.encrypt.controller; - -import com.jero.modules.docking.utils.IntekeyUtils; -import io.swagger.annotations.Api; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.http.HttpServletResponse; -import java.io.InputStream; -import java.io.OutputStream; - -/** - * @author lqt - * @version 1.0 - * @date 2023/11/7 15:22 - */ -@Slf4j -@Api(tags = "加解密附件") -@RequestMapping("/encrypt") -@RestController -public class EncrygtController { - - /** - * 下载附件 - * - */ - @PostMapping(value = "/download") - public void view(MultipartFile file,String url, String appCode, String secretKey,String scope, HttpServletResponse response) { - try (InputStream inputStream = IntekeyUtils.DecryptFile(url, appCode, secretKey, scope, file); - OutputStream outputStream = response.getOutputStream() - ) { - byte[] buf = new byte[1024]; - int len; - while ((len = inputStream.read(buf)) > 0) { - outputStream.write(buf, 0, len); - } - response.flushBuffer(); - }catch (Exception e){ - log.error(e.getMessage()); - response.setStatus(404); - e.printStackTrace(); - } - } -} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/utils/IntekeyUtils.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/utils/IntekeyUtils.java index 55dda23d..cedbdd2f 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/utils/IntekeyUtils.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/utils/IntekeyUtils.java @@ -8,6 +8,7 @@ import org.springframework.http.*; import org.springframework.util.DigestUtils; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; +import org.springframework.util.StringUtils; import org.springframework.web.client.RestTemplate; import org.springframework.web.multipart.MultipartFile; @@ -32,14 +33,14 @@ public class IntekeyUtils { * @return */ //todo 这个方法需要写在laws-modules-docking 里面 可以新建一个文件夹是encrypt - public static InputStream DecryptFile(String url, String appCode, String secretKey, String scope, MultipartFile multipartFile) { + public static InputStream DecryptFile(String url, String appCode, String secretKey, Integer scope, MultipartFile multipartFile) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); logger.info("解密时间:" + format.format(new Date())); //设置校验 Long time = System.currentTimeMillis(); String sign = DigestUtils.md5DigestAsHex((secretKey + time).getBytes()); - url = url + "?appCode=" + appCode + "&time=" + time + "&sign=" + sign + "&scope=" + scope; + url = url + "?appCode=" + appCode + "&time=" + time + "&sign=" + sign + (Objects.isNull(scope) ? "" : "&scope=" + scope); File file = transferToFile(multipartFile); RestTemplate restTemplate = new RestTemplate(); //设置请求头 diff --git a/laws-single-startup/src/main/resources/application-dev.yml b/laws-single-startup/src/main/resources/application-dev.yml index e9870cb2..591a83eb 100644 --- a/laws-single-startup/src/main/resources/application-dev.yml +++ b/laws-single-startup/src/main/resources/application-dev.yml @@ -429,3 +429,25 @@ draftDepartName: 起草部门 # 管理员权限roleCode,多填用英文逗号拼接 adminRoleCode: admin + +# 文件下载加解密 +download: + # 文件下载、预览拦截路径,多个以逗号分隔 + download_url: /sys/common/download/ + view_url: /sys/common/view/ + # 管理员角色 + admin_role_code: admin,BZGLY + # 加密参数 + encrypt: + url: http://10.2.159.90/intekey/encrypteFile + app_code: SRMS + secret_key: SRMS1234.. + # 解密参数 + decrypt: + url: http://10.2.159.90/intekey/file + app_code: SRMS + secret_key: SRMS1234.. + # 研发域 + scope_dev: 51 + # 办公域 + scope_work: 52 From 021426ba4a0c07a46425ae511ab61e17fc9bab02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Mon, 27 Nov 2023 09:40:15 +0800 Subject: [PATCH 09/22] =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=8A=A0=E8=A7=A3=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../download/config/DownloadInterceptor.java | 7 -- .../impl/DownloadDecryptFileServiceImpl.java | 96 +++++++++---------- 2 files changed, 48 insertions(+), 55 deletions(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/DownloadInterceptor.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/DownloadInterceptor.java index a53be553..0b235658 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/DownloadInterceptor.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/DownloadInterceptor.java @@ -3,8 +3,6 @@ package com.jero.modules.docking.download.config; import com.jero.modules.docking.download.service.DownloadDecryptFileService; import org.springframework.lang.Nullable; import org.springframework.stereotype.Component; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; @@ -34,11 +32,6 @@ public class DownloadInterceptor implements HandlerInterceptor{ */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { -// HandlerMethod handlerMethod = (HandlerMethod) handler; -// Method method = handlerMethod.getMethod(); -// String methodName = method.getName(); -// System.out.println("====拦截到了方法:"+methodName+",preHandle===="); - // other return true; } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java index 492d7cb4..4e688f13 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java @@ -8,14 +8,18 @@ import com.jero.modules.docking.download.service.DownloadDecryptFileService; import com.jero.modules.docking.utils.IntekeyUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.http.entity.ContentType; import org.apache.shiro.SecurityUtils; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Value; import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Service; import org.springframework.web.method.HandlerMethod; import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.util.ContentCachingResponseWrapper; +import org.springframework.web.util.WebUtils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -84,8 +88,8 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic @Override public void downloadDecryptFile(HttpServletRequest request, HttpServletResponse response, Object handler) { // 判断返回值是否为文件流,否则其他接口返回值会变更成字符串,导致前端无法解析 - String responseBody = null; HandlerMethod handlerMethod = (HandlerMethod) handler; + String responseBody = null; try { String returnType = handlerMethod.getMethod().getReturnType().getName(); if(!Objects.equals(returnType,"void") && !Objects.equals(returnType,"org.springframework.web.servlet.ModelAndView")){ @@ -93,71 +97,67 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic } responseBody = ContentCachingWrapperFilter.getResponseBody(response); if(StringUtils.isBlank(responseBody)){ - return; + throw new JeroBootException(ResultCommon.ERROR); } } catch (IOException e) { e.printStackTrace(); + throw new JeroBootException(ResultCommon.ERROR); } + MultipartFile file = getMultipartFile(responseBody); + // 访问路径 + String str = request.getRequestURI(); + + boolean b = isBoolean(str, viewUrl); + + boolean b1 = isBoolean(str, downloadUrl); + + if(b){ + // 预览,进行解密 + writeFile(response, file, null); + }else if(b1){ + // 下载文件 先解密,判断组织域,加密 + writeFile(response, file, null); + int scope = getScope(); + // 加密 + writeFile(response, file, scope); + }else{ + // excel 判断组织域,加密 + int scope = getScope(); + // 加密 + writeFile(response, file, scope); + } + } + + private void writeFile(HttpServletResponse response, MultipartFile file, Integer scope) { + try (InputStream is = IntekeyUtils.DecryptFile(encryptUrl, encryptAppCode, encryptSecretKey, scope, file)) { + writeResponse(response, is); + } catch (Exception e) { + throw new JeroBootException(ResultCommon.ERROR); + } + } + + @NotNull + private MultipartFile getMultipartFile(String responseBody) { MultipartFile file; - try { - InputStream inputStream = new ByteArrayInputStream(responseBody.getBytes(StandardCharsets.UTF_8)); + try (InputStream inputStream = new ByteArrayInputStream(responseBody.getBytes(StandardCharsets.UTF_8))){ file = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream); } catch (IOException e) { e.printStackTrace(); throw new JeroBootException(ResultCommon.ERROR); } - // 访问路径 - String str = request.getRequestURI(); + return file; + } + private boolean isBoolean(String str, List viewUrl) { boolean b = false; for (String s : viewUrl) { - if(s.contains(str)){ + if (s.contains(str)) { b = true; break; } } - - boolean b1 = false; - for (String s : downloadUrl) { - if(s.contains(str)){ - b1 = true; - break; - } - } - - if(b){ - // 预览,进行解密 - try (InputStream is = IntekeyUtils.DecryptFile(decryptUrl, decryptAppCode, decryptSecretKey, null, file)){ - writeResponse(response,is); - }catch (Exception e){ - throw new JeroBootException(ResultCommon.ERROR); - } - }else if(b1){ - // 下载文件 先解密,判断组织域,加密 - try (InputStream is = IntekeyUtils.DecryptFile(decryptUrl, decryptAppCode, decryptSecretKey, null, file)){ - writeResponse(response,is); - }catch (Exception e){ - throw new JeroBootException(ResultCommon.ERROR); - } - int scope = getScope(); - // 加密 - try (InputStream is = IntekeyUtils.DecryptFile(encryptUrl, encryptAppCode, encryptSecretKey, scope, file)){ - writeResponse(response,is); - }catch (Exception e){ - throw new JeroBootException(ResultCommon.ERROR); - } - return; - }else{ - // excel 判断组织域,加密 - int scope = getScope(); - // 加密 - try (InputStream is = IntekeyUtils.DecryptFile(encryptUrl, encryptAppCode, encryptSecretKey, scope, file)){ - writeResponse(response,is); - }catch (Exception e){ - throw new JeroBootException(ResultCommon.ERROR); - } - } + return b; } private int getScope() { From 12e8a8f4197dc866f64024c3fa56bcb6e7fbd4e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Mon, 27 Nov 2023 13:10:23 +0800 Subject: [PATCH 10/22] =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=8A=A0=E8=A7=A3=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/ContentCachingWrapperFilter.java | 2 +- .../download/config/DownloadInterceptor.java | 4 +- .../download/dto/MultipartFileDto.java | 117 ++++++++++++++++++ .../service/DownloadDecryptFileService.java | 3 +- .../impl/DownloadDecryptFileServiceImpl.java | 63 +++++++--- 5 files changed, 168 insertions(+), 21 deletions(-) create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/download/dto/MultipartFileDto.java diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/ContentCachingWrapperFilter.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/ContentCachingWrapperFilter.java index a179947a..9d73ddac 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/ContentCachingWrapperFilter.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/ContentCachingWrapperFilter.java @@ -21,7 +21,7 @@ import java.util.Objects; * @version 1.0 * @date 2023/11/24 11:36 */ -//@Component +@Component public class ContentCachingWrapperFilter extends OncePerRequestFilter implements Ordered { @Override diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/DownloadInterceptor.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/DownloadInterceptor.java index 0b235658..d5a300c9 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/DownloadInterceptor.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/config/DownloadInterceptor.java @@ -40,7 +40,7 @@ public class DownloadInterceptor implements HandlerInterceptor{ */ @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception { -// downloadDecryptFileService.downloadDecryptFile(request,response,handler); + downloadDecryptFileService.downloadDecryptFile(request,response,handler,"1"); } /** @@ -48,6 +48,6 @@ public class DownloadInterceptor implements HandlerInterceptor{ */ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception { -// downloadDecryptFileService.downloadDecryptFile(request,response,handler); + downloadDecryptFileService.downloadDecryptFile(request,response,handler,null); } } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/dto/MultipartFileDto.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/dto/MultipartFileDto.java new file mode 100644 index 00000000..fc14023f --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/dto/MultipartFileDto.java @@ -0,0 +1,117 @@ +package com.jero.modules.docking.download.dto; + +import org.springframework.util.FileCopyUtils; +import org.springframework.web.multipart.MultipartFile; + +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; + +/** + * @author lqt + * @version 1.0 + * @date 2023/11/27 11:12 + */ + +public class MultipartFileDto implements MultipartFile { + private final String name; + + private String originalFilename; + + private String contentType; + + private final byte[] content ; + + /** + * Create a new MultipartFileDto with the given content. + * + * @param name the name of the file + * @param content the content of the file + */ + public MultipartFileDto(String name, byte[] content) { + this(name, "", null, content); + } + + /** + * Create a new MultipartFileDto with the given content. + * + * @param name the name of the file + * @param contentStream the content of the file as stream + * @throws IOException if reading from the stream failed + */ + public MultipartFileDto(String name, InputStream contentStream) throws IOException { + this(name, "", null, FileCopyUtils.copyToByteArray(contentStream)); + } + + /** + * Create a new MultipartFileDto with the given content. + * + * @param name the name of the file + * @param originalFilename the original filename (as on the client's machine) + * @param contentType the content type (if known) + * @param content the content of the file + */ + public MultipartFileDto(String name, String originalFilename, String contentType, byte[] content) { + this.name = name; + this.originalFilename = (originalFilename != null ? originalFilename : ""); + this.contentType = contentType; + this.content = (content != null ? content : new byte[0]); + } + + /** + * Create a new MultipartFileDto with the given content. + * + * @param name the name of the file + * @param originalFilename the original filename (as on the client's machine) + * @param contentType the content type (if known) + * @param contentStream the content of the file as stream + * @throws IOException if reading from the stream failed + */ + public MultipartFileDto(String name, String originalFilename, String contentType, InputStream contentStream) + throws IOException { + + this(name, originalFilename, contentType, FileCopyUtils.copyToByteArray(contentStream)); + } + + @Override + public String getName() { + return this.name; + } + + @Override + public String getOriginalFilename() { + return this.originalFilename; + } + + @Override + public String getContentType() { + return this.contentType; + } + + @Override + public boolean isEmpty() { + return (this.content.length == 0); + } + + @Override + public long getSize() { + return this.content.length; + } + + @Override + public byte[] getBytes() throws IOException { + return this.content; + } + + @Override + public InputStream getInputStream() throws IOException { + return new ByteArrayInputStream(this.content); + } + + @Override + public void transferTo(File dest) throws IOException, IllegalStateException { + FileCopyUtils.copy(this.content, dest); + + } +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/DownloadDecryptFileService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/DownloadDecryptFileService.java index e6ae8a8a..65d4d176 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/DownloadDecryptFileService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/DownloadDecryptFileService.java @@ -17,7 +17,8 @@ public interface DownloadDecryptFileService { * @param request * @param response * @param handler + * @param type 1 为直接返回文件流,其他为modelandview * @return void */ - void downloadDecryptFile(HttpServletRequest request, HttpServletResponse response, Object handler); + void downloadDecryptFile(HttpServletRequest request, HttpServletResponse response, Object handler,String type); } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java index 4e688f13..5e7cb2c4 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java @@ -4,6 +4,7 @@ import com.jero.common.api.vo.ResultCommon; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; import com.jero.modules.docking.download.config.ContentCachingWrapperFilter; +import com.jero.modules.docking.download.dto.MultipartFileDto; import com.jero.modules.docking.download.service.DownloadDecryptFileService; import com.jero.modules.docking.utils.IntekeyUtils; import lombok.extern.slf4j.Slf4j; @@ -27,10 +28,12 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.List; import java.util.Objects; +import java.util.UUID; /** * @author lqt @@ -86,25 +89,27 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic @Override - public void downloadDecryptFile(HttpServletRequest request, HttpServletResponse response, Object handler) { + public void downloadDecryptFile(HttpServletRequest request, HttpServletResponse response, Object handler,String type) { // 判断返回值是否为文件流,否则其他接口返回值会变更成字符串,导致前端无法解析 HandlerMethod handlerMethod = (HandlerMethod) handler; - String responseBody = null; + InputStream responseBody = null; try { String returnType = handlerMethod.getMethod().getReturnType().getName(); if(!Objects.equals(returnType,"void") && !Objects.equals(returnType,"org.springframework.web.servlet.ModelAndView")){ return; } - responseBody = ContentCachingWrapperFilter.getResponseBody(response); - if(StringUtils.isBlank(responseBody)){ - throw new JeroBootException(ResultCommon.ERROR); + if(Objects.equals(returnType,"void") && !Objects.equals(type,"1")){ + return; } - } catch (IOException e) { + ContentCachingResponseWrapper wrapper = WebUtils.getNativeResponse(response, ContentCachingResponseWrapper.class); + if (wrapper != null) { + responseBody = wrapper.getContentInputStream(); + } + } catch (Exception e) { e.printStackTrace(); throw new JeroBootException(ResultCommon.ERROR); } - - MultipartFile file = getMultipartFile(responseBody); + MultipartFile file = getMultipartFile(responseBody, response); // 访问路径 String str = request.getRequestURI(); @@ -114,22 +119,30 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic if(b){ // 预览,进行解密 - writeFile(response, file, null); + decryptFile(response, file, null); }else if(b1){ // 下载文件 先解密,判断组织域,加密 - writeFile(response, file, null); + decryptFile(response, file, null); int scope = getScope(); // 加密 - writeFile(response, file, scope); + encryptFile(response, file, scope); }else{ // excel 判断组织域,加密 int scope = getScope(); // 加密 - writeFile(response, file, scope); + encryptFile(response, file, scope); } } - private void writeFile(HttpServletResponse response, MultipartFile file, Integer scope) { + private void decryptFile(HttpServletResponse response, MultipartFile file, Integer scope) { + try (InputStream is = IntekeyUtils.DecryptFile(decryptUrl, decryptAppCode, decryptSecretKey, scope, file)) { + writeResponse(response, is); + } catch (Exception e) { + throw new JeroBootException(ResultCommon.ERROR); + } + } + + private void encryptFile(HttpServletResponse response, MultipartFile file, Integer scope) { try (InputStream is = IntekeyUtils.DecryptFile(encryptUrl, encryptAppCode, encryptSecretKey, scope, file)) { writeResponse(response, is); } catch (Exception e) { @@ -138,10 +151,25 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic } @NotNull - private MultipartFile getMultipartFile(String responseBody) { + private MultipartFile getMultipartFile(InputStream responseBody,HttpServletResponse response) { MultipartFile file; - try (InputStream inputStream = new ByteArrayInputStream(responseBody.getBytes(StandardCharsets.UTF_8))){ - file = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream); + try { + String contentType = response.getContentType(); + String fileName = ""; + String headerField = response.getHeader("Content-Disposition"); + + if (!StringUtils.isBlank(headerField) || headerField.contains("fileName=") || headerField.contains("filename=")){ + String name = ""; + if(headerField.contains("fileName=")){ + name = "fileName"; + }else{ + name = "filename"; + } + fileName = headerField.substring(headerField.lastIndexOf(name + "=") + 9); + }else { + fileName = UUID.randomUUID().toString(); + } + file = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(),fileName,contentType, responseBody); } catch (IOException e) { e.printStackTrace(); throw new JeroBootException(ResultCommon.ERROR); @@ -152,7 +180,7 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic private boolean isBoolean(String str, List viewUrl) { boolean b = false; for (String s : viewUrl) { - if (s.contains(str)) { + if (str.contains(s)) { b = true; break; } @@ -179,6 +207,7 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic } private void writeResponse(HttpServletResponse response,InputStream is) { + response.resetBuffer(); try (OutputStream outputStream = response.getOutputStream()) { byte[] buf = new byte[1024]; int len; From e5d5cc59f60ac8f178e988b747271bc4a2ab9ad3 Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Mon, 27 Nov 2023 16:13:05 +0800 Subject: [PATCH 11/22] =?UTF-8?q?fix(=E6=96=87=E6=A1=A3=E6=8B=86=E5=88=86)?= =?UTF-8?q?:=20=E5=8F=91=E5=B8=83=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LawsCustomCompareInfoController.java | 14 ++++++++------ .../controller/DocumentSplitController.java | 11 ++++++----- .../documenttool/mapper/DocumentSplitMapper.java | 2 +- .../mapper/xml/DocumentSplitMapper.xml | 7 +++++-- .../service/impl/DocumentSplitServiceImpl.java | 10 +++++----- .../split/mapper/SarFileSplitMenuEOMapper.java | 2 +- 6 files changed, 26 insertions(+), 20 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/customcompare/controller/LawsCustomCompareInfoController.java b/laws-modules/src/main/java/com/jero/modules/laws/customcompare/controller/LawsCustomCompareInfoController.java index cf83cdd2..1057b46e 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/customcompare/controller/LawsCustomCompareInfoController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/customcompare/controller/LawsCustomCompareInfoController.java @@ -237,10 +237,11 @@ public class LawsCustomCompareInfoController { @PostMapping(value = "/delById") @RequiresPermissions("customComparison:delete") public Result delById(@RequestBody IdMapBody map) { - if (StringUtils.isBlank(map.getId())){ - lawsCustomCompareInfoService.delById(map.getId()); - lawsCustomCompareInfoService.editCompareCreateTime(map.getId()); + if (StringUtils.isBlank(map.getId())) { + return Result.error("请选择数据!"); } + lawsCustomCompareInfoService.delById(map.getId()); + lawsCustomCompareInfoService.editCompareCreateTime(map.getId()); return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); } @@ -253,10 +254,11 @@ public class LawsCustomCompareInfoController { @PostMapping(value = "/delInventoryById") @RequiresPermissions("customComparison:edit") public Result delInventoryById(@RequestBody IdMapBody map) { - if (StringUtils.isBlank(map.getId())){ - lawsCustomCompareInventoryService.removeById(map.getId()); - lawsCustomCompareInfoService.editCompareCreateTime(map.getId()); + if (StringUtils.isBlank(map.getId())) { + return Result.error("请选择数据!"); } + lawsCustomCompareInventoryService.removeById(map.getId()); + lawsCustomCompareInfoService.editCompareCreateTime(map.getId()); return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java index 0086c4de..66368a33 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java @@ -190,12 +190,13 @@ public class DocumentSplitController { @PostMapping(value = "/delete") @RequiresPermissions("split:sarFileSplitInfo:delete") @ApiOperationSupport(order = 9) - public Result delete(@RequestBody IdMapBody map) { - if (StringUtils.isBlank(map.getId())){ - String id = map.getId(); - documentSplitService.checkOutOperation(Collections.singletonList(id)); - sarFileSplitInfoService.deleteById(id); + public Result delete(@RequestBody IdMapBody map){ + if (StringUtils.isBlank(map.getId())) { + return Result.error("请选择数据!"); } + documentSplitService.checkOutOperation(Collections.singletonList(map.getId())); + sarFileSplitInfoService.deleteById(map.getId()); + return Result.OK(MessageUtils.getMessage(ResultCommon.SUCCESSFULLY_DELETED)); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/DocumentSplitMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/DocumentSplitMapper.java index 39efc198..cd63bfc6 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/DocumentSplitMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/DocumentSplitMapper.java @@ -125,7 +125,7 @@ public interface DocumentSplitMapper { * @param insertValue * @return */ - int insertLawsDocumentSplit(@Param("insertField") String insertField, @Param("insertValue") String insertValue); + int insertLawsDocumentSplit(@Param("insertField") String insertField, @Param("insertValue") List insertValue); /** * 条目批量删除根据itemId diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/xml/DocumentSplitMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/xml/DocumentSplitMapper.xml index 4d565269..c09b1195 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/xml/DocumentSplitMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/xml/DocumentSplitMapper.xml @@ -20,7 +20,10 @@ insert into laws_document_split(${insertField}) - values (${insertValue}) + values + + #{value} + @@ -109,7 +112,7 @@ file_type, file_name, split_status, - (IF(i.is_asms_import = '1', i.author, concat(u.realname, '(', u.username, ')'))) as author, + (IF(i.is_asms_import = '1' and u.id is null, i.author, concat(u.realname, '(', u.username, ')'))) as author, i.create_time, i.split_result, u2.id createBy, diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java index 6988aea3..0ab7247b 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java @@ -744,7 +744,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { resultMap.put("update_time", format); // 字段名和值 manageData(resultMap, fieldsBuilder, valuesBuilder); - documentSplitMapper.insertLawsDocumentSplit(fieldsBuilder.toString(), valuesBuilder.toString()); + documentSplitMapper.insertLawsDocumentSplit(fieldsBuilder.toString(), Arrays.asList(valuesBuilder.toString().split(","))); } @Override @@ -993,11 +993,11 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { }); List keyList = new ArrayList<>(map.keySet()); - List valueList = map.values().stream().map(o -> (o + "").replace("'", "\\'") ).collect(Collectors.toList()); + List valueList = map.values().stream().map(o -> (String.valueOf(o))).collect(Collectors.toList()); // 新增数据 String insertField = String.join(",", keyList); - String insertValue = "'" + String.join("','", valueList)+ "'"; - documentSplitMapper.insertLawsDocumentSplit(insertField, insertValue); +// String insertValue = "'" + String.join("','", valueList)+ "'"; + documentSplitMapper.insertLawsDocumentSplit(insertField, valueList); // 条目信息(旧) List sarFileSplitItemsVal = documentSplitMapper.querySarFileSplitItemsValByItemId(oldId); @@ -1106,7 +1106,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { // 所有key(字段名) resultMap.forEach((k, v) -> { fieldsBuilder.append(k).append(","); - valuesBuilder.append("'").append(v).append("'").append(","); + valuesBuilder.append(v).append(","); }); fieldsBuilder.deleteCharAt(fieldsBuilder.length() - 1); valuesBuilder.deleteCharAt(valuesBuilder.length() - 1); diff --git a/laws-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitMenuEOMapper.java b/laws-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitMenuEOMapper.java index 29a22c4c..62d96908 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitMenuEOMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitMenuEOMapper.java @@ -48,7 +48,7 @@ public interface SarFileSplitMenuEOMapper extends BaseMapper int deleteByIdList(@Param("idList") List idList); - SarFileSplitMenuEO selectGeneral(@Param("infoId") String infoId); + List selectGeneral(@Param("infoId") String infoId); int insert(SarFileSplitMenuEO sarFileSplitMenuEO); From ae18cf99a3fa99ec5d62f54d97162055082dcfb0 Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Mon, 27 Nov 2023 16:15:30 +0800 Subject: [PATCH 12/22] =?UTF-8?q?fix(=E6=96=87=E6=A1=A3=E6=8B=86=E5=88=86)?= =?UTF-8?q?:=20=E5=8F=91=E5=B8=83=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SarFileSplitInfoServiceImpl.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java index 52c3a8db..f2da4b23 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java @@ -111,7 +111,7 @@ public class SarFileSplitInfoServiceImpl extends ServiceImpl menu = sarFileSplitMenuEOMapper.selectGeneral(id); if(ObjectUtil.isNotEmpty(menu)) { - sarFileSplitMenuEOService.deleteMenu(menu.getId()); + for (SarFileSplitMenuEO sarFileSplitMenuEO : menu) { + sarFileSplitMenuEOService.deleteMenu(sarFileSplitMenuEO.getId()); + } } } @@ -231,9 +234,11 @@ public class SarFileSplitInfoServiceImpl extends ServiceImpl menu = sarFileSplitMenuEOMapper.selectGeneral(id); if(ObjectUtil.isNotEmpty(menu)) { - sarFileSplitMenuEOService.deleteMenu(menu.getId()); + for (SarFileSplitMenuEO sarFileSplitMenuEO : menu) { + sarFileSplitMenuEOService.deleteMenu(sarFileSplitMenuEO.getId()); + } } } } From 9abc636637f176ca86343af64600618423d9d7cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Mon, 27 Nov 2023 17:13:35 +0800 Subject: [PATCH 13/22] =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=8A=A0=E8=A7=A3=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../download/dto/MultipartFileDto.java | 117 ------------------ .../impl/DownloadDecryptFileServiceImpl.java | 67 ++++++---- .../src/main/resources/application-dev.yml | 1 + 3 files changed, 41 insertions(+), 144 deletions(-) delete mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/download/dto/MultipartFileDto.java diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/dto/MultipartFileDto.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/dto/MultipartFileDto.java deleted file mode 100644 index fc14023f..00000000 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/dto/MultipartFileDto.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.jero.modules.docking.download.dto; - -import org.springframework.util.FileCopyUtils; -import org.springframework.web.multipart.MultipartFile; - -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; - -/** - * @author lqt - * @version 1.0 - * @date 2023/11/27 11:12 - */ - -public class MultipartFileDto implements MultipartFile { - private final String name; - - private String originalFilename; - - private String contentType; - - private final byte[] content ; - - /** - * Create a new MultipartFileDto with the given content. - * - * @param name the name of the file - * @param content the content of the file - */ - public MultipartFileDto(String name, byte[] content) { - this(name, "", null, content); - } - - /** - * Create a new MultipartFileDto with the given content. - * - * @param name the name of the file - * @param contentStream the content of the file as stream - * @throws IOException if reading from the stream failed - */ - public MultipartFileDto(String name, InputStream contentStream) throws IOException { - this(name, "", null, FileCopyUtils.copyToByteArray(contentStream)); - } - - /** - * Create a new MultipartFileDto with the given content. - * - * @param name the name of the file - * @param originalFilename the original filename (as on the client's machine) - * @param contentType the content type (if known) - * @param content the content of the file - */ - public MultipartFileDto(String name, String originalFilename, String contentType, byte[] content) { - this.name = name; - this.originalFilename = (originalFilename != null ? originalFilename : ""); - this.contentType = contentType; - this.content = (content != null ? content : new byte[0]); - } - - /** - * Create a new MultipartFileDto with the given content. - * - * @param name the name of the file - * @param originalFilename the original filename (as on the client's machine) - * @param contentType the content type (if known) - * @param contentStream the content of the file as stream - * @throws IOException if reading from the stream failed - */ - public MultipartFileDto(String name, String originalFilename, String contentType, InputStream contentStream) - throws IOException { - - this(name, originalFilename, contentType, FileCopyUtils.copyToByteArray(contentStream)); - } - - @Override - public String getName() { - return this.name; - } - - @Override - public String getOriginalFilename() { - return this.originalFilename; - } - - @Override - public String getContentType() { - return this.contentType; - } - - @Override - public boolean isEmpty() { - return (this.content.length == 0); - } - - @Override - public long getSize() { - return this.content.length; - } - - @Override - public byte[] getBytes() throws IOException { - return this.content; - } - - @Override - public InputStream getInputStream() throws IOException { - return new ByteArrayInputStream(this.content); - } - - @Override - public void transferTo(File dest) throws IOException, IllegalStateException { - FileCopyUtils.copy(this.content, dest); - - } -} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java index 5e7cb2c4..bd37a5c9 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java @@ -3,13 +3,10 @@ package com.jero.modules.docking.download.service.impl; import com.jero.common.api.vo.ResultCommon; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; -import com.jero.modules.docking.download.config.ContentCachingWrapperFilter; -import com.jero.modules.docking.download.dto.MultipartFileDto; import com.jero.modules.docking.download.service.DownloadDecryptFileService; import com.jero.modules.docking.utils.IntekeyUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.http.entity.ContentType; import org.apache.shiro.SecurityUtils; @@ -24,12 +21,9 @@ import org.springframework.web.util.WebUtils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -50,6 +44,9 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic @Value("#{'${download.view_url}'.split(',')}") private List viewUrl; + @Value("#{'${download.enable}'}") + private boolean enable; + /** * 管理员角色 */ @@ -90,6 +87,9 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic @Override public void downloadDecryptFile(HttpServletRequest request, HttpServletResponse response, Object handler,String type) { + if(!enable){ + return; + } // 判断返回值是否为文件流,否则其他接口返回值会变更成字符串,导致前端无法解析 HandlerMethod handlerMethod = (HandlerMethod) handler; InputStream responseBody = null; @@ -109,7 +109,11 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic e.printStackTrace(); throw new JeroBootException(ResultCommon.ERROR); } - MultipartFile file = getMultipartFile(responseBody, response); + + String contentType = response.getContentType(); + String fileName = getFileName(response); + + MultipartFile file = getMultipartFile(responseBody, contentType, fileName); // 访问路径 String str = request.getRequestURI(); @@ -122,10 +126,15 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic decryptFile(response, file, null); }else if(b1){ // 下载文件 先解密,判断组织域,加密 - decryptFile(response, file, null); - int scope = getScope(); - // 加密 - encryptFile(response, file, scope); + try (InputStream is = IntekeyUtils.DecryptFile(decryptUrl, decryptAppCode, decryptSecretKey, null, file)) { + MultipartFile fileDecrypt = getMultipartFile(is, contentType, fileName); + int scope = getScope(); + // 加密 + encryptFile(response, fileDecrypt, scope); + } catch (Exception e) { + throw new JeroBootException(ResultCommon.ERROR); + } + }else{ // excel 判断组织域,加密 int scope = getScope(); @@ -134,6 +143,25 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic } } + @NotNull + private String getFileName(HttpServletResponse response) { + String fileName = ""; + String headerField = response.getHeader("Content-Disposition"); + + if (!StringUtils.isBlank(headerField) || headerField.contains("fileName=") || headerField.contains("filename=")){ + String name = ""; + if(headerField.contains("fileName=")){ + name = "fileName"; + }else{ + name = "filename"; + } + fileName = headerField.substring(headerField.lastIndexOf(name + "=") + 9); + }else { + fileName = UUID.randomUUID().toString(); + } + return fileName; + } + private void decryptFile(HttpServletResponse response, MultipartFile file, Integer scope) { try (InputStream is = IntekeyUtils.DecryptFile(decryptUrl, decryptAppCode, decryptSecretKey, scope, file)) { writeResponse(response, is); @@ -151,24 +179,9 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic } @NotNull - private MultipartFile getMultipartFile(InputStream responseBody,HttpServletResponse response) { + private MultipartFile getMultipartFile(InputStream responseBody,String contentType,String fileName) { MultipartFile file; try { - String contentType = response.getContentType(); - String fileName = ""; - String headerField = response.getHeader("Content-Disposition"); - - if (!StringUtils.isBlank(headerField) || headerField.contains("fileName=") || headerField.contains("filename=")){ - String name = ""; - if(headerField.contains("fileName=")){ - name = "fileName"; - }else{ - name = "filename"; - } - fileName = headerField.substring(headerField.lastIndexOf(name + "=") + 9); - }else { - fileName = UUID.randomUUID().toString(); - } file = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(),fileName,contentType, responseBody); } catch (IOException e) { e.printStackTrace(); diff --git a/laws-single-startup/src/main/resources/application-dev.yml b/laws-single-startup/src/main/resources/application-dev.yml index 591a83eb..db9ea9b7 100644 --- a/laws-single-startup/src/main/resources/application-dev.yml +++ b/laws-single-startup/src/main/resources/application-dev.yml @@ -432,6 +432,7 @@ adminRoleCode: admin # 文件下载加解密 download: + enable: true # 文件下载、预览拦截路径,多个以逗号分隔 download_url: /sys/common/download/ view_url: /sys/common/view/ From aaf1a5c810d0b23935a5b14185063cc3dc9c6c76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Mon, 27 Nov 2023 18:22:29 +0800 Subject: [PATCH 14/22] =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=8A=A0=E8=A7=A3=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../download/controller/SearchController.java | 56 +++++++++++++++++++ .../impl/DownloadDecryptFileServiceImpl.java | 18 +++--- .../impl/LawsHomeSearchServiceImpl.java | 10 ---- .../src/main/resources/application-dev.yml | 2 +- 4 files changed, 66 insertions(+), 20 deletions(-) create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/download/controller/SearchController.java diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/controller/SearchController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/controller/SearchController.java new file mode 100644 index 00000000..b714df6e --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/controller/SearchController.java @@ -0,0 +1,56 @@ +package com.jero.modules.docking.download.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.constant.CommonConstant; +import com.jero.common.exception.JeroBootException; +import com.jero.common.util.CommonUtils; +import com.jero.common.util.MinioUtil; +import com.jero.common.util.oConvertUtils; +import com.jero.modules.docking.utils.IntekeyUtils; +import com.jero.modules.laws.home.dto.LawsHomeNormalSearchDTO; +import com.jero.modules.laws.home.vo.LawsHomeNormalSearchVO; +import com.jero.modules.oss.entity.OSSFile; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; + +/** + * @author lqt + * @version 1.0 + * @date 2023/11/27 17:41 + */ +@RestController +@RequestMapping("/home/search") +public class SearchController { + + + @PostMapping(value = "/download") + private void downloadAndView(@RequestParam("file") MultipartFile file, + @RequestParam("url") String url, + @RequestParam("appCode") String appCode, + @RequestParam("secretKey") String secretKey, + @RequestParam("scope") Integer scope, + HttpServletResponse response) { + try (InputStream inputStream = IntekeyUtils.DecryptFile(url, appCode, secretKey, scope, file); + OutputStream outputStream = response.getOutputStream() + ) { + byte[] buf = new byte[1024]; + int len; + while ((len = inputStream.read(buf)) > 0) { + outputStream.write(buf, 0, len); + } + response.flushBuffer(); + } catch (Exception e) { + response.setStatus(404); + e.printStackTrace(); + } + } +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java index bd37a5c9..b9ed3343 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/service/impl/DownloadDecryptFileServiceImpl.java @@ -107,13 +107,13 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic } } catch (Exception e) { e.printStackTrace(); - throw new JeroBootException(ResultCommon.ERROR); + response.setStatus(404); } String contentType = response.getContentType(); String fileName = getFileName(response); - MultipartFile file = getMultipartFile(responseBody, contentType, fileName); + MultipartFile file = getMultipartFile(response,responseBody, contentType, fileName); // 访问路径 String str = request.getRequestURI(); @@ -127,12 +127,12 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic }else if(b1){ // 下载文件 先解密,判断组织域,加密 try (InputStream is = IntekeyUtils.DecryptFile(decryptUrl, decryptAppCode, decryptSecretKey, null, file)) { - MultipartFile fileDecrypt = getMultipartFile(is, contentType, fileName); + MultipartFile fileDecrypt = getMultipartFile(response,is, contentType, fileName); int scope = getScope(); // 加密 encryptFile(response, fileDecrypt, scope); } catch (Exception e) { - throw new JeroBootException(ResultCommon.ERROR); + response.setStatus(404); } }else{ @@ -166,7 +166,7 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic try (InputStream is = IntekeyUtils.DecryptFile(decryptUrl, decryptAppCode, decryptSecretKey, scope, file)) { writeResponse(response, is); } catch (Exception e) { - throw new JeroBootException(ResultCommon.ERROR); + response.setStatus(404); } } @@ -174,18 +174,18 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic try (InputStream is = IntekeyUtils.DecryptFile(encryptUrl, encryptAppCode, encryptSecretKey, scope, file)) { writeResponse(response, is); } catch (Exception e) { - throw new JeroBootException(ResultCommon.ERROR); + response.setStatus(404); } } @NotNull - private MultipartFile getMultipartFile(InputStream responseBody,String contentType,String fileName) { - MultipartFile file; + private MultipartFile getMultipartFile(HttpServletResponse response,InputStream responseBody,String contentType,String fileName) { + MultipartFile file = null; try { file = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(),fileName,contentType, responseBody); } catch (IOException e) { e.printStackTrace(); - throw new JeroBootException(ResultCommon.ERROR); + response.setStatus(404); } return file; } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java index 3b05b7ec..cf551597 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java @@ -595,12 +595,8 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { JSONObject sort = new JSONObject(); Map issueTimeDesc = new HashMap<>(); - Map issueTimeAsc = new HashMap<>(); Map issueTime = new HashMap<>(); issueTimeDesc.put("order","desc"); - issueTimeAsc.put("order","asc"); - issueTime.put(RESOURCE_TYPE,issueTimeAsc); - issueTime.put(STANDARD_TYPE,issueTimeDesc); issueTime.put(CREATE_TIME,issueTimeDesc); sort.putAll(issueTime); IPage page = getIPage(searchContent, queryMapJsonAll, mapHighlight1, @@ -902,11 +898,6 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { obj.setApplicableVehicle(lawsDomesticStandard.getApplicableVehicle()); obj.setStandardProperty(lawsDomesticStandard.getStandardProperty()); obj.setStandardState(lawsDomesticStandard.getStandardState()); - if(Objects.equals(lawsDomesticStandard.getStandardClass(),"GB")){ - obj.setStandardType("2"); - }else if(Objects.equals(lawsDomesticStandard.getStandardClass(),"GB/T")){ - obj.setStandardType("1"); - } List listFile = getOssFilesLawsDomesticStandard(lawsDomesticStandard); updateES(opType, obj, listFile, lawsDomesticStandard.getId()); }catch (Exception e){ @@ -1202,7 +1193,6 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { map.put(STANDARD_CODE,obj.getStandardCode()); map.put(ENTERPRISE_STANDARD_STATE,obj.getEnterpriseStandardState()); map.put(GRADE_CLASSIFICATION,obj.getGradeClassification()); - map.put(STANDARD_TYPE,obj.getStandardType()); map.put(CREATE_TIME,new Date()); //添加es JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(map)); diff --git a/laws-single-startup/src/main/resources/application-dev.yml b/laws-single-startup/src/main/resources/application-dev.yml index db9ea9b7..95fb6c73 100644 --- a/laws-single-startup/src/main/resources/application-dev.yml +++ b/laws-single-startup/src/main/resources/application-dev.yml @@ -432,7 +432,7 @@ adminRoleCode: admin # 文件下载加解密 download: - enable: true + enable: false # 文件下载、预览拦截路径,多个以逗号分隔 download_url: /sys/common/download/ view_url: /sys/common/view/ From fc684156d4984767c0428bdc5a049a7fc82dd100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Mon, 27 Nov 2023 18:23:07 +0800 Subject: [PATCH 15/22] =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=8A=A0=E8=A7=A3=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../download/controller/SearchController.java | 25 ++++++------------- 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/controller/SearchController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/controller/SearchController.java index b714df6e..c48a61ef 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/download/controller/SearchController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/download/controller/SearchController.java @@ -1,26 +1,15 @@ package com.jero.modules.docking.download.controller; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.jero.common.api.vo.Result; -import com.jero.common.aspect.annotation.AutoLog; -import com.jero.common.constant.CommonConstant; -import com.jero.common.exception.JeroBootException; -import com.jero.common.util.CommonUtils; -import com.jero.common.util.MinioUtil; -import com.jero.common.util.oConvertUtils; import com.jero.modules.docking.utils.IntekeyUtils; -import com.jero.modules.laws.home.dto.LawsHomeNormalSearchDTO; -import com.jero.modules.laws.home.vo.LawsHomeNormalSearchVO; -import com.jero.modules.oss.entity.OSSFile; -import io.swagger.annotations.ApiOperation; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.MultipartHttpServletRequest; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.*; +import java.io.InputStream; +import java.io.OutputStream; /** * @author lqt @@ -33,7 +22,7 @@ public class SearchController { @PostMapping(value = "/download") - private void downloadAndView(@RequestParam("file") MultipartFile file, + public void downloadAndView(@RequestParam("file") MultipartFile file, @RequestParam("url") String url, @RequestParam("appCode") String appCode, @RequestParam("secretKey") String secretKey, From ced29459af5ce9259748f4b60a887481957f9db4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Mon, 27 Nov 2023 19:04:11 +0800 Subject: [PATCH 16/22] =?UTF-8?q?ES=E5=AE=9A=E6=97=B6=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/es/JeroElasticsearchTemplate.java | 14 ++ .../home/job/HomeSearchCheckEsPlanJob.java | 233 ++++++++++++++++++ 2 files changed, 247 insertions(+) create mode 100644 laws-modules/src/main/java/com/jero/modules/laws/home/job/HomeSearchCheckEsPlanJob.java diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/es/JeroElasticsearchTemplate.java b/laws-base/laws-base-core/src/main/java/com/jero/common/es/JeroElasticsearchTemplate.java index d1a9a8d3..b0f3d35c 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/common/es/JeroElasticsearchTemplate.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/es/JeroElasticsearchTemplate.java @@ -477,5 +477,19 @@ public class JeroElasticsearchTemplate { return json; } + /** + * 按条件删除数据 + *

+ * 请求地址:POST http://{baseUrl}/{indexName}/{typeName}/_delete_by_query + */ + public JSONObject delete(String indexName, String typeName, JSONObject queryObject) { + String url = this.getBaseUrl(indexName, typeName).append("/_delete_by_query").toString(); + + log.info("url:" + url + " ,delete: " + queryObject.toJSONString()); + JSONObject res = RestUtil.post(url, queryObject); + log.info("url:" + url + " ,return res: \n" + res.toJSONString()); + return res; + } + } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/job/HomeSearchCheckEsPlanJob.java b/laws-modules/src/main/java/com/jero/modules/laws/home/job/HomeSearchCheckEsPlanJob.java new file mode 100644 index 00000000..e2b96a9d --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/job/HomeSearchCheckEsPlanJob.java @@ -0,0 +1,233 @@ +package com.jero.modules.laws.home.job; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.es.JeroElasticsearchTemplate; +import com.jero.modules.laws.home.common.LawsHomeSearchCommon; +import com.jero.modules.laws.home.enums.HomeSearchEnum; +import com.jero.modules.laws.home.service.ILawsHomeSearchService; +import com.jero.modules.laws.standard.entity.LawsDomesticStandard; +import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; +import com.jero.modules.laws.standard.entity.LawsNewsFeed; +import com.jero.modules.laws.standard.entity.LawsOverseasStandard; +import com.jero.modules.laws.standard.service.ILawsDomesticStandardService; +import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; +import com.jero.modules.laws.standard.service.ILawsNewsFeedService; +import com.jero.modules.laws.standard.service.ILawsOverseasStandardService; +import io.minio.messages.DeleteRequest; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; +import org.quartz.Job; +import org.quartz.JobDataMap; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ForkJoinPool; +import java.util.stream.Collectors; + +/** + * 每天定时比对ES数据条数与业务数据条数是否一致,不一致重新更新 + * @author lqt + * @version 1.0 + * @date 2023/11/27 10:30 + */ +@Slf4j +public class HomeSearchCheckEsPlanJob implements Job { + @Resource + private ILawsDomesticStandardService lawsDomesticStandardService; + @Resource + private ILawsOverseasStandardService lawsOverseasStandardService; + @Resource + private ILawsEnterpriseStandardService lawsEnterpriseStandardService; + @Resource + private ILawsNewsFeedService lawsNewsFeedService; + @Resource + private JeroElasticsearchTemplate jeroElasticsearchTemplate; + @Resource + private ILawsHomeSearchService lawsHomeSearchService; + + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException { + // 获取外部传来的参数 + JobDataMap map = context.getJobDetail().getJobDataMap(); + String resourceType = map.getString("parameter"); + List listType = getList(resourceType); + Map mapHash = getTypeCount(); + listType.parallelStream().forEach(p->{ + switch (p){ + // 比对国内标准 + case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD: + checkLawsDomesticStandard(resourceType, mapHash); + break; + // 比对国外标准 + case LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD: + checkLawsOverseasStandard(resourceType, mapHash); + break; + // 比对企业标准 + case LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD: + checkLawsEnterpriseStandard(resourceType, mapHash); + break; + // 比对动态消息 + case LawsHomeSearchCommon.LAWS_NEWS_FEED: + checkLawsNewsFeed(resourceType, mapHash); + break; + default:break; + } + }); + } + + private void checkLawsNewsFeed(String resourceType, Map mapHash) { + List listLawsNewsFeed = lawsNewsFeedService.list(); + int count4 = mapHash.getOrDefault(LawsHomeSearchCommon.LAWS_NEWS_FEED, 0); + int m4 = 0; + if(!CollectionUtils.isEmpty(listLawsNewsFeed)){ + m4 = listLawsNewsFeed.size(); + } + if(count4 != m4){ + // 清理数据重新更新 + delete(resourceType); + if(!CollectionUtils.isEmpty(listLawsNewsFeed)){ + List listIds = listLawsNewsFeed.stream().map(LawsNewsFeed::getId).collect(Collectors.toList()); + addES(listIds, LawsHomeSearchCommon.LAWS_NEWS_FEED); + } + } + } + + private void checkLawsEnterpriseStandard(String resourceType, Map mapHash) { + List listLawsEnterpriseStandard = lawsEnterpriseStandardService.list(); + int count3 = mapHash.getOrDefault(LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD, 0); + int m3 = 0; + if(!CollectionUtils.isEmpty(listLawsEnterpriseStandard)){ + m3 = listLawsEnterpriseStandard.size(); + } + if(count3 != m3){ + // 清理数据重新更新 + delete(resourceType); + if(!CollectionUtils.isEmpty(listLawsEnterpriseStandard)){ + List listIds = listLawsEnterpriseStandard.stream().map(LawsEnterpriseStandard::getId).collect(Collectors.toList()); + addES(listIds, LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD); + } + } + } + + private void checkLawsOverseasStandard(String resourceType, Map mapHash) { + List listLawsOverseasStandard = lawsOverseasStandardService.list(); + int count2 = mapHash.getOrDefault(LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD, 0); + int m2 = 0; + if(!CollectionUtils.isEmpty(listLawsOverseasStandard)){ + m2 = listLawsOverseasStandard.size(); + } + if(count2 != m2){ + // 清理数据重新更新 + delete(resourceType); + if(!CollectionUtils.isEmpty(listLawsOverseasStandard)){ + List listIds = listLawsOverseasStandard.stream().map(LawsOverseasStandard::getId).collect(Collectors.toList()); + addES(listIds, LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD); + } + } + } + + private void checkLawsDomesticStandard(String resourceType, Map mapHash) { + List listLawsDomesticStandard = lawsDomesticStandardService.list(); + // 比对数据 + int count1 = mapHash.getOrDefault(LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD, 0); + int m1 = 0; + if(!CollectionUtils.isEmpty(listLawsDomesticStandard)){ + m1 = listLawsDomesticStandard.size(); + } + if(count1 != m1){ + // 清理数据重新更新 + delete(resourceType); + if(!CollectionUtils.isEmpty(listLawsDomesticStandard)){ + List listIds = listLawsDomesticStandard.stream().map(LawsDomesticStandard::getId).collect(Collectors.toList()); + addES(listIds, LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD); + } + } + } + + @NotNull + private List getList(String resourceType) { + List listType = new ArrayList<>(); + if(StringUtils.isBlank(resourceType)){ + listType.add(LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD); + listType.add(LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD); + listType.add(LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD); + listType.add(LawsHomeSearchCommon.LAWS_NEWS_FEED); + }else{ + listType.add(resourceType); + } + return listType; + } + + private void addES(List listIds, String lawsNewsFeed) { + int startIndex = 0; // 从第0个下标开始 + int batchCount = 1000; + while (startIndex < listIds.size()) { + int endIndex = 0; + if (listIds.size() - batchCount < startIndex) { + endIndex = listIds.size(); + } else { + endIndex = startIndex + batchCount; + } + List ids = listIds.subList(startIndex, endIndex); + // 异步生成记录 + ForkJoinPool pool = new ForkJoinPool(); + // 异步调用 + CompletableFuture.runAsync(() -> { + try { + lawsHomeSearchService.updateEsData(lawsNewsFeed, String.join(",", ids), LawsHomeSearchCommon.LAWS_ES_ADD); + } catch (Exception e) { + log.error("ES同步异常:", e.getMessage()); + } + }, pool); + startIndex = startIndex + batchCount; // 下一批 + } + } + + private Map getTypeCount(){ + Map mapHash = new HashMap<>(); + JSONObject jsonObject = new JSONObject(); + Map map = new HashMap<>(); + Map map1 = new HashMap<>(); + Map map2 = new HashMap<>(); + map1.put("field","resource_type.keyword"); + map2.put("terms",map1); + map.put("resource_type_aggs",map2); + jsonObject.put("aggs",map); + jsonObject.put("size",0); + //2. 数据查询 + JSONObject search = jeroElasticsearchTemplate.search(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue(), HomeSearchEnum.TYPE_NAME_DOCUMENT_ZQ.getValue(), jsonObject); + List> list1 = (List>) ((Map) ((Map) search.get("aggregations")).get("resource_type_aggs")).get("buckets"); + if (!CollectionUtils.isEmpty(list1)) { + for (Map stringObjectMap : list1) { + if (Objects.isNull(stringObjectMap.get("key"))) { + continue; + } + mapHash.put(stringObjectMap.get("key").toString(),Objects.isNull(stringObjectMap.get("doc_count")) ? 0 : Integer.parseInt(stringObjectMap.get("doc_count").toString())); + } + } + return mapHash; + } + + private void delete(String resourceType){ + JSONObject obj = new JSONObject(); + JSONArray queryMapJsonDict = new JSONArray(); + Map map1 = new HashMap<>(); + Map map2 = new HashMap<>(); + map2.put("resource_type",resourceType); + map1.put("match_phrase",map2); + queryMapJsonDict.add(map1); + JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJsonDict, null, null); + obj.put("query",jsonObject); + //2. 数据查询 + jeroElasticsearchTemplate.delete(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue(), HomeSearchEnum.TYPE_NAME_DOCUMENT_ZQ.getValue(), obj); + } +} From e3cd4adf703c41d23986d43ba5fe446d40d59664 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Tue, 28 Nov 2023 12:00:08 +0800 Subject: [PATCH 17/22] =?UTF-8?q?ES=E5=BC=82=E6=AD=A5=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home/job/HomeSearchCheckEsPlanJob.java | 15 ++---- .../impl/LawsHomeSearchServiceImpl.java | 51 ++++++++++--------- 2 files changed, 32 insertions(+), 34 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/job/HomeSearchCheckEsPlanJob.java b/laws-modules/src/main/java/com/jero/modules/laws/home/job/HomeSearchCheckEsPlanJob.java index e2b96a9d..5dbfd2d5 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/home/job/HomeSearchCheckEsPlanJob.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/job/HomeSearchCheckEsPlanJob.java @@ -178,16 +178,11 @@ public class HomeSearchCheckEsPlanJob implements Job { endIndex = startIndex + batchCount; } List ids = listIds.subList(startIndex, endIndex); - // 异步生成记录 - ForkJoinPool pool = new ForkJoinPool(); - // 异步调用 - CompletableFuture.runAsync(() -> { - try { - lawsHomeSearchService.updateEsData(lawsNewsFeed, String.join(",", ids), LawsHomeSearchCommon.LAWS_ES_ADD); - } catch (Exception e) { - log.error("ES同步异常:", e.getMessage()); - } - }, pool); + try { + lawsHomeSearchService.updateEsData(lawsNewsFeed, String.join(",", ids), LawsHomeSearchCommon.LAWS_ES_ADD); + } catch (Exception e) { + log.error("ES同步异常:", e.getMessage()); + } startIndex = startIndex + batchCount; // 下一批 } } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java index cf551597..ba890e2f 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java @@ -842,31 +842,34 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { throw new JeroBootException(ResultCommon.PARAMETER_NOT_RECOGNIZED); } log.info("================ES更新数据开始================="); - try{ - //判断索引是否存在 - boolean flagTemp; - flagTemp = jeroElasticsearchTemplate.indexExists(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue()); - if (!flagTemp) { - jeroElasticsearchTemplate.createIndex(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue()); + ForkJoinPool pool = new ForkJoinPool(); + CompletableFuture.runAsync(()->{ + try{ + //判断索引是否存在 + boolean flagTemp; + flagTemp = jeroElasticsearchTemplate.indexExists(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue()); + if (!flagTemp) { + jeroElasticsearchTemplate.createIndex(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue()); + } + switch (resourceType){ + case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD: + updateLawsDomesticStandardToEs(resourceType,ids,opType); + break; + case LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD: + updateLawsOverseasStandardToEs(resourceType,ids,opType); + break; + case LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD: + updateLawsEnterpriseStandardToEs(resourceType,ids,opType); + break; + case LawsHomeSearchCommon.LAWS_NEWS_FEED: + updateLawsNewsFeedToEs(resourceType,ids,opType); + break; + default:break; + } + }catch (Exception e){ + log.error("ES同步异常",e.getMessage()); } - switch (resourceType){ - case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD: - updateLawsDomesticStandardToEs(resourceType,ids,opType); - break; - case LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD: - updateLawsOverseasStandardToEs(resourceType,ids,opType); - break; - case LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD: - updateLawsEnterpriseStandardToEs(resourceType,ids,opType); - break; - case LawsHomeSearchCommon.LAWS_NEWS_FEED: - updateLawsNewsFeedToEs(resourceType,ids,opType); - break; - default:break; - } - }catch (Exception e){ - log.error("ES同步异常",e.getMessage()); - } + },pool); log.info("================ES更新数据结束================="); } From a26b046d36c01d658033847f3856cf0bd52c7668 Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Tue, 28 Nov 2023 17:12:28 +0800 Subject: [PATCH 18/22] =?UTF-8?q?fix(iam):=20=E5=88=9B=E5=BB=BA=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E9=BB=98=E8=AE=A4=E8=A7=92=E8=89=B2=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jero/modules/docking/iam/service/SyncIamService.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/service/SyncIamService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/service/SyncIamService.java index 06b55b9d..74d91ef1 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/service/SyncIamService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/service/SyncIamService.java @@ -62,6 +62,9 @@ public class SyncIamService { @Value("${iam.bimRemotePwd}") private String bimRemotePwd; + @Value("${iam.defaultRoleIds}") + private String defaultRoleIds; + @Resource private ISysUserService sysUserService; @@ -216,7 +219,7 @@ public class SyncIamService { // 获取角色(多个逗号分隔),针对大部分角用户默认写死一般用户 // (TODO 需要根据实际情况再沟通一遍角色怎么自动赋予),需要和角色接口那边沟通,确认具体情况 - String selectedRoles = "123"; // 一般用户的角色ID + String selectedRoles = defaultRoleIds; // 一般用户的角色ID // 存储到用户表中 this.sysUserService.saveUser(sysUser, selectedRoles, selectedDeparts); iamUserCreateResponse.setUid(sysUser.getId()); From 2c31d589c7a99fca52f9f6bdaa160d922eae8730 Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Tue, 28 Nov 2023 17:12:49 +0800 Subject: [PATCH 19/22] =?UTF-8?q?fix(iam):=20=E5=88=9B=E5=BB=BA=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E9=BB=98=E8=AE=A4=E8=A7=92=E8=89=B2=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- laws-single-startup/src/main/resources/application-dev.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/laws-single-startup/src/main/resources/application-dev.yml b/laws-single-startup/src/main/resources/application-dev.yml index 95fb6c73..7f3a0a6e 100644 --- a/laws-single-startup/src/main/resources/application-dev.yml +++ b/laws-single-startup/src/main/resources/application-dev.yml @@ -386,6 +386,8 @@ iam: # bimRemoteUser: bbcadmin # bimRemotePwd: P@ssw0rd bpmcAppkey: test + # 创建用户默认角色 + defaultRoleIds: 817f7f818bb3506e018bb3506ef70000 # Hiwork集成 hiwork: From 590727b499cf28bc4e3e7163676dd785677003be Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Tue, 28 Nov 2023 17:33:15 +0800 Subject: [PATCH 20/22] =?UTF-8?q?ci:=20=E5=8D=95=E7=82=B9=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=85=8D=E7=BD=AE=EF=BC=9Ahttps://iam-uat.sinotruk.co?= =?UTF-8?q?m:7011=E6=94=B9=E4=B8=BAhttps://iam-uat-new.sinotruk.com?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- laws-single-startup/src/main/resources/application-dev.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/laws-single-startup/src/main/resources/application-dev.yml b/laws-single-startup/src/main/resources/application-dev.yml index 7f3a0a6e..e55115a9 100644 --- a/laws-single-startup/src/main/resources/application-dev.yml +++ b/laws-single-startup/src/main/resources/application-dev.yml @@ -420,9 +420,9 @@ oauth: # 授权码验证 grantType: authorization_code # 通过授权码获取accessToken请求地址 - accessTokenUrl: https://iam-uat.sinotruk.com:7011/idp/oauth2/getToken + accessTokenUrl: https://iam-uat-new.sinotruk.com/idp/oauth2/getToken # 通过accessToken获取账号信息请求地址 - userInfoUrl: https://iam-uat.sinotruk.com:7011/idp/oauth2/getUserInfo + userInfoUrl: https://iam-uat-new.sinotruk.com/idp/oauth2/getUserInfo # 防止跨站请求伪造(CSRF)标识(暂时不用) state: zhongQi From d1d33b2bbaf4728c7cf26bb77ee544d6da6ed287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Thu, 30 Nov 2023 11:10:27 +0800 Subject: [PATCH 21/22] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=AB=98=E7=BA=A7?= =?UTF-8?q?=E6=A3=80=E7=B4=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../laws/standard/controller/LawsDomesticController.java | 9 +++++++++ .../standard/controller/LawsEnterpriseController.java | 9 +++++++++ .../laws/standard/controller/LawsOverseasController.java | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDomesticController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDomesticController.java index 52e19ef3..3e1af942 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDomesticController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDomesticController.java @@ -61,6 +61,15 @@ public class LawsDomesticController { return Result.OK(lawsCommonService.getCommonPage(parameterMap)); } + @AutoLog(value = "国内法规标准-分页列表查询") + @ApiOperation(value="国内法规标准-分页列表查询", notes="国内法规标准-分页列表查询") + @PostMapping(value = "/getCommonPageNoPermissions") + @ApiOperationSupport(order = 1) + public Result>> getCommonPageNoPermissions(@RequestBody @ApiParam("标签管理") Map parameterMap) { + parameterMap.put(FieldCommon.MODULE, MODULE_VALUE); + return Result.OK(lawsCommonService.getCommonPage(parameterMap)); + } + @AutoLog(value = "国内法规标准-获取列表表头") @ApiOperation(value="国内法规标准-获取列表表头", notes="国内法规标准-获取列表表头") @GetMapping(value = "getCommonHeader") diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java index 67efd3f9..f0b8c7f8 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java @@ -79,6 +79,15 @@ public class LawsEnterpriseController { return Result.OK(lawsCommonService.getCommonPage(parameterMap)); } + @AutoLog(value = "企业法规标准-分页列表查询") + @ApiOperation(value="企业法规标准-分页列表查询", notes="企业法规标准-分页列表查询") + @PostMapping(value = "/getCommonPageNoPermissions") + @ApiOperationSupport(order = 1) + public Result>> getCommonPageNoPermissions(@RequestBody @ApiParam("标签管理") Map parameterMap) { + parameterMap.put(FieldCommon.MODULE, MODULE_VALUE); + return Result.OK(lawsCommonService.getCommonPage(parameterMap)); + } + @AutoLog(value = "企业法规标准-获取列表表头") @ApiOperation(value="企业法规标准-获取列表表头", notes="企业法规标准-获取列表表头") @GetMapping(value = "getCommonHeader") diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsOverseasController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsOverseasController.java index 6e6b4ace..25b8739d 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsOverseasController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsOverseasController.java @@ -61,6 +61,15 @@ public class LawsOverseasController { return Result.OK(lawsCommonService.getCommonPage(parameterMap)); } + @AutoLog(value = "海外法规标准-分页列表查询") + @ApiOperation(value="海外法规标准-分页列表查询", notes="海外法规标准-分页列表查询") + @PostMapping(value = "/getCommonPageNoPermissions") + @ApiOperationSupport(order = 1) + public Result>> getCommonPageNoPermissions(@RequestBody @ApiParam("标签管理") Map parameterMap) { + parameterMap.put(FieldCommon.MODULE, MODULE_VALUE); + return Result.OK(lawsCommonService.getCommonPage(parameterMap)); + } + @AutoLog(value = "海外法规标准-获取列表表头") @ApiOperation(value="海外法规标准-获取列表表头", notes="海外法规标准-获取列表表头") @GetMapping(value = "getCommonHeader") From f6958adc1e64044de5c934c08c0f370957fbfa27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Thu, 30 Nov 2023 11:11:36 +0800 Subject: [PATCH 22/22] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=AB=98=E7=BA=A7?= =?UTF-8?q?=E6=A3=80=E7=B4=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../laws/standard/controller/LawsDomesticController.java | 4 ++-- .../laws/standard/controller/LawsEnterpriseController.java | 4 ++-- .../laws/standard/controller/LawsOverseasController.java | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDomesticController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDomesticController.java index 3e1af942..dd4b9629 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDomesticController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDomesticController.java @@ -61,8 +61,8 @@ public class LawsDomesticController { return Result.OK(lawsCommonService.getCommonPage(parameterMap)); } - @AutoLog(value = "国内法规标准-分页列表查询") - @ApiOperation(value="国内法规标准-分页列表查询", notes="国内法规标准-分页列表查询") + @AutoLog(value = "国内法规标准-高级检索") + @ApiOperation(value="国内法规标准-高级检索", notes="国内法规标准-高级检索") @PostMapping(value = "/getCommonPageNoPermissions") @ApiOperationSupport(order = 1) public Result>> getCommonPageNoPermissions(@RequestBody @ApiParam("标签管理") Map parameterMap) { diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java index f0b8c7f8..d59a83e6 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java @@ -79,8 +79,8 @@ public class LawsEnterpriseController { return Result.OK(lawsCommonService.getCommonPage(parameterMap)); } - @AutoLog(value = "企业法规标准-分页列表查询") - @ApiOperation(value="企业法规标准-分页列表查询", notes="企业法规标准-分页列表查询") + @AutoLog(value = "企业法规标准-高级检索") + @ApiOperation(value="企业法规标准-高级检索", notes="企业法规标准-高级检索") @PostMapping(value = "/getCommonPageNoPermissions") @ApiOperationSupport(order = 1) public Result>> getCommonPageNoPermissions(@RequestBody @ApiParam("标签管理") Map parameterMap) { diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsOverseasController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsOverseasController.java index 25b8739d..c9989b32 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsOverseasController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsOverseasController.java @@ -61,8 +61,8 @@ public class LawsOverseasController { return Result.OK(lawsCommonService.getCommonPage(parameterMap)); } - @AutoLog(value = "海外法规标准-分页列表查询") - @ApiOperation(value="海外法规标准-分页列表查询", notes="海外法规标准-分页列表查询") + @AutoLog(value = "海外法规标准-高级检索") + @ApiOperation(value="海外法规标准-高级检索", notes="海外法规标准-高级检索") @PostMapping(value = "/getCommonPageNoPermissions") @ApiOperationSupport(order = 1) public Result>> getCommonPageNoPermissions(@RequestBody @ApiParam("标签管理") Map parameterMap) {