Commit 5f9e352f by 张祺

增加操作日志记录入库的功能

parent 8539236e
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.keymobile</groupId> <groupId>com.keymobile</groupId>
<artifactId>indicators</artifactId> <artifactId>indicators</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<description>Indicators Demo</description> <description>Indicators Demo</description>
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version> <version>2.0.4.RELEASE</version>
<relativePath /> <relativePath/>
</parent> </parent>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<spring-cloud.version>Finchley.RELEASE</spring-cloud.version> <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
<akka.version>2.6.0-M4</akka.version> <akka.version>2.6.0-M4</akka.version>
<poi.version>4.1.1</poi.version> <poi.version>4.1.1</poi.version>
<easyExcel.version>2.1.1</easyExcel.version> <easyExcel.version>2.1.1</easyExcel.version>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId> <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId> <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId> <artifactId>spring-boot-starter-security</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId> <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.session</groupId> <groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId> <artifactId>spring-session-data-redis</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>redis.clients</groupId> <groupId>redis.clients</groupId>
<artifactId>jedis</artifactId> <artifactId>jedis</artifactId>
<version>2.9.0</version> <version>2.9.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId> <artifactId>commons-lang3</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.springfox</groupId> <groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId> <artifactId>springfox-swagger2</artifactId>
<version>2.5.0</version> <version>2.5.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.springfox</groupId> <groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId> <artifactId>springfox-swagger-ui</artifactId>
<version>2.5.0</version> <version>2.5.0</version>
</dependency> </dependency>
<!-- <dependency> <!-- <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.2</version> <version>1.18.2</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> --> </dependency> -->
<dependency> <dependency>
<groupId>commons-codec</groupId> <groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId> <artifactId>commons-codec</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId> <artifactId>spring-cloud-starter-config</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId> <artifactId>spring-cloud-starter-feign</artifactId>
<version>1.4.5.RELEASE</version> <version>1.4.5.RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId> <artifactId>spring-cloud-config-client</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
<!-- <version>8.0.15</version> --> <!-- <version>8.0.15</version> -->
</dependency> </dependency>
<!-- mXparser --> <!-- mXparser -->
<dependency> <dependency>
<groupId>org.mariuszgromada.math</groupId> <groupId>org.mariuszgromada.math</groupId>
<artifactId>MathParser.org-mXparser</artifactId> <artifactId>MathParser.org-mXparser</artifactId>
<version>4.2.0</version> <version>4.2.0</version>
</dependency> </dependency>
<!-- poi --> <!-- poi -->
<dependency> <dependency>
<groupId>org.apache.poi</groupId> <groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId> <artifactId>poi</artifactId>
<version>${poi.version}</version> <version>${poi.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.poi</groupId> <groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId> <artifactId>poi-ooxml</artifactId>
<version>${poi.version}</version> <version>${poi.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId> <artifactId>easyexcel</artifactId>
<version>${easyExcel.version}</version> <version>${easyExcel.version}</version>
</dependency> </dependency>
<!-- mybatis --> <!-- mybatis -->
<dependency> <dependency>
<groupId>org.mybatis.spring.boot</groupId> <groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId> <artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version> <version>2.1.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>tk.mybatis</groupId> <groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId> <artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.4</version> <version>2.0.4</version>
</dependency> </dependency>
<!-- lombok --> <!-- lombok -->
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<optional>true</optional> <optional>true</optional>
<version>1.16.18</version> <version>1.16.18</version>
</dependency> </dependency>
<!-- aviator --> <!-- aviator -->
<dependency> <dependency>
<groupId>com.googlecode.aviator</groupId> <groupId>com.googlecode.aviator</groupId>
<artifactId>aviator</artifactId> <artifactId>aviator</artifactId>
<version>4.2.10</version> <version>4.2.10</version>
</dependency> </dependency>
<!-- aviator --> <!-- aviator -->
<!-- akka --> <!-- akka -->
<dependency> <dependency>
<groupId>com.typesafe.akka</groupId> <groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor_2.12</artifactId> <artifactId>akka-actor_2.12</artifactId>
<version>${akka.version}</version> <version>${akka.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.typesafe.akka</groupId> <groupId>com.typesafe.akka</groupId>
<artifactId>akka-testkit_2.12</artifactId> <artifactId>akka-testkit_2.12</artifactId>
<version>${akka.version}</version> <version>${akka.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<!-- akka --> <!-- akka -->
<!-- gson --> <!-- gson -->
<dependency> <dependency>
<groupId>com.google.code.gson</groupId> <groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId> <artifactId>gson</artifactId>
</dependency> </dependency>
</dependencies> <dependency>
<dependencyManagement> <groupId>com.keymobile</groupId>
<dependencies> <artifactId>auth-common</artifactId>
<dependency> <scope>system</scope>
<groupId>org.springframework.cloud</groupId> <systemPath>${project.basedir}/lib/auth-common-1.0.2-SNAPSHOT.jar</systemPath>
<artifactId>spring-cloud-dependencies</artifactId> <version>1.0.2</version>
<version>${spring-cloud.version}</version> </dependency>
<type>pom</type> </dependencies>
<scope>import</scope> <dependencyManagement>
</dependency> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.security</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-security-bom</artifactId> <artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-security.version}</version> <version>${spring-cloud.version}</version>
<type>pom</type> <type>pom</type>
<scope>import</scope> <scope>import</scope>
</dependency> </dependency>
</dependencies> <dependency>
</dependencyManagement> <groupId>org.springframework.security</groupId>
<build> <artifactId>spring-security-bom</artifactId>
<resources> <version>${spring-security.version}</version>
<resource> <type>pom</type>
<directory>lib</directory> <scope>import</scope>
<targetPath>BOOT-INF/lib/</targetPath> </dependency>
<includes> </dependencies>
<include>**/*.jar</include> </dependencyManagement>
</includes> <build>
</resource> <resources>
<resource> <resource>
<directory>src/main/resources</directory> <directory>lib</directory>
<includes> <targetPath>BOOT-INF/lib/</targetPath>
<include>*.yml</include> <includes>
<include>**/*.xml</include> <include>**/*.jar</include>
</includes> </includes>
</resource> </resource>
</resources> <resource>
<directory>src/main/resources</directory>
<finalName>indicators</finalName> <includes>
<plugins> <include>*.yml</include>
<plugin> <include>**/*.xml</include>
<groupId>org.springframework.boot</groupId> </includes>
<artifactId>spring-boot-maven-plugin</artifactId> </resource>
</plugin> </resources>
</plugins>
</build> <finalName>indicators</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project> </project>
...@@ -49,7 +49,8 @@ public class TaskCtrl { ...@@ -49,7 +49,8 @@ public class TaskCtrl {
@ApiOperation("分发任务") @ApiOperation("分发任务")
@PostMapping("assign") @PostMapping("assign")
public Result assign(@RequestBody TaskAssginParam param) { public Result assign(@RequestBody TaskAssginParam param) {
return null; taskService.assignTask(param, SystemUserUtil.getCurrentUserId());
return Result.genOkResult();
} }
@ApiOperation("提交任务去审核") @ApiOperation("提交任务去审核")
......
...@@ -4,10 +4,12 @@ import com.keymobile.indicators.constant.Constants; ...@@ -4,10 +4,12 @@ import com.keymobile.indicators.constant.Constants;
import com.keymobile.indicators.model.entity.dataenter.TaskRule; import com.keymobile.indicators.model.entity.dataenter.TaskRule;
import com.keymobile.indicators.result.Result; import com.keymobile.indicators.result.Result;
import com.keymobile.indicators.service.dataenter.TaskRuleService; import com.keymobile.indicators.service.dataenter.TaskRuleService;
import com.keymobile.indicators.utils.LogManager;
import com.keymobile.indicators.utils.SystemUserUtil; import com.keymobile.indicators.utils.SystemUserUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -17,6 +19,7 @@ import java.util.Date; ...@@ -17,6 +19,7 @@ import java.util.Date;
@Api(tags={"数据填报-任务规则管理"}) @Api(tags={"数据填报-任务规则管理"})
@RestController @RestController
@RequestMapping(value = "/taskRule") @RequestMapping(value = "/taskRule")
@Slf4j
public class TaskRuleCtrl { public class TaskRuleCtrl {
@Autowired @Autowired
...@@ -41,6 +44,7 @@ public class TaskRuleCtrl { ...@@ -41,6 +44,7 @@ public class TaskRuleCtrl {
@GetMapping("deleteById") @GetMapping("deleteById")
public Result deleteById(@ApiParam(name = "id") @RequestParam("id")Integer id) { public Result deleteById(@ApiParam(name = "id") @RequestParam("id")Integer id) {
taskRuleService.delete(id); taskRuleService.delete(id);
LogManager.logInfo(Constants.LOG_CONTEXT_API, "删除id={}的任务规则", id);
return Result.genOkResult(); return Result.genOkResult();
} }
...@@ -61,8 +65,10 @@ public class TaskRuleCtrl { ...@@ -61,8 +65,10 @@ public class TaskRuleCtrl {
rule.setCreateTime(now); rule.setCreateTime(now);
rule.setCreator(currentUserId); rule.setCreator(currentUserId);
taskRuleService.createRule(rule); taskRuleService.createRule(rule);
LogManager.logInfo(Constants.LOG_CONTEXT_API, "创建了规则name={}", rule.getName());
} else { } else {
taskRuleService.updateRule(rule); taskRuleService.updateRule(rule);
LogManager.logInfo(Constants.LOG_CONTEXT_API, "修改id={}, name={} 的任务规则", rule.getId(), rule.getName());
} }
result = Result.genOkResult(); result = Result.genOkResult();
} }
......
...@@ -5,6 +5,11 @@ package com.keymobile.indicators.constant; ...@@ -5,6 +5,11 @@ package com.keymobile.indicators.constant;
*/ */
public class Constants { public class Constants {
/**
* 日志---操作日志
*/
public static final String LOG_CONTEXT_API = "indicator.operate";
/** collection Name */ /** collection Name */
/** collection Name */ /** collection Name */
...@@ -98,4 +103,6 @@ public class Constants { ...@@ -98,4 +103,6 @@ public class Constants {
*/ */
public static final int OBJ_TYPE_USER = 2; public static final int OBJ_TYPE_USER = 2;
} }
package com.keymobile.indicators.model.entity.dataenter; package com.keymobile.indicators.model.entity.dataenter;
import com.keymobile.indicators.model.entity.BaseModel; import com.keymobile.indicators.model.entity.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.persistence.Id; import javax.persistence.Id;
...@@ -11,6 +13,7 @@ import javax.persistence.Table; ...@@ -11,6 +13,7 @@ import javax.persistence.Table;
*/ */
@Data @Data
@Table(name="data_enter_task_record") @Table(name="data_enter_task_record")
@ApiModel("任务审批记录")
public class AuditRecord extends BaseModel { public class AuditRecord extends BaseModel {
@Id @Id
...@@ -29,10 +32,12 @@ public class AuditRecord extends BaseModel { ...@@ -29,10 +32,12 @@ public class AuditRecord extends BaseModel {
/** /**
* 操作记录类型 * 操作记录类型
*/ */
@ApiModelProperty("任务记录类型")
private String recordType; private String recordType;
/** /**
* 内容描述 * 内容描述
*/ */
@ApiModelProperty("内容描述")
private String description; private String description;
} }
...@@ -10,21 +10,21 @@ import java.util.List; ...@@ -10,21 +10,21 @@ import java.util.List;
@ApiModel("任务下发、分发参数") @ApiModel("任务下发、分发参数")
public class TaskAssginParam { public class TaskAssginParam {
@ApiModelProperty("分发的当前任务id") @ApiModelProperty(value = "分发的当前任务id", required = true)
private String taskId; private String taskId;
@ApiModelProperty("分发后自己是否也需要填写") @ApiModelProperty(value = "分发后自己是否也需要填写", required = true)
private Boolean needSelfEnter; private Boolean needSelfEnter;
@ApiModelProperty("分发填报后是否需要做汇总上报") @ApiModelProperty(value = "分发填报后是否需要做汇总上报", required = true)
private Boolean needSum; private Boolean needSum;
@ApiModelProperty("选择需要分发的指标") @ApiModelProperty(value = "选择需要分发的指标", required = true)
private List<String> indIds; private List<String> indIds;
@ApiModelProperty("把任务分发给对象id") @ApiModelProperty(value = "把任务分发给对象id", required = true)
private List<String> objIds; private List<String> objIds;
@ApiModelProperty("分发对象类型: 1 组织机构 2 人员 3 角色") @ApiModelProperty(value = "分发对象类型: 1 组织机构 2 人员 3 角色", required = true)
private int objType = 1; private int objType = 1;
} }
package com.keymobile.indicators.model.entity.dataenter; package com.keymobile.indicators.model.entity.dataenter;
import com.keymobile.indicators.model.entity.BaseModel; import com.keymobile.indicators.model.entity.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.Data; import lombok.Data;
import javax.persistence.*; import javax.persistence.*;
...@@ -12,23 +15,28 @@ import java.util.List; ...@@ -12,23 +15,28 @@ import java.util.List;
*/ */
@Data @Data
@Table(name="data_enter_task_rule") @Table(name="data_enter_task_rule")
@ApiModel("任务规则")
public class TaskRule extends BaseModel { public class TaskRule extends BaseModel {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id; private Integer id;
@ApiModelProperty("规则名称")
private String name; private String name;
@ApiModelProperty("规则描述")
private String description; private String description;
/** /**
* 任务规则所属类型:1、省 2、市 3、县 * 任务规则所属类型:1、省 2、市 3、县
*/ */
@ApiModelProperty("规则类型")
private Integer ruleType; private Integer ruleType;
/** /**
* 触发类型:1、手动 2、定时 * 触发类型:1、手动 2、定时
*/ */
@ApiModelProperty("规则触发类型:1 、手动 2、定时")
private Integer activeType; private Integer activeType;
/** /**
...@@ -41,17 +49,35 @@ public class TaskRule extends BaseModel { ...@@ -41,17 +49,35 @@ public class TaskRule extends BaseModel {
private String cronExp; private String cronExp;
/** /**
* 触发类型:1、每 * 触发类型:1、每月 2、每日
*/ */
private Integer expType; @ApiModelProperty("触发类型:1、月 2、日")
private Integer exeType;
@ApiModelProperty("触发类型为月的时候,触发月份(1-12月),多个以,分割")
private String exeMonth;
@ApiModelProperty("触发类型为月的时候,触发日, 1-31号")
private String exeDate;
@ApiModelProperty("触发时刻,例如 23:59:59")
private String exeTime;
/** /**
* 填报时限:天 * 填报时限:天
*/ */
@ApiModelProperty("填报时限,多少天内填完, > 0")
private Integer timeLimit; private Integer timeLimit;
@ApiModelProperty("审核时限,填完后多少天审核完, >= 0")
private Integer auditLimit;
@ApiModelProperty("上报时限,填完后多少天上报完, >= 0")
private Integer submitLimit;
/** /**
* 填报角色id,多个用,分割 * 填报角色id,多个用,分割
*/ */
@ApiModelProperty("填报对象,多个用,分割")
private String toRoleIds; private String toRoleIds;
/** /**
* 上次触发时间 * 上次触发时间
...@@ -59,7 +85,7 @@ public class TaskRule extends BaseModel { ...@@ -59,7 +85,7 @@ public class TaskRule extends BaseModel {
private Date lastActiveTime; private Date lastActiveTime;
/** /**
* 关联的数据项 * 关联的指标
*/ */
@Transient @Transient
private List<TaskRuleIndicator> indicators; private List<TaskRuleIndicator> indicators;
......
package com.keymobile.indicators.model.entity.dataenter; package com.keymobile.indicators.model.entity.dataenter;
import com.keymobile.indicators.model.entity.BaseModel; import com.keymobile.indicators.model.entity.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
...@@ -13,6 +15,7 @@ import javax.persistence.Table; ...@@ -13,6 +15,7 @@ import javax.persistence.Table;
*/ */
@Data @Data
@Table(name="data_enter_rule_ind") @Table(name="data_enter_rule_ind")
@ApiModel("填报规则关联指标")
public class TaskRuleIndicator extends BaseModel { public class TaskRuleIndicator extends BaseModel {
@Id @Id
...@@ -27,20 +30,19 @@ public class TaskRuleIndicator extends BaseModel { ...@@ -27,20 +30,19 @@ public class TaskRuleIndicator extends BaseModel {
/** /**
* 指标id * 指标id
*/ */
@ApiModelProperty("指标id")
private String indId; private String indId;
/** /**
* 指标名称 * 指标名称
*/ */
@ApiModelProperty("指标名称")
private String indName; private String indName;
/** /**
* 指标单位 * 指标单位
*/ */
@ApiModelProperty("指标单位")
private String indUnit; private String indUnit;
/**
* 指标数量来源:1 Excel导入 2 手工录入
*/
private Integer indSource;
} }
...@@ -10,8 +10,6 @@ import java.util.List; ...@@ -10,8 +10,6 @@ import java.util.List;
@Mapper @Mapper
public interface TaskRuleMapper extends BaseMapper<TaskRule> { public interface TaskRuleMapper extends BaseMapper<TaskRule> {
void createTaskRule(TaskRule rule);
/** /**
* 逻辑删除任务规则 * 逻辑删除任务规则
* @param id * @param id
......
...@@ -91,6 +91,13 @@ public interface TaskService { ...@@ -91,6 +91,13 @@ public interface TaskService {
List<TaskIndValue> findDefaultValues(String valueTime, List<String> indIds); List<TaskIndValue> findDefaultValues(String valueTime, List<String> indIds);
/** /**
* 分发任务
* @param param
* @param userId
*/
void assignTask(TaskAssginParam param, String userId);
/**
* 提交任务 * 提交任务
* @param taskId * @param taskId
* @param userId 提交人id * @param userId 提交人id
......
...@@ -125,6 +125,37 @@ public class TaskServiceImpl implements TaskService { ...@@ -125,6 +125,37 @@ public class TaskServiceImpl implements TaskService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void assignTask(TaskAssginParam param, String userId) {
Task parentTask = getById(param.getTaskId());
List<String> indIds = param.getIndIds();
List<String> objIds = param.getObjIds();
List<TaskIndicator> assignInds = new ArrayList<>();
for (TaskIndicator indicator : parentTask.getIndicators()) {
if (indIds.contains(indicator.getIndId())) {
assignInds.add(indicator);
}
}
int objType = param.getObjType();
List<Task> task = new ArrayList<>();
switch (objType) {
case 1:
//组织
break;
case 2:
//人员
for (String obj : objIds) {
}
break;
case 3:
//角色
break;
}
//TODO 保存任务和关联的指标信息
}
@Override
@Transactional(rollbackFor = Exception.class)
public void submitTask(String taskId, String userId) { public void submitTask(String taskId, String userId) {
Date now = new Date(); Date now = new Date();
Task task = taskMapper.selectByPrimaryKey(taskId); Task task = taskMapper.selectByPrimaryKey(taskId);
......
package com.keymobile.indicators.utils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
/**
* 日志操作工具.
* @author linxu
* @version 1.0
* @date 2020/3/25 11:00
*/
public class LogManager {
/**
* trace.
* @param context context
* @param e e
* @param message message
*/
public static void logTrace(String context, Throwable e, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isTraceEnabled()) {
logger.trace(message, e);
}
}
/**
* trace.
* @param context context
* @param message message
*/
public static void logTrace(String context, String message) {
logTrace(context, null, message);
}
/**
* debug.
* @param context context
* @param message message
*/
public static void logDebug(String context, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isDebugEnabled()) {
logger.debug(message);
}
}
/**
* log.
* @param context context
* @param message message
*/
public static void logInfo(String context, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isInfoEnabled()) {
logger.info(message);
}
}
/**
* info.
* @param context context
* @param message message
* @param objects objects
*/
public static void logInfo(String context, String message, Object... objects) {
Logger logger = LoggerFactory.getLogger(context);
String ip = getIp();
message = message + "; IP: " + ip;
message = StringUtils.replace(message, "{}", "%s");
message = String.format(message, objects);
if (logger.isInfoEnabled()) {
logger.info(message, getUser(), getSessionId(), ip);
}
}
/**
* warning.
* @param context context
* @param e e
* @param message message
*/
public static void logWarning(String context, Throwable e, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isWarnEnabled()) {
logger.warn(message, e);
}
}
/**
* warning.
* @param context context
* @param message message
*/
public static void logWarning(String context, String message) {
logWarning(context, null, message);
}
/**
* error.
* @param context context
* @param e e
* @param message message
*/
public static void logError(String context, Throwable e, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isErrorEnabled()) {
logger.error(message, e);
}
}
/**
* error.
* @param context context
* @param message message
*/
public static void logError(String context, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isErrorEnabled()) {
logger.error(message);
}
}
/**
* 获取sessionId.
* @return sessionId
*/
public static String getSessionId() {
RequestAttributes attrs = RequestContextHolder.getRequestAttributes();
if (attrs != null) {
return attrs.getSessionId();
}
return "NO_SESSION";
}
/**
* 获取IP.
* @return ip
*/
public static String getIp() {
RequestAttributes attrs = RequestContextHolder.getRequestAttributes();
if (attrs != null) {
HttpServletRequest request = ((ServletRequestAttributes)attrs).getRequest();
return IpUtil.getIpAddr(request);
}
return "";
}
/**
* 获取用户.
* @return user
*/
public static String getUser() {
return SystemUserUtil.getCurrentUser();
}
}
package com.keymobile.indicators.utils; package com.keymobile.indicators.utils;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
/** /**
* 获取当前登录用户信息 * 获取当前登录用户信息
*/ */
public class SystemUserUtil { public class SystemUserUtil {
/** /**
* 获取当前登录用户名和id
* @return
*/
public static String getCurrentUser() {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
String user = "NO_USER";
if (auth != null) {
user = auth.getName();
}
return user;
}
/**
* 获取当前登录用户id * 获取当前登录用户id
* @return * @return
*/ */
public static String getCurrentUserId() { public static String getCurrentUserId() {
//TODO 待实现 Authentication auth = SecurityContextHolder.getContext().getAuthentication();
return "1"; String userId = "NO_USER";
if (auth != null) {
Object obj = auth.getPrincipal();
if (obj != null) {
UserDetails userDetails = (UserDetails) obj;
String userNameWithIdAttached = userDetails.getUsername();
userId = userNameWithIdAttached.split(":")[1];
}
}
return userId;
}
/**
* 获取当前登录用户名
* @return
*/
public static String getCurrentUserName() {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
String userId = "NO_USER";
if (auth != null) {
Object obj = auth.getPrincipal();
if (obj != null) {
if (obj instanceof String) {
userId = obj.toString();
} else {
UserDetails userDetails = (UserDetails) obj;
String userNameWithIdAttached = userDetails.getUsername();
userId = userNameWithIdAttached.split(":")[0];
}
}
}
return userId;
} }
/** /**
......
...@@ -53,4 +53,9 @@ security: ...@@ -53,4 +53,9 @@ security:
mybatis: mybatis:
config-location: classpath:/mybatis/mybatis-config.xml config-location: classpath:/mybatis/mybatis-config.xml
mapper-locations: classpath:/mybatis/mapping/*.xml mapper-locations: classpath:/mybatis/mapping/*.xml
type-aliases-package: com.keymobile.indicators.model.entity type-aliases-package: com.keymobile.indicators.model.entity
\ No newline at end of file
logging:
level:
com.keymobile.indicators: debug
config: classpath:logback-custom.xml
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration >
<springProperty scope="context" name="spring.datasource.url" source="spring.datasource.url"/>
<springProperty scope="context" name="spring.datasource.username" source="spring.datasource.username"/>
<springProperty scope="context" name="spring.datasource.password" source="spring.datasource.password"/>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %X{user} %X{session} %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>
<appender name="db" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource
class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<url>${spring.datasource.url}</url>
<user>${spring.datasource.username}</user>
<password>${spring.datasource.password}</password>
</connectionSource>
</appender>
<logger name="indicator.operate">
<appender-ref ref="db" />
</logger>
<root level="INFO">
<appender-ref ref="stdout" />
</root>
</configuration>
...@@ -2,15 +2,6 @@ ...@@ -2,15 +2,6 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.keymobile.indicators.model.mapper.indicators.TaskRuleMapper"> <mapper namespace="com.keymobile.indicators.model.mapper.indicators.TaskRuleMapper">
<insert id="createTaskRule" useGeneratedKeys="true" keyProperty="id" parameterType="com.keymobile.indicators.model.entity.dataenter.TaskRule">
insert into data_enter_task_rule (id,name,description,rule_type,active_type,
sch_id,cron_exp,exp_type,time_limit,to_role_ids,last_active_time,
state,creator,updater,create_time,update_time)
values (#{id}, #{name},#{description}, #{ruleType}, #{activeType},
#{schId},#{cronExp}, #{expType}, #{timeLimit}, #{toRoleIds}, #{lastActiveTime},
#{state}, #{creator}, #{updater}, #{createTime}, #{updateTime}
)
</insert>
<delete id="deleteById" parameterType="java.lang.Integer"> <delete id="deleteById" parameterType="java.lang.Integer">
update data_enter_task_rule update data_enter_task_rule
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment