From 278194a4a37df6ab8d7f6fcea9a5acb7fbe23ede Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 5 Jul 2022 18:44:45 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=93=8D=E4=BD=9C=E6=97=A5?= =?UTF-8?q?=E5=BF=97,=E5=B2=97=E4=BD=8D=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/web/LogViewController.java | 12 ++ .../logview/param/LogViewSearchParam.java | 26 ++++ .../entity/logview/vo/LogViewVO.java | 44 ++++++ .../organization/service/LogViewService.java | 22 +++ .../service/LogViewServiceImpl.java | 133 ++++++++++++++++++ .../service/impl/JobServiceImpl.java | 28 ---- .../transmethod/LogViewTransMethod.java | 31 ++++ .../organization/web/LogViewController.java | 54 +++++++ .../organization/wrapper/LogViewWrapper.java | 29 ++++ 9 files changed, 351 insertions(+), 28 deletions(-) create mode 100644 src/com/api/organization/web/LogViewController.java create mode 100644 src/com/engine/organization/entity/logview/param/LogViewSearchParam.java create mode 100644 src/com/engine/organization/entity/logview/vo/LogViewVO.java create mode 100644 src/com/engine/organization/service/LogViewService.java create mode 100644 src/com/engine/organization/service/LogViewServiceImpl.java create mode 100644 src/com/engine/organization/transmethod/LogViewTransMethod.java create mode 100644 src/com/engine/organization/web/LogViewController.java create mode 100644 src/com/engine/organization/wrapper/LogViewWrapper.java diff --git a/src/com/api/organization/web/LogViewController.java b/src/com/api/organization/web/LogViewController.java new file mode 100644 index 00000000..31decbcc --- /dev/null +++ b/src/com/api/organization/web/LogViewController.java @@ -0,0 +1,12 @@ +package com.api.organization.web; + +import javax.ws.rs.Path; + +/** + * @author:dxfeng + * @createTime: 2022/07/05 + * @version: 1.0 + */ +@Path("/bs/hrmorganization/log") +public class LogViewController extends com.engine.organization.web.LogViewController{ +} diff --git a/src/com/engine/organization/entity/logview/param/LogViewSearchParam.java b/src/com/engine/organization/entity/logview/param/LogViewSearchParam.java new file mode 100644 index 00000000..cd829bb8 --- /dev/null +++ b/src/com/engine/organization/entity/logview/param/LogViewSearchParam.java @@ -0,0 +1,26 @@ +package com.engine.organization.entity.logview.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author:dxfeng + * @createTime: 2022/07/05 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class LogViewSearchParam { + private Long operatorId; + private Long companyId; + private Long departmentId; + private String operateDate; + private String operateModule; + private String startDate; + private String endDate; + private String moduleType; +} diff --git a/src/com/engine/organization/entity/logview/vo/LogViewVO.java b/src/com/engine/organization/entity/logview/vo/LogViewVO.java new file mode 100644 index 00000000..dbc5c618 --- /dev/null +++ b/src/com/engine/organization/entity/logview/vo/LogViewVO.java @@ -0,0 +1,44 @@ +package com.engine.organization.entity.logview.vo; + +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.organization.annotation.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @author:dxfeng + * @createTime: 2022/07/05 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@OrganizationTable(pageId = "caef4d3e-fc3d-11ec-a203-00e04c680716", + fields = "t.id, t.operator_name, t.create_time, t.operate_type, t.client_ip, t.operate_module_name", + fromSql = "FROM hr_log t ", + primarykey = "id", + tableType = WeaTableType.NONE +) +public class LogViewVO { + + @OrganizationTableColumn(text = "操作时间", width = "16%", column = "create_time", transmethod = "com.engine.organization.transmethod.StaffPlanTransMethod.getFormatDateString") + private Date createTime; + + @OrganizationTableColumn(text = "操作者", width = "16%", column = "operator_name") + private String operator; + + @OrganizationTableColumn(text = "操作类型", width = "16%", column = "operate_type", transmethod = "com.engine.organization.transmethod.LogViewTransMethod.getOperateType") + private String operateType; + + @OrganizationTableColumn(text = "所属模块", width = "16%", column = "operate_module_name") + private String operateModuleName; + + @OrganizationTableColumn(text = "操作IP", width = "16%", column = "client_ip") + private String clientIp; + +} diff --git a/src/com/engine/organization/service/LogViewService.java b/src/com/engine/organization/service/LogViewService.java new file mode 100644 index 00000000..73126ccc --- /dev/null +++ b/src/com/engine/organization/service/LogViewService.java @@ -0,0 +1,22 @@ +package com.engine.organization.service; + +import com.engine.organization.entity.logview.param.LogViewSearchParam; + +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2022/07/05 + * @version: 1.0 + */ +public interface LogViewService { + /** + * 日志列表 + * + * @param param + * @return + */ + Map listPage(LogViewSearchParam param); + + Map getSearchCondition(); +} diff --git a/src/com/engine/organization/service/LogViewServiceImpl.java b/src/com/engine/organization/service/LogViewServiceImpl.java new file mode 100644 index 00000000..951579b9 --- /dev/null +++ b/src/com/engine/organization/service/LogViewServiceImpl.java @@ -0,0 +1,133 @@ +package com.engine.organization.service; + +import com.api.browser.bean.SearchConditionGroup; +import com.api.browser.bean.SearchConditionItem; +import com.api.browser.bean.SearchConditionOption; +import com.cloudstore.eccom.result.WeaResultMsg; +import com.engine.core.impl.Service; +import com.engine.organization.component.OrganizationWeaTable; +import com.engine.organization.entity.logview.param.LogViewSearchParam; +import com.engine.organization.entity.logview.vo.LogViewVO; +import com.engine.organization.util.OrganizationFormItemUtil; +import org.apache.commons.lang.StringUtils; +import weaver.general.TimeUtil; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2022/07/05 + * @version: 1.0 + */ +public class LogViewServiceImpl extends Service implements LogViewService { + + @Override + public Map listPage(LogViewSearchParam param) { + Map resultMap = new HashMap<>(); + OrganizationWeaTable table = new OrganizationWeaTable<>(user, LogViewVO.class); + String sqlWhere = buildSqlWhere(param); + table.setSqlwhere(sqlWhere); + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(table.makeDataResult()); + result.success(); + resultMap.putAll(result.getResultMap()); + return resultMap; + } + + @Override + public Map getSearchCondition() { + Map apiDatas = new HashMap<>(); + List addGroups = new ArrayList<>(); + List conditionItems = new ArrayList<>(); + + // 操作者 + SearchConditionItem operatorId = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "操作者", "1", "operatorId", ""); + // 操作时间 + List selectOperateDate = new ArrayList<>(); + + selectOperateDate.add(new SearchConditionOption("-1", "全部")); + selectOperateDate.add(new SearchConditionOption("1", "今天")); + selectOperateDate.add(new SearchConditionOption("2", "本周")); + selectOperateDate.add(new SearchConditionOption("3", "本月")); + selectOperateDate.add(new SearchConditionOption("4", "本季")); + selectOperateDate.add(new SearchConditionOption("5", "本年")); + selectOperateDate.add(new SearchConditionOption("7", "上个月")); + selectOperateDate.add(new SearchConditionOption("9", "上一季")); + selectOperateDate.add(new SearchConditionOption("8", "上一年")); + selectOperateDate.add(new SearchConditionOption("6", "指定日期范围")); + + SearchConditionItem operateDate = OrganizationFormItemUtil.selectItem(user, selectOperateDate, 2, 16, 6, false, "操作时间", "operateDate"); + + // 操作者部门 + SearchConditionItem departmentId = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "操作者部门", "161", "departmentId", "deptBrowser"); + // 操作者分部 + SearchConditionItem companyId = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "操作者分部", "161", "companyId", "compBrowser"); + // 操作模块 + //List selectOperateModule = new ArrayList<>(); + // + //selectOperateDate.add(new SearchConditionOption("-1", "全部")); + //selectOperateDate.add(new SearchConditionOption("1", "等级方案")); + //selectOperateDate.add(new SearchConditionOption("2", "职等")); + //selectOperateDate.add(new SearchConditionOption("3", "职级")); + //selectOperateDate.add(new SearchConditionOption("4", "岗位序列")); + //selectOperateDate.add(new SearchConditionOption("5", "职务分类")); + //selectOperateDate.add(new SearchConditionOption("6", "职务管理")); + //selectOperateDate.add(new SearchConditionOption("7", "集团管理")); + //selectOperateDate.add(new SearchConditionOption("8", "分部管理")); + //selectOperateDate.add(new SearchConditionOption("9", "部门管理")); + //selectOperateDate.add(new SearchConditionOption("10", "岗位管理")); + //selectOperateDate.add(new SearchConditionOption("11", "人员管理")); + //selectOperateDate.add(new SearchConditionOption("12", "编制方案")); + //selectOperateDate.add(new SearchConditionOption("13", "编制上报")); + //selectOperateDate.add(new SearchConditionOption("99", "其他模块")); + //SearchConditionItem operateModule = OrganizationFormItemUtil.selectItem(user, selectOperateModule, 2, 16, 6, false, "操作模块", "operateModule"); + conditionItems.add(operatorId); + conditionItems.add(operateDate); + conditionItems.add(departmentId); + conditionItems.add(companyId); + //conditionItems.add(operateModule); + + addGroups.add(new SearchConditionGroup("高级搜索条件", true, conditionItems)); + apiDatas.put("conditions", addGroups); + return apiDatas; + } + + private String buildSqlWhere(LogViewSearchParam param) { + if (null == param) { + return ""; + } + String sqlWhere = " where delete_type = 0 "; + if(StringUtils.isNotBlank(param.getModuleType())){ + sqlWhere += " and operate_module = '" + param.getModuleType() + "'"; + } + if (null != param.getOperatorId()) { + sqlWhere += " and operator_id = '" + param.getOperatorId() + "'"; + } + if (null != param.getCompanyId()) { + sqlWhere += " and operator_id in (select id from hrmresource where subcompanyid1 = '" + param.getCompanyId() + "')"; + } + if (null != param.getDepartmentId()) { + sqlWhere += " and operator_id in (select id from hrmresource where departmentid = '" + param.getDepartmentId() + "')"; + } + if (StringUtils.isNotBlank(param.getOperateDate()) && !"-1".equals(param.getOperateDate())) { + if (!"6".equals(param.getOperateDate())) { + sqlWhere += " and create_time >= '" + TimeUtil.getDateByOption(param.getOperateDate() + "", "0") + "'"; + sqlWhere += " and create_time <= '" + TimeUtil.getDateByOption(param.getOperateDate() + "", "") + "'"; + } else { + if (StringUtils.isNotBlank(param.getStartDate())) { + sqlWhere += " and create_time >= '" + param.getStartDate() + "'"; + } + if (StringUtils.isNotBlank(param.getEndDate())) { + sqlWhere += " and create_time <= '" + param.getEndDate() + "'"; + } + } + } + //if (StringUtils.isNotBlank(param.getOperateModule()) && !"-1".equals(param.getOperateModule())) { + // sqlWhere += " and operate_module = '" + param.getOperateModule() + "'"; + //} + return sqlWhere; + } +} diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 88370b33..6db6a744 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -17,8 +17,6 @@ import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.department.bo.DepartmentBO; import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.employee.vo.EmployeeTableVO; -import com.engine.organization.entity.extend.bo.ExtendInfoBO; -import com.engine.organization.entity.extend.po.ExtendInfoPO; import com.engine.organization.entity.extend.po.ExtendTitlePO; import com.engine.organization.entity.job.bo.JobBO; import com.engine.organization.entity.job.dto.JobListDTO; @@ -215,12 +213,6 @@ public class JobServiceImpl extends Service implements JobService { SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "是否关键岗", "forbiddenTag"); // 工作地点 SearchConditionItem workplaceItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作地点", "workplace"); - // 工作概述 - // SearchConditionItem descriptionItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作概述", "description"); - // 任职职责 - //SearchConditionItem workDutyItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "任职职责", "workDuty"); - // 工作权限 - // SearchConditionItem workAuthorityItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作权限", "workAuthority"); // 禁用标记 List selectOptions = new ArrayList<>(); SearchConditionOption enableOption = new SearchConditionOption("true", "启用"); @@ -238,9 +230,6 @@ public class JobServiceImpl extends Service implements JobService { conditionItems.add(parentJobBrowserItem); conditionItems.add(isKeyItem); conditionItems.add(workplaceItem); - //conditionItems.add(descriptionItem); - //conditionItems.add(workDutyItem); - //conditionItems.add(workAuthorityItem); conditionItems.add(forbiddenTagItem); addGroups.add(new SearchConditionGroup("高级搜索条件", true, conditionItems)); @@ -301,23 +290,6 @@ public class JobServiceImpl extends Service implements JobService { // 处理明细表 List> extendTables = getExtService(user).getExtendTables(user, EXTEND_TYPE, Long.parseLong(groupId), JCL_ORG_JOBEXT_DT1, id, viewAttr, false); - Map tableMap = new HashMap<>(); - tableMap.put("hide", false); - tableMap.put("tabname", "职等职级"); - Map tabinfoMap = new HashMap<>(); - List infoPOList = new ArrayList<>(); - infoPOList.add(ExtendInfoPO.builder().fieldName("gradeId").fieldNameDesc("职级").controlType(3).isrequired(1).browserType("161").customValue("[\"browser\",{\"value\":\"161\",\"valueSpan\":\"自定义单选\",\"replaceDatas\":[{\"id\":\"161\",\"name\":\"自定义单选\"}]},{\"value\":\"gradeBrowser\",\"valueSpan\":\"职级浏览按钮\",\"replaceDatas\":[{\"showname\":\"gradeBrowser\",\"shownamespan\":\"gradeBrowser\",\"namespan\":\"职级浏览按钮\",\"name\":\"职级浏览按钮\",\"showtypespan\":\"列表式\",\"randomFieldIdspan\":\"\",\"showtype\":\"1\",\"randomFieldId\":\"gradeBrowser\",\"id\":\"gradeBrowser\"}]}]").build()); - infoPOList.add(ExtendInfoPO.builder().fieldName("levelId").fieldNameDesc("职等").controlType(3).isrequired(1).browserType("162").customValue("[\"browser\",{\"value\":\"162\",\"valueSpan\":\"自定义多选\",\"replaceDatas\":[{\"id\":\"162\",\"name\":\"自定义多选\"}]},{\"value\":\"LevelBrowser\",\"valueSpan\":\"职等浏览按钮\",\"replaceDatas\":[{\"showname\":\"LevelBrowser\",\"shownamespan\":\"LevelBrowser\",\"namespan\":\"职等浏览按钮\",\"name\":\"职等浏览按钮\",\"showtypespan\":\"列表式\",\"randomFieldIdspan\":\"\",\"showtype\":\"1\",\"randomFieldId\":\"LevelBrowser\",\"id\":\"LevelBrowser\"}]}]").build()); - tabinfoMap.put("columns", ExtendInfoBO.convertInfoListToTable(user, infoPOList, viewAttr, false)); - tabinfoMap.put("rownum", "rownum"); - // 去除null 元素 - List maps = getJobDTMapper().listJobDTByMainID(id); - maps.removeIf(Objects::isNull); - tabinfoMap.put("datas", maps); - tableMap.put("tabinfo", tabinfoMap); - // 添加明细表 - extendTables.add(0, tableMap); - resultMap.put("tables", extendTables); Map apiDatas = new HashMap<>(); diff --git a/src/com/engine/organization/transmethod/LogViewTransMethod.java b/src/com/engine/organization/transmethod/LogViewTransMethod.java new file mode 100644 index 00000000..7547592e --- /dev/null +++ b/src/com/engine/organization/transmethod/LogViewTransMethod.java @@ -0,0 +1,31 @@ +package com.engine.organization.transmethod; + +import com.engine.organization.enums.OperateTypeEnum; +import org.apache.commons.lang.StringUtils; + +/** + * @author:dxfeng + * @createTime: 2022/07/05 + * @version: 1.0 + */ +public class LogViewTransMethod { + + public String getOperateType(String operateType) { + if (StringUtils.isNotBlank(operateType)) { + switch (operateType) { + case "1": + operateType = OperateTypeEnum.ADD.getLabel(); + break; + case "2": + operateType = OperateTypeEnum.UPDATE.getLabel(); + break; + case "3": + operateType = OperateTypeEnum.DELETE.getLabel(); + break; + default: + break; + } + } + return ""; + } +} diff --git a/src/com/engine/organization/web/LogViewController.java b/src/com/engine/organization/web/LogViewController.java new file mode 100644 index 00000000..4339bc77 --- /dev/null +++ b/src/com/engine/organization/web/LogViewController.java @@ -0,0 +1,54 @@ +package com.engine.organization.web; + +import com.engine.common.util.ServiceUtil; +import com.engine.organization.entity.logview.param.LogViewSearchParam; +import com.engine.organization.util.response.ReturnResult; +import com.engine.organization.wrapper.LogViewWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; + +/** + * @author:dxfeng + * @createTime: 2022/07/05 + * @version: 1.0 + */ +public class LogViewController { + public LogViewWrapper getLogViewWrapper(User user) { + return ServiceUtil.getService(LogViewWrapper.class, user); + } + + + @GET + @Path("/listPage") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult listPage(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LogViewSearchParam params) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getLogViewWrapper(user).listPage(params)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + + @GET + @Path("/getSearchCondition") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getSearchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + return ReturnResult.successed(getLogViewWrapper(user).getSearchCondition()); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } +} diff --git a/src/com/engine/organization/wrapper/LogViewWrapper.java b/src/com/engine/organization/wrapper/LogViewWrapper.java new file mode 100644 index 00000000..388f85fa --- /dev/null +++ b/src/com/engine/organization/wrapper/LogViewWrapper.java @@ -0,0 +1,29 @@ +package com.engine.organization.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.organization.entity.logview.param.LogViewSearchParam; +import com.engine.organization.service.LogViewService; +import com.engine.organization.service.LogViewServiceImpl; +import com.engine.organization.util.OrganizationWrapper; +import weaver.hrm.User; + +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2022/07/05 + * @version: 1.0 + */ +public class LogViewWrapper extends OrganizationWrapper { + private LogViewService getLogViewService(User user) { + return ServiceUtil.getService(LogViewServiceImpl.class, user); + } + + public Map listPage(LogViewSearchParam params) { + return getLogViewService(user).listPage(params); + } + + public Map getSearchCondition() { + return getLogViewService(user).getSearchCondition(); + } +}