diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java index 19cfcae..e59b2fe 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/OperateLogController.java @@ -1,6 +1,7 @@ package cn.axzo.log.platform.server.controller.api; import cn.axzo.log.platform.server.dto.*; +import cn.axzo.log.platform.server.enums.OuTypeEnums; import cn.axzo.log.platform.server.service.OperateLogService; import cn.azxo.framework.common.model.CommonPageResponse; import cn.azxo.framework.common.model.CommonResponse; @@ -65,20 +66,10 @@ public class OperateLogController { if (bindingResult.hasErrors()) { return CommonResponse.fail(bindingResult.getAllErrors().get(0).getDefaultMessage()); } - //todo 时间跨度校验。 后续如果切换ES 需要再确定 - /* if (DateUtil.betweenDay(req.getStartTime(), req.getEndTime(), true) > 7) { - logger.error("start and end date interval greater than 7."); - return CommonResponse.fail("the time span is greater than 7"); - }*/ try { - // 20221022 定制,从请求头获取 ouId、workspaceId。sally B 需求。如果请求体中这个值有了则不替换。 - String ouId = request.getHeader("ouId"); - String workspaceId = request.getHeader("workspaceId"); - if ((req.getOuId() == null || req.getOuId() == 0) && StringUtils.hasText(ouId)) { - req.setOuId(Long.valueOf(ouId)); - } - if ((req.getWorkspaceId() == null || req.getWorkspaceId() == 0) && StringUtils.hasText(workspaceId)) { - req.setWorkspaceId(Long.valueOf(workspaceId)); + String ouTypeStr = request.getHeader("ouType"); + if (StringUtils.hasText(ouTypeStr)) { + handleRequestHeaderParam(Integer.parseInt(ouTypeStr), req, request); } CommonPageResponse resp = operateLogService.queryBasicInfoForPage(req); return CommonResponse.success(resp); @@ -88,6 +79,41 @@ public class OperateLogController { } } + /*** + * 20221022 定制,根据ouType判断, + * 总包(ouType=1)的时候从header获取 workspaceId进行查询,分包(2\3\4\5)从header workspaceId+ouId查询。 + * 当请求体中存在值时 则不从请求头中获取值进行替换 + * @param ouType + * @param req + * @param request + * @throws Exception + */ + private void handleRequestHeaderParam(int ouType, OperateLogQueryReqDTO req, HttpServletRequest request) throws Exception { + String ouId = request.getHeader("ouId"); + String workspaceId = request.getHeader("workspaceId"); + if (OuTypeEnums.isPrimaryContractinUnit(ouType)) { + if (!StringUtils.hasText(workspaceId)) { + throw new Exception("can not find workspaceId from header"); + } + if ((req.getWorkspaceId() == null || req.getWorkspaceId() == 0)) { + req.setWorkspaceId(Long.valueOf(workspaceId)); + logger.info("total package, get workspaceId param from request header,workspaceId={},ouType={}.", workspaceId, ouType); + } + } else if (OuTypeEnums.isSubcontracting(ouType)) { + if (!StringUtils.hasText(ouId) || !StringUtils.hasText(workspaceId)) { + throw new Exception("can not find workspaceId or ouId from header"); + } + if ((req.getOuId() == null || req.getOuId() == 0)) { + req.setOuId(Long.valueOf(ouId)); + logger.info("sub package,get ouId param from request header,ouId={},ouType={}.", ouId, ouType); + } + if ((req.getWorkspaceId() == null || req.getWorkspaceId() == 0)) { + req.setWorkspaceId(Long.valueOf(workspaceId)); + logger.info("sub package,get workspaceId param from request header,workspaceId={}.", workspaceId); + } + } + } + @RequestMapping(value = "/operateLog/queryDetailForPage", method = RequestMethod.POST) @ApiOperation(value = "操作日志分页查询(详情列表)") diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/enums/OuTypeEnums.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/enums/OuTypeEnums.java new file mode 100644 index 0000000..7384c3d --- /dev/null +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/enums/OuTypeEnums.java @@ -0,0 +1,99 @@ +package cn.axzo.log.platform.server.enums; + +import cn.axzo.pudge.core.service.ServiceException; + +/*** + * @author: pepsi + * @description: TODO + * @date: 2022/10/22 + */ +public enum OuTypeEnums { + /** + * 默认单位,位为65535 + */ + ALL_TYPE(0, "默认单位"), + /** + * 总包单位 + */ + PRIMARY_CONTRACTING_UNIT(1, "总包单位"), + + /** + * 建设单位 + */ + CONSTRUCTION_UNIT(2, "建设单位"), + + /** + * 监理单位 + */ + SUPERVISION_UNIT(3, "监理单位"), + + /** + * 劳务分包 + */ + LABOR_SUBCONTRACTING(4, "劳务分包"), + + /** + * 专业分包 + */ + PROFESSIONAL_SUBCONTRACTING(5, "专业分包"), + + /** + * 项目外班组 + */ + PROJECT_OUT_TEAM(6, "班组"), + + /** + * 安心筑平台 + */ + AXZ_PLATFORM(7, "安心筑平台"); + + private int code; + private String value; + + OuTypeEnums(int code, String value) { + this.code = code; + this.value = value; + } + + public static OuTypeEnums getOuType(Integer typeCode) { + OuTypeEnums[] values = values(); + for (OuTypeEnums item : values) { + if (item.getCode() == typeCode) { + return item; + } + } + throw new ServiceException("班组类型不匹配 code:" + typeCode); + } + + public int getCode() { + return code; + } + + public String getValue() { + return value; + } + + /** + * 总包 + * + * @param typeCode + * @return + */ + public static boolean isPrimaryContractinUnit(int typeCode) { + return OuTypeEnums.PRIMARY_CONTRACTING_UNIT.getCode() == typeCode; + } + + /** + * 分包 + * + * @param typeCode + * @return + */ + public static boolean isSubcontracting(int typeCode) { + return OuTypeEnums.CONSTRUCTION_UNIT.getCode() == typeCode + || OuTypeEnums.SUPERVISION_UNIT.getCode() == typeCode + || OuTypeEnums.LABOR_SUBCONTRACTING.getCode() == typeCode + || OuTypeEnums.PROFESSIONAL_SUBCONTRACTING.getCode() == typeCode; + } + +}