From 48c8c25408811a0b1bd344ca460dfb63f94a319c Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Mon, 6 Sep 2021 18:14:04 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/common/CommonApplication.java | 50 ++--- .../com/ccsens/common/api/TaskController.java | 200 +++++++++--------- .../com/ccsens/common/bean/dto/CTaskDto.java | 10 +- .../com/ccsens/common/config/BeanConfig.java | 44 ++-- .../ccsens/common/config/SpringConfig.java | 196 ++++++++--------- .../common/config/SwaggerConfigure.java | 112 +++++----- .../ccsens/common/persist/dao/LabelDao.java | 1 + .../common/persist/dao/ProTaskDetailDao.java | 7 + .../ccsens/common/service/ITaskService.java | 2 +- .../ccsens/common/service/TaskService.java | 83 +++++++- .../main/resources/mapper_dao/LabelDao.xml | 16 +- .../resources/mapper_dao/ProTaskDetailDao.xml | 34 +++ 12 files changed, 448 insertions(+), 307 deletions(-) diff --git a/common/src/main/java/com/ccsens/common/CommonApplication.java b/common/src/main/java/com/ccsens/common/CommonApplication.java index df396f80..bdca6998 100644 --- a/common/src/main/java/com/ccsens/common/CommonApplication.java +++ b/common/src/main/java/com/ccsens/common/CommonApplication.java @@ -1,25 +1,25 @@ -//package com.ccsens.common; -// -//import org.mybatis.spring.annotation.MapperScan; -//import org.springframework.boot.SpringApplication; -//import org.springframework.boot.autoconfigure.SpringBootApplication; -//import org.springframework.boot.web.servlet.ServletComponentScan; -//import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; -//import org.springframework.cloud.openfeign.EnableFeignClients; -//import org.springframework.scheduling.annotation.EnableAsync; -// -///** -// * @author ma -// */ -//@MapperScan(basePackages = {"com.ccsens.common.persist.*"}) -//@ServletComponentScan -//@EnableAsync -////开启断路器功能 -//@EnableCircuitBreaker -//@EnableFeignClients(basePackages = "com.ccsens.cloudutil.feign") -//@SpringBootApplication(scanBasePackages = "com.ccsens") -//public class CommonApplication { -// public static void main(String[] args) { -// SpringApplication.run(CommonApplication.class,args); -// } -//} +package com.ccsens.common; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.scheduling.annotation.EnableAsync; + +/** + * @author ma + */ +@MapperScan(basePackages = {"com.ccsens.common.persist.*"}) +@ServletComponentScan +@EnableAsync +//开启断路器功能 +@EnableCircuitBreaker +@EnableFeignClients(basePackages = "com.ccsens.cloudutil.feign") +@SpringBootApplication(scanBasePackages = "com.ccsens") +public class CommonApplication { + public static void main(String[] args) { + SpringApplication.run(CommonApplication.class,args); + } +} diff --git a/common/src/main/java/com/ccsens/common/api/TaskController.java b/common/src/main/java/com/ccsens/common/api/TaskController.java index d23ef86f..90d0941b 100644 --- a/common/src/main/java/com/ccsens/common/api/TaskController.java +++ b/common/src/main/java/com/ccsens/common/api/TaskController.java @@ -1,96 +1,104 @@ -//package com.ccsens.common.api; -// -//import com.ccsens.cloudutil.annotation.MustLogin; -//import com.ccsens.common.bean.dto.CClockingInDto; -//import com.ccsens.common.bean.dto.CTaskDto; -// -//import com.ccsens.common.bean.vo.CClockingInVo; -//import com.ccsens.common.bean.vo.CTaskVo; -// -//import com.ccsens.common.service.IClockingInService; -//import com.ccsens.common.service.ITaskService; -//import com.ccsens.util.JsonResponse; -//import com.ccsens.util.bean.dto.QueryDto; -//import io.swagger.annotations.Api; -//import io.swagger.annotations.ApiOperation; -//import io.swagger.annotations.ApiParam; -//import lombok.extern.slf4j.Slf4j; -//import org.springframework.validation.annotation.Validated; -//import org.springframework.web.bind.annotation.RequestBody; -//import org.springframework.web.bind.annotation.RequestMapping; -//import org.springframework.web.bind.annotation.RequestMethod; -//import org.springframework.web.bind.annotation.RestController; -// -//import javax.annotation.Resource; -//import java.util.List; -// -///** -// * @author 逗 -// */ -//@Api(tags = "DEBUG" , description = "DebugController | ") -//@RestController -//@RequestMapping("/task") -//@Slf4j -//public class TaskController { -// -// @Resource -// private ITaskService taskService; -// @Resource -// private IClockingInService clockingInService; -// -// @MustLogin -// @ApiOperation(value = "查找永久日常任务", notes = "") -// @RequestMapping(value = "/permanent", method = RequestMethod.POST, produces = {"application/json;charet=UTF-8"}) -// public JsonResponse> queryPermanentGlobalTask(@ApiParam @Validated @RequestBody QueryDto params) { -// log.info("查找永久日常任务开始{}",params); -// List permanentGlobalTaskList = taskService.queryPermanentGlobalTask(params.getParam(),params.getUserId()); -// log.info("查找永久日常任务结束{}",permanentGlobalTaskList); -// return JsonResponse.newInstance().ok(permanentGlobalTaskList); -// } -// -// @MustLogin -// @ApiOperation(value = "查找带时间的日常任务", notes = "") -// @RequestMapping(value = "/global", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) -// public JsonResponse> queryGlobalTask(@ApiParam @Validated @RequestBody QueryDto params) { -// log.info("查找带时间的日常任务开始{}",params); -// List globalTask = taskService.queryGlobalTask(params.getParam(),params.getUserId()); -// log.info("查找带时间的日常任务结束{}",globalTask); -// return JsonResponse.newInstance().ok(globalTask); -// } -// -// @MustLogin -// @ApiOperation(value = "查找带时间的定期任务", notes = "") -// @RequestMapping(value = "/regular", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) -// public JsonResponse> queryRegularTask(@ApiParam @Validated @RequestBody QueryDto params) { -// log.info("查找带时间的定期任务开始{}",params); -// List regularTask = taskService.queryRegularTask(params.getParam(), params.getUserId()); -// log.info("查找带时间的定期任务结束{}",regularTask); -// return JsonResponse.newInstance().ok(regularTask); -// } -// -// -// @MustLogin -// @ApiOperation(value = "查询考勤信息", notes = "") -// @RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) -// public JsonResponse> queryDeliverOfTask(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ -// List clockingInInfos = clockingInService.queryClockingIn(params.getParam(), params.getUserId()); -// return JsonResponse.newInstance().ok(clockingInInfos); -// } -// -// @MustLogin -// @ApiOperation(value = "打卡", notes = "") -// @RequestMapping(value = "/punch", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) -// public JsonResponse punchTheClock(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ -// clockingInService.punchTheClock(params.getParam(), params.getUserId()); -// return JsonResponse.newInstance().ok(); -// } -// -// @MustLogin -// @ApiOperation(value = "导出考勤excel", notes = "") -// @RequestMapping(value = "/export", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) -// public JsonResponse export(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ -// clockingInService.exportRecord(params.getParam(), params.getUserId()); -// return JsonResponse.newInstance().ok(); -// } -// -//} +package com.ccsens.common.api; + +import com.ccsens.cloudutil.annotation.MustLogin; +import com.ccsens.common.bean.dto.CClockingInDto; +import com.ccsens.common.bean.dto.CTaskDto; + +import com.ccsens.common.bean.vo.CClockingInVo; +import com.ccsens.common.bean.vo.CTaskVo; + +import com.ccsens.common.service.IClockingInService; +import com.ccsens.common.service.ITaskService; +import com.ccsens.util.JsonResponse; +import com.ccsens.util.bean.dto.QueryDto; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author 逗 + */ +@Api(tags = "DEBUG" , description = "DebugController | ") +@RestController +@RequestMapping("/task") +@Slf4j +public class TaskController { + + @Resource + private ITaskService taskService; + @Resource + private IClockingInService clockingInService; + + @MustLogin + @ApiOperation(value = "查找永久日常任务", notes = "") + @RequestMapping(value = "/permanent", method = RequestMethod.POST, produces = {"application/json;charet=UTF-8"}) + public JsonResponse> queryPermanentGlobalTask(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("查找永久日常任务开始{}",params); + List permanentGlobalTaskList = taskService.queryPermanentGlobalTask(params.getParam(),params.getUserId()); + log.info("查找永久日常任务结束{}",permanentGlobalTaskList); + return JsonResponse.newInstance().ok(permanentGlobalTaskList); + } + + @MustLogin + @ApiOperation(value = "查找带时间的日常任务", notes = "") + @RequestMapping(value = "/global", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryGlobalTask(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("查找带时间的日常任务开始{}",params); + List globalTask = taskService.queryGlobalTask(params.getParam(),params.getUserId()); + log.info("查找带时间的日常任务结束{}",globalTask); + return JsonResponse.newInstance().ok(globalTask); + } + + @MustLogin + @ApiOperation(value = "查找带时间的定期任务", notes = "") + @RequestMapping(value = "/regular", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryRegularTask(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("查找带时间的定期任务开始{}",params); + List regularTask = taskService.queryRegularTask(params.getParam(), params.getUserId()); + log.info("查找带时间的定期任务结束{}",regularTask); + return JsonResponse.newInstance().ok(regularTask); + } + + + @MustLogin + @ApiOperation(value = "查询考勤信息", notes = "") + @RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryDeliverOfTask(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + List clockingInInfos = clockingInService.queryClockingIn(params.getParam(), params.getUserId()); + return JsonResponse.newInstance().ok(clockingInInfos); + } + + @MustLogin + @ApiOperation(value = "打卡", notes = "") + @RequestMapping(value = "/punch", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse punchTheClock(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + clockingInService.punchTheClock(params.getParam(), params.getUserId()); + return JsonResponse.newInstance().ok(); + } + + @MustLogin + @ApiOperation(value = "导出考勤excel", notes = "") + @RequestMapping(value = "/export", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse export(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + clockingInService.exportRecord(params.getParam(), params.getUserId()); + return JsonResponse.newInstance().ok(); + } + + @ApiOperation(value = "添加任务", notes = "") + @RequestMapping(value = "/save", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> saveTask(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { + log.info("添加任务开始"); + List taskList = taskService.saveTask(params.getParam(), params.getUserId()); + log.info("添加任务结束{}",taskList); + return JsonResponse.newInstance().ok(taskList); + } +} diff --git a/common/src/main/java/com/ccsens/common/bean/dto/CTaskDto.java b/common/src/main/java/com/ccsens/common/bean/dto/CTaskDto.java index 85ff826d..8054ad75 100644 --- a/common/src/main/java/com/ccsens/common/bean/dto/CTaskDto.java +++ b/common/src/main/java/com/ccsens/common/bean/dto/CTaskDto.java @@ -87,21 +87,25 @@ public class CTaskDto { @NotBlank(message = "任务名不能为空") @ApiModelProperty("任务名") private String name; - @NotBlank(message = "开始时间不能为空") + @NotNull(message = "开始时间不能为空") @ApiModelProperty("开始时间") private Long startTime; - @NotBlank(message = "结束时间不能为空") + @NotNull(message = "结束时间不能为空") @ApiModelProperty("结束时间") private Long endTime; @ApiModelProperty("描述") private String description; - @NotBlank(message = "项目id不能为空") + @NotNull(message = "项目id不能为空") @ApiModelProperty("项目id") private Long projectId; @ApiModelProperty("父任务id") private Long parentTaskId; @ApiModelProperty("上道工序id(任务id)") private Long processTaskId; + @ApiModelProperty("上道工序类型(0开始前,1开始时,2开始后,3结束前,4结束时,5结束后)") + private Byte processType = 4; + @ApiModelProperty("关联的绝对时间") + private Long timeDifference = 0L; @ApiModelProperty("是否日常任务 0否 1是") private byte global; diff --git a/common/src/main/java/com/ccsens/common/config/BeanConfig.java b/common/src/main/java/com/ccsens/common/config/BeanConfig.java index f318ac91..871d08ea 100644 --- a/common/src/main/java/com/ccsens/common/config/BeanConfig.java +++ b/common/src/main/java/com/ccsens/common/config/BeanConfig.java @@ -1,22 +1,22 @@ -//package com.ccsens.common.config; -// -//import com.ccsens.common.intercept.MybatisInterceptor; -//import org.springframework.context.annotation.Bean; -//import org.springframework.context.annotation.Configuration; -// -///** -// * @description: -// * @author: wuHuiJuan -// * @create: 2019/12/11 10:59 -// */ -//@Configuration -//public class BeanConfig { -// /** -// * 注册拦截器 -// */ -// @Bean -// public MybatisInterceptor mybatisInterceptor() { -// MybatisInterceptor interceptor = new MybatisInterceptor(); -// return interceptor; -// } -//} +package com.ccsens.common.config; + +import com.ccsens.common.intercept.MybatisInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @description: + * @author: wuHuiJuan + * @create: 2019/12/11 10:59 + */ +@Configuration +public class BeanConfig { + /** + * 注册拦截器 + */ + @Bean + public MybatisInterceptor mybatisInterceptor() { + MybatisInterceptor interceptor = new MybatisInterceptor(); + return interceptor; + } +} diff --git a/common/src/main/java/com/ccsens/common/config/SpringConfig.java b/common/src/main/java/com/ccsens/common/config/SpringConfig.java index 148fe680..e20f45b9 100644 --- a/common/src/main/java/com/ccsens/common/config/SpringConfig.java +++ b/common/src/main/java/com/ccsens/common/config/SpringConfig.java @@ -1,98 +1,98 @@ -//package com.ccsens.common.config; -// -// -//import cn.hutool.core.lang.Snowflake; -//import cn.hutool.core.util.IdUtil; -//import com.ccsens.util.config.DruidProps; -//import com.fasterxml.jackson.databind.DeserializationFeature; -//import com.fasterxml.jackson.databind.ObjectMapper; -//import com.fasterxml.jackson.databind.module.SimpleModule; -//import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.beans.factory.annotation.Value; -//import org.springframework.context.annotation.Bean; -//import org.springframework.context.annotation.Configuration; -//import org.springframework.http.MediaType; -//import org.springframework.http.converter.HttpMessageConverter; -//import org.springframework.http.converter.StringHttpMessageConverter; -//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -//import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer; -//import org.springframework.web.servlet.config.annotation.InterceptorRegistry; -//import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; -// -//import javax.sql.DataSource; -//import java.nio.charset.Charset; -//import java.util.ArrayList; -//import java.util.List; -// -//@Configuration -////public class SpringConfig extends WebMvcConfigurationSupport { -//public class SpringConfig implements WebMvcConfigurer { -// @Autowired -// private DruidProps druidPropsUtil; -// @Value("${spring.snowflake.workerId}") -// private String workerId; -// @Value("${spring.snowflake.datacenterId}") -// private String datacenterId; -// -// /** -// * 配置Converter -// * @return -// */ -// @Bean -// public HttpMessageConverter responseStringConverter() { -// StringHttpMessageConverter converter = new StringHttpMessageConverter( -// Charset.forName("UTF-8")); -// return converter; -// } -// -// @Bean -// public HttpMessageConverter responseJsonConverter(){ -// MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); -// List mediaTypeList = new ArrayList<>(); -// mediaTypeList.add(MediaType.TEXT_HTML); -// mediaTypeList.add(MediaType.APPLICATION_JSON_UTF8); -// converter.setSupportedMediaTypes(mediaTypeList); -// -// ObjectMapper objectMapper = new ObjectMapper(); -// SimpleModule simpleModule = new SimpleModule(); -// simpleModule.addSerializer(Long.class, ToStringSerializer.instance); -// simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance); -// objectMapper.registerModule(simpleModule); -// objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); -// converter.setObjectMapper(objectMapper); -// -// return converter; -// } -// -// @Override -// public void configureMessageConverters(List> converters) { -// converters.add(responseStringConverter()); -// converters.add(responseJsonConverter()); -// } -// -// @Override -// public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { -// configurer.favorPathExtension(false); -// } -// -// /** -// * 配置数据源(单数据源) -// */ -// @Bean -// public DataSource dataSource(){ -// return druidPropsUtil.createDruidDataSource(); -// } -// -// @Bean -// public Snowflake snowflake(){ -// return IdUtil.createSnowflake(Long.valueOf(workerId),Long.valueOf(datacenterId)); -// } -// -// @Override -// public void addResourceHandlers(ResourceHandlerRegistry registry) { -// registry.addResourceHandler("/uploads/**") -// .addResourceLocations("file:///home/cloud/ht/uploads/"); -// } -//} \ No newline at end of file +package com.ccsens.common.config; + + +import cn.hutool.core.lang.Snowflake; +import cn.hutool.core.util.IdUtil; +import com.ccsens.util.config.DruidProps; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.MediaType; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.StringHttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +import javax.sql.DataSource; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.List; + +@Configuration +//public class SpringConfig extends WebMvcConfigurationSupport { +public class SpringConfig implements WebMvcConfigurer { + @Autowired + private DruidProps druidPropsUtil; + @Value("${spring.snowflake.workerId}") + private String workerId; + @Value("${spring.snowflake.datacenterId}") + private String datacenterId; + + /** + * 配置Converter + * @return + */ + @Bean + public HttpMessageConverter responseStringConverter() { + StringHttpMessageConverter converter = new StringHttpMessageConverter( + Charset.forName("UTF-8")); + return converter; + } + + @Bean + public HttpMessageConverter responseJsonConverter(){ + MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); + List mediaTypeList = new ArrayList<>(); + mediaTypeList.add(MediaType.TEXT_HTML); + mediaTypeList.add(MediaType.APPLICATION_JSON_UTF8); + converter.setSupportedMediaTypes(mediaTypeList); + + ObjectMapper objectMapper = new ObjectMapper(); + SimpleModule simpleModule = new SimpleModule(); + simpleModule.addSerializer(Long.class, ToStringSerializer.instance); + simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance); + objectMapper.registerModule(simpleModule); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + converter.setObjectMapper(objectMapper); + + return converter; + } + + @Override + public void configureMessageConverters(List> converters) { + converters.add(responseStringConverter()); + converters.add(responseJsonConverter()); + } + + @Override + public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { + configurer.favorPathExtension(false); + } + + /** + * 配置数据源(单数据源) + */ + @Bean + public DataSource dataSource(){ + return druidPropsUtil.createDruidDataSource(); + } + + @Bean + public Snowflake snowflake(){ + return IdUtil.createSnowflake(Long.valueOf(workerId),Long.valueOf(datacenterId)); + } + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/uploads/**") + .addResourceLocations("file:///home/cloud/ht/uploads/"); + } +} \ No newline at end of file diff --git a/common/src/main/java/com/ccsens/common/config/SwaggerConfigure.java b/common/src/main/java/com/ccsens/common/config/SwaggerConfigure.java index 8c11f139..fc938657 100644 --- a/common/src/main/java/com/ccsens/common/config/SwaggerConfigure.java +++ b/common/src/main/java/com/ccsens/common/config/SwaggerConfigure.java @@ -1,56 +1,56 @@ -//package com.ccsens.common.config; -// -//import com.ccsens.util.WebConstant; -//import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; -//import org.springframework.context.annotation.Bean; -//import org.springframework.context.annotation.Configuration; -//import springfox.documentation.builders.ParameterBuilder; -//import springfox.documentation.builders.RequestHandlerSelectors; -//import springfox.documentation.schema.ModelRef; -//import springfox.documentation.service.ApiInfo; -//import springfox.documentation.service.Parameter; -//import springfox.documentation.spi.DocumentationType; -//import springfox.documentation.spring.web.plugins.Docket; -//import springfox.documentation.swagger2.annotations.EnableSwagger2; -// -//import java.util.ArrayList; -//import java.util.List; -// -//@Configuration -//@EnableSwagger2 -//@ConditionalOnExpression("${swagger.enable}") -////public class SwaggerConfigure extends WebMvcConfigurationSupport { -//public class SwaggerConfigure /*implements WebMvcConfigurer*/ { -// @Bean -// public Docket customDocket() { -// // -// return new Docket(DocumentationType.SWAGGER_2) -// .apiInfo(apiInfo()) -// .select() -// .apis(RequestHandlerSelectors -// .basePackage("com.ccsens.common.api")) -// .build() -// .globalOperationParameters(setHeaderToken()); -// } -// -// private ApiInfo apiInfo() { -// return new ApiInfo("Swagger Tall-ptpro",//大标题 title -// "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",//小标题 -// "1.0.0",//版本 -// "http://swagger.io/terms/",//termsOfServiceUrl -// "zhangsan",//作者 -// "Apache 2.0",//链接显示文字 -// "http://www.apache.org/licenses/LICENSE-2.0.html"//网站链接 -// ); -// } -// -// private List setHeaderToken() { -// ParameterBuilder tokenPar = new ParameterBuilder(); -// List pars = new ArrayList<>(); -// tokenPar.name(WebConstant.HEADER_KEY_TOKEN).description("token") -// .defaultValue(WebConstant.HEADER_KEY_TOKEN_PREFIX) -// .modelRef(new ModelRef("string")).parameterType("header").required(false).build(); -// pars.add(tokenPar.build()); -// return pars; -// } -//} +package com.ccsens.common.config; + +import com.ccsens.util.WebConstant; +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ParameterBuilder; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.schema.ModelRef; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Parameter; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +import java.util.ArrayList; +import java.util.List; + +@Configuration +@EnableSwagger2 +@ConditionalOnExpression("${swagger.enable}") +//public class SwaggerConfigure extends WebMvcConfigurationSupport { +public class SwaggerConfigure /*implements WebMvcConfigurer*/ { + @Bean + public Docket customDocket() { + // + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors + .basePackage("com.ccsens.common.api")) + .build() + .globalOperationParameters(setHeaderToken()); + } + + private ApiInfo apiInfo() { + return new ApiInfo("Swagger Tall-ptpro",//大标题 title + "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",//小标题 + "1.0.0",//版本 + "http://swagger.io/terms/",//termsOfServiceUrl + "zhangsan",//作者 + "Apache 2.0",//链接显示文字 + "http://www.apache.org/licenses/LICENSE-2.0.html"//网站链接 + ); + } + + private List setHeaderToken() { + ParameterBuilder tokenPar = new ParameterBuilder(); + List pars = new ArrayList<>(); + tokenPar.name(WebConstant.HEADER_KEY_TOKEN).description("token") + .defaultValue(WebConstant.HEADER_KEY_TOKEN_PREFIX) + .modelRef(new ModelRef("string")).parameterType("header").required(false).build(); + pars.add(tokenPar.build()); + return pars; + } +} diff --git a/common/src/main/java/com/ccsens/common/persist/dao/LabelDao.java b/common/src/main/java/com/ccsens/common/persist/dao/LabelDao.java index 669b358b..4212e568 100644 --- a/common/src/main/java/com/ccsens/common/persist/dao/LabelDao.java +++ b/common/src/main/java/com/ccsens/common/persist/dao/LabelDao.java @@ -11,4 +11,5 @@ public interface LabelDao extends LabelMapper { String queryIsPm(Long labelId); + Long getLabelByTypeAndLevel(@Param("type")int type, @Param("level")int level); } diff --git a/common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java b/common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java index a5645134..029880dd 100644 --- a/common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java +++ b/common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java @@ -79,4 +79,11 @@ public interface ProTaskDetailDao extends ProTaskDetailMapper { * @return 子任务列表 */ List findSonTask(CTaskDto.FindSonTask param); + + /** + * 根据任务id查询任务信息 + * @param id 任务详情id + * @return 任务及相关信息 + */ + CTaskVo.QueryTask queryTaskById(@Param("taskDetailId") Long id); } diff --git a/common/src/main/java/com/ccsens/common/service/ITaskService.java b/common/src/main/java/com/ccsens/common/service/ITaskService.java index 4985cdc8..56bee70e 100644 --- a/common/src/main/java/com/ccsens/common/service/ITaskService.java +++ b/common/src/main/java/com/ccsens/common/service/ITaskService.java @@ -63,5 +63,5 @@ public interface ITaskService { * @param userId 用户id * @return 子项目列表 */ - CTaskVo.QueryTask saveTask(CTaskDto.SaveTask param,Long userId); + List saveTask(CTaskDto.SaveTask param,Long userId); } diff --git a/common/src/main/java/com/ccsens/common/service/TaskService.java b/common/src/main/java/com/ccsens/common/service/TaskService.java index 2e86271b..a0a549ad 100644 --- a/common/src/main/java/com/ccsens/common/service/TaskService.java +++ b/common/src/main/java/com/ccsens/common/service/TaskService.java @@ -19,6 +19,7 @@ import com.ccsens.util.bean.message.common.InMessage; import com.ccsens.util.bean.message.common.MessageConstant; import com.ccsens.util.config.RabbitMQConfig; import com.ccsens.util.exception.BaseException; +import com.sun.org.apache.bcel.internal.generic.NEW; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.AmqpTemplate; import org.springframework.stereotype.Service; @@ -60,6 +61,14 @@ public class TaskService implements ITaskService { private AmqpTemplate rabbitTemplate; @Resource private ProTaskProcessDao taskProcessDao; + @Resource + private LabelDao labelDao; + @Resource + private LabelBusinessDao labelBusinessDao; + @Resource + private ProParentTaskDao parentTaskDao; + @Resource + private ProRoleTaskDao roleTaskDao; /** * 判断当前用户的角色是否被设置不可见(是否有权限查看任务) @@ -595,17 +604,87 @@ public class TaskService implements ITaskService { } @Override - public CTaskVo.QueryTask saveTask(CTaskDto.SaveTask param, Long userId) { + public List saveTask(CTaskDto.SaveTask param, Long userId) { //任务详情 + ProTaskDetail proTaskDetail = new ProTaskDetail(); + proTaskDetail.setId(snowflake.nextId()); + proTaskDetail.setName(param.getName()); + proTaskDetail.setDescription(param.getDescription()); + taskDetailDao.insertSelective(proTaskDetail); //任务分解信息 + ProTaskSub taskSub = new ProTaskSub(); + taskSub.setId(snowflake.nextId()); + taskSub.setPlanStartTime(param.getStartTime()); + taskSub.setPlanEndTime(param.getEndTime()); + taskSub.setTaskDetailId(proTaskDetail.getId()); + taskSubDao.insertSelective(taskSub); //任务添加标签(天,普通/日常任务) + //天 + Long labelOfDay = labelDao.getLabelByTypeAndLevel(0, 4); + LabelBusiness labelDay = new LabelBusiness(); + labelDay.setId(snowflake.nextId()); + labelDay.setLabelId(labelOfDay); + labelDay.setBusinessId(proTaskDetail.getId()); + labelBusinessDao.insertSelective(labelDay); + //定期/日常任务 + LabelBusiness taskOfType = new LabelBusiness(); + taskOfType.setId(snowflake.nextId()); + taskOfType.setBusinessId(proTaskDetail.getId()); + if (1 == param.getGlobal()) { + Long everyday = labelDao.getLabelByTypeAndLevel(1, 2); + taskOfType.setLabelId(everyday); + }else{ + Long regular = labelDao.getLabelByTypeAndLevel(1, 3); + taskOfType.setLabelId(regular); + } + labelBusinessDao.insertSelective(taskOfType); //任务关系表(父任务)(项目id) + if (ObjectUtil.isNotNull(param.getParentTaskId())) { + ProParentTask proParentTask = new ProParentTask(); + proParentTask.setId(snowflake.nextId()); + proParentTask.setParentTaskDetailId(param.getParentTaskId()); + proParentTask.setTaskDetailId(proTaskDetail.getId()); + parentTaskDao.insertSelective(proParentTask); + } //角色任务关联表(负责人) + if (CollectionUtil.isNotEmpty(param.getRoleIdList())) { + for (Long roleId : param.getRoleIdList()) { + ProRoleTask roleTask = new ProRoleTask(); + roleTask.setId(snowflake.nextId()); + roleTask.setRoleId(roleId); + roleTask.setTaskId(proTaskDetail.getId()); + roleTask.setOperator(userId); + roleTaskDao.insertSelective(roleTask); + } + } //TODO 检查人(待定) //上下道工序 + if (ObjectUtil.isNotNull(param.getProcessTaskId())) { + ProTaskProcess taskProcess = new ProTaskProcess(); + taskProcess.setId(snowflake.nextId()); + taskProcess.setTaskDetailId(proTaskDetail.getId()); + taskProcess.setNextTaskDetailId(param.getProcessTaskId()); + taskProcess.setProcessType(param.getProcessType()); + taskProcess.setTimeDifference(param.getTimeDifference()); + taskProcessDao.insertSelective(taskProcess); + } //插件(添加一个任务名插件) + ProTaskPlugin proTaskPlugin = new ProTaskPlugin(); + proTaskPlugin.setId(snowflake.nextId()); + proTaskPlugin.setTaskDetailId(proTaskDetail.getId()); + proTaskPlugin.setPluginId(1L); + proTaskPlugin.setPlginRow(1); + proTaskPlugin.setPlginCol(1); + proTaskPlugin.setRowspan(1); + proTaskPlugin.setColspan(1); + taskPluginDao.insertSelective(proTaskPlugin); + //TODO 交付物(待定) - return null; + CTaskVo.QueryTask taskInfo = taskDetailDao.queryTaskById(proTaskDetail.getId()); + List taskList = new ArrayList<>(); + taskList.add(taskInfo); + queryPluginForTask(taskList); + return taskList; } } \ No newline at end of file diff --git a/common/src/main/resources/mapper_dao/LabelDao.xml b/common/src/main/resources/mapper_dao/LabelDao.xml index b941854d..ade2f1dd 100644 --- a/common/src/main/resources/mapper_dao/LabelDao.xml +++ b/common/src/main/resources/mapper_dao/LabelDao.xml @@ -10,10 +10,18 @@ and t_label.label_type_id=t_label_type.id - - - - + \ No newline at end of file diff --git a/common/src/main/resources/mapper_dao/ProTaskDetailDao.xml b/common/src/main/resources/mapper_dao/ProTaskDetailDao.xml index 99ee222e..f5732577 100644 --- a/common/src/main/resources/mapper_dao/ProTaskDetailDao.xml +++ b/common/src/main/resources/mapper_dao/ProTaskDetailDao.xml @@ -379,4 +379,38 @@ AND pt.parent_task_detail_id = #{detailId} + + \ No newline at end of file From f2b37c1110bff68589f1ee99d4a40c5d833280ad Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Tue, 7 Sep 2021 10:00:16 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E4=B8=8B=E7=9A=84=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/common/CommonApplication.java | 50 ++--- .../com/ccsens/common/api/TaskController.java | 208 +++++++++--------- .../com/ccsens/common/bean/dto/CTaskDto.java | 10 + .../com/ccsens/common/bean/vo/CTaskVo.java | 9 + .../com/ccsens/common/config/BeanConfig.java | 44 ++-- .../ccsens/common/config/SpringConfig.java | 196 ++++++++--------- .../common/config/SwaggerConfigure.java | 112 +++++----- .../common/persist/dao/ProTaskDetailDao.java | 7 + .../ccsens/common/service/ITaskService.java | 8 + .../ccsens/common/service/TaskService.java | 5 + .../resources/mapper_dao/ProTaskDetailDao.xml | 22 ++ 11 files changed, 366 insertions(+), 305 deletions(-) diff --git a/common/src/main/java/com/ccsens/common/CommonApplication.java b/common/src/main/java/com/ccsens/common/CommonApplication.java index bdca6998..df396f80 100644 --- a/common/src/main/java/com/ccsens/common/CommonApplication.java +++ b/common/src/main/java/com/ccsens/common/CommonApplication.java @@ -1,25 +1,25 @@ -package com.ccsens.common; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; -import org.springframework.cloud.openfeign.EnableFeignClients; -import org.springframework.scheduling.annotation.EnableAsync; - -/** - * @author ma - */ -@MapperScan(basePackages = {"com.ccsens.common.persist.*"}) -@ServletComponentScan -@EnableAsync -//开启断路器功能 -@EnableCircuitBreaker -@EnableFeignClients(basePackages = "com.ccsens.cloudutil.feign") -@SpringBootApplication(scanBasePackages = "com.ccsens") -public class CommonApplication { - public static void main(String[] args) { - SpringApplication.run(CommonApplication.class,args); - } -} +//package com.ccsens.common; +// +//import org.mybatis.spring.annotation.MapperScan; +//import org.springframework.boot.SpringApplication; +//import org.springframework.boot.autoconfigure.SpringBootApplication; +//import org.springframework.boot.web.servlet.ServletComponentScan; +//import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; +//import org.springframework.cloud.openfeign.EnableFeignClients; +//import org.springframework.scheduling.annotation.EnableAsync; +// +///** +// * @author ma +// */ +//@MapperScan(basePackages = {"com.ccsens.common.persist.*"}) +//@ServletComponentScan +//@EnableAsync +////开启断路器功能 +//@EnableCircuitBreaker +//@EnableFeignClients(basePackages = "com.ccsens.cloudutil.feign") +//@SpringBootApplication(scanBasePackages = "com.ccsens") +//public class CommonApplication { +// public static void main(String[] args) { +// SpringApplication.run(CommonApplication.class,args); +// } +//} diff --git a/common/src/main/java/com/ccsens/common/api/TaskController.java b/common/src/main/java/com/ccsens/common/api/TaskController.java index 90d0941b..2d8328a5 100644 --- a/common/src/main/java/com/ccsens/common/api/TaskController.java +++ b/common/src/main/java/com/ccsens/common/api/TaskController.java @@ -1,104 +1,104 @@ -package com.ccsens.common.api; - -import com.ccsens.cloudutil.annotation.MustLogin; -import com.ccsens.common.bean.dto.CClockingInDto; -import com.ccsens.common.bean.dto.CTaskDto; - -import com.ccsens.common.bean.vo.CClockingInVo; -import com.ccsens.common.bean.vo.CTaskVo; - -import com.ccsens.common.service.IClockingInService; -import com.ccsens.common.service.ITaskService; -import com.ccsens.util.JsonResponse; -import com.ccsens.util.bean.dto.QueryDto; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import lombok.extern.slf4j.Slf4j; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import java.util.List; - -/** - * @author 逗 - */ -@Api(tags = "DEBUG" , description = "DebugController | ") -@RestController -@RequestMapping("/task") -@Slf4j -public class TaskController { - - @Resource - private ITaskService taskService; - @Resource - private IClockingInService clockingInService; - - @MustLogin - @ApiOperation(value = "查找永久日常任务", notes = "") - @RequestMapping(value = "/permanent", method = RequestMethod.POST, produces = {"application/json;charet=UTF-8"}) - public JsonResponse> queryPermanentGlobalTask(@ApiParam @Validated @RequestBody QueryDto params) { - log.info("查找永久日常任务开始{}",params); - List permanentGlobalTaskList = taskService.queryPermanentGlobalTask(params.getParam(),params.getUserId()); - log.info("查找永久日常任务结束{}",permanentGlobalTaskList); - return JsonResponse.newInstance().ok(permanentGlobalTaskList); - } - - @MustLogin - @ApiOperation(value = "查找带时间的日常任务", notes = "") - @RequestMapping(value = "/global", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse> queryGlobalTask(@ApiParam @Validated @RequestBody QueryDto params) { - log.info("查找带时间的日常任务开始{}",params); - List globalTask = taskService.queryGlobalTask(params.getParam(),params.getUserId()); - log.info("查找带时间的日常任务结束{}",globalTask); - return JsonResponse.newInstance().ok(globalTask); - } - - @MustLogin - @ApiOperation(value = "查找带时间的定期任务", notes = "") - @RequestMapping(value = "/regular", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse> queryRegularTask(@ApiParam @Validated @RequestBody QueryDto params) { - log.info("查找带时间的定期任务开始{}",params); - List regularTask = taskService.queryRegularTask(params.getParam(), params.getUserId()); - log.info("查找带时间的定期任务结束{}",regularTask); - return JsonResponse.newInstance().ok(regularTask); - } - - - @MustLogin - @ApiOperation(value = "查询考勤信息", notes = "") - @RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse> queryDeliverOfTask(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ - List clockingInInfos = clockingInService.queryClockingIn(params.getParam(), params.getUserId()); - return JsonResponse.newInstance().ok(clockingInInfos); - } - - @MustLogin - @ApiOperation(value = "打卡", notes = "") - @RequestMapping(value = "/punch", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse punchTheClock(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ - clockingInService.punchTheClock(params.getParam(), params.getUserId()); - return JsonResponse.newInstance().ok(); - } - - @MustLogin - @ApiOperation(value = "导出考勤excel", notes = "") - @RequestMapping(value = "/export", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse export(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ - clockingInService.exportRecord(params.getParam(), params.getUserId()); - return JsonResponse.newInstance().ok(); - } - - @ApiOperation(value = "添加任务", notes = "") - @RequestMapping(value = "/save", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse> saveTask(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { - log.info("添加任务开始"); - List taskList = taskService.saveTask(params.getParam(), params.getUserId()); - log.info("添加任务结束{}",taskList); - return JsonResponse.newInstance().ok(taskList); - } -} +//package com.ccsens.common.api; +// +//import com.ccsens.cloudutil.annotation.MustLogin; +//import com.ccsens.common.bean.dto.CClockingInDto; +//import com.ccsens.common.bean.dto.CTaskDto; +// +//import com.ccsens.common.bean.vo.CClockingInVo; +//import com.ccsens.common.bean.vo.CTaskVo; +// +//import com.ccsens.common.service.IClockingInService; +//import com.ccsens.common.service.ITaskService; +//import com.ccsens.util.JsonResponse; +//import com.ccsens.util.bean.dto.QueryDto; +//import io.swagger.annotations.Api; +//import io.swagger.annotations.ApiOperation; +//import io.swagger.annotations.ApiParam; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.validation.annotation.Validated; +//import org.springframework.web.bind.annotation.RequestBody; +//import org.springframework.web.bind.annotation.RequestMapping; +//import org.springframework.web.bind.annotation.RequestMethod; +//import org.springframework.web.bind.annotation.RestController; +// +//import javax.annotation.Resource; +//import java.util.List; +// +///** +// * @author 逗 +// */ +//@Api(tags = "DEBUG" , description = "DebugController | ") +//@RestController +//@RequestMapping("/task") +//@Slf4j +//public class TaskController { +// +// @Resource +// private ITaskService taskService; +// @Resource +// private IClockingInService clockingInService; +// +// @MustLogin +// @ApiOperation(value = "查找永久日常任务", notes = "") +// @RequestMapping(value = "/permanent", method = RequestMethod.POST, produces = {"application/json;charet=UTF-8"}) +// public JsonResponse> queryPermanentGlobalTask(@ApiParam @Validated @RequestBody QueryDto params) { +// log.info("查找永久日常任务开始{}",params); +// List permanentGlobalTaskList = taskService.queryPermanentGlobalTask(params.getParam(),params.getUserId()); +// log.info("查找永久日常任务结束{}",permanentGlobalTaskList); +// return JsonResponse.newInstance().ok(permanentGlobalTaskList); +// } +// +// @MustLogin +// @ApiOperation(value = "查找带时间的日常任务", notes = "") +// @RequestMapping(value = "/global", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) +// public JsonResponse> queryGlobalTask(@ApiParam @Validated @RequestBody QueryDto params) { +// log.info("查找带时间的日常任务开始{}",params); +// List globalTask = taskService.queryGlobalTask(params.getParam(),params.getUserId()); +// log.info("查找带时间的日常任务结束{}",globalTask); +// return JsonResponse.newInstance().ok(globalTask); +// } +// +// @MustLogin +// @ApiOperation(value = "查找带时间的定期任务", notes = "") +// @RequestMapping(value = "/regular", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) +// public JsonResponse> queryRegularTask(@ApiParam @Validated @RequestBody QueryDto params) { +// log.info("查找带时间的定期任务开始{}",params); +// List regularTask = taskService.queryRegularTask(params.getParam(), params.getUserId()); +// log.info("查找带时间的定期任务结束{}",regularTask); +// return JsonResponse.newInstance().ok(regularTask); +// } +// +// +// @MustLogin +// @ApiOperation(value = "查询考勤信息", notes = "") +// @RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) +// public JsonResponse> queryDeliverOfTask(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ +// List clockingInInfos = clockingInService.queryClockingIn(params.getParam(), params.getUserId()); +// return JsonResponse.newInstance().ok(clockingInInfos); +// } +// +// @MustLogin +// @ApiOperation(value = "打卡", notes = "") +// @RequestMapping(value = "/punch", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) +// public JsonResponse punchTheClock(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ +// clockingInService.punchTheClock(params.getParam(), params.getUserId()); +// return JsonResponse.newInstance().ok(); +// } +// +// @MustLogin +// @ApiOperation(value = "导出考勤excel", notes = "") +// @RequestMapping(value = "/export", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) +// public JsonResponse export(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ +// clockingInService.exportRecord(params.getParam(), params.getUserId()); +// return JsonResponse.newInstance().ok(); +// } +// +// @ApiOperation(value = "添加任务", notes = "") +// @RequestMapping(value = "/save", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) +// public JsonResponse> saveTask(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { +// log.info("添加任务开始"); +// List taskList = taskService.saveTask(params.getParam(), params.getUserId()); +// log.info("添加任务结束{}",taskList); +// return JsonResponse.newInstance().ok(taskList); +// } +//} diff --git a/common/src/main/java/com/ccsens/common/bean/dto/CTaskDto.java b/common/src/main/java/com/ccsens/common/bean/dto/CTaskDto.java index 8054ad75..dbf3adab 100644 --- a/common/src/main/java/com/ccsens/common/bean/dto/CTaskDto.java +++ b/common/src/main/java/com/ccsens/common/bean/dto/CTaskDto.java @@ -117,4 +117,14 @@ public class CTaskDto { @ApiModelProperty("交付物名") private List deliverList; } + + @Data + @ApiModel("查询项目下的任务") + public static class QueryTaskOfProject{ + @NotNull(message = "项目id不能为空") + @ApiModelProperty("项目id") + private Long projectId; + @ApiModelProperty("项目名称") + private String name; + } } diff --git a/common/src/main/java/com/ccsens/common/bean/vo/CTaskVo.java b/common/src/main/java/com/ccsens/common/bean/vo/CTaskVo.java index 15091f75..ee1cc809 100644 --- a/common/src/main/java/com/ccsens/common/bean/vo/CTaskVo.java +++ b/common/src/main/java/com/ccsens/common/bean/vo/CTaskVo.java @@ -132,4 +132,13 @@ public class CTaskVo { } + + @Data + @ApiModel("项目下的任务") + public static class TaskOfProject { + @ApiModelProperty("任务详情id") + private Long detailId; + @ApiModelProperty("任务名称") + private String name; + } } diff --git a/common/src/main/java/com/ccsens/common/config/BeanConfig.java b/common/src/main/java/com/ccsens/common/config/BeanConfig.java index 871d08ea..f318ac91 100644 --- a/common/src/main/java/com/ccsens/common/config/BeanConfig.java +++ b/common/src/main/java/com/ccsens/common/config/BeanConfig.java @@ -1,22 +1,22 @@ -package com.ccsens.common.config; - -import com.ccsens.common.intercept.MybatisInterceptor; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * @description: - * @author: wuHuiJuan - * @create: 2019/12/11 10:59 - */ -@Configuration -public class BeanConfig { - /** - * 注册拦截器 - */ - @Bean - public MybatisInterceptor mybatisInterceptor() { - MybatisInterceptor interceptor = new MybatisInterceptor(); - return interceptor; - } -} +//package com.ccsens.common.config; +// +//import com.ccsens.common.intercept.MybatisInterceptor; +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.Configuration; +// +///** +// * @description: +// * @author: wuHuiJuan +// * @create: 2019/12/11 10:59 +// */ +//@Configuration +//public class BeanConfig { +// /** +// * 注册拦截器 +// */ +// @Bean +// public MybatisInterceptor mybatisInterceptor() { +// MybatisInterceptor interceptor = new MybatisInterceptor(); +// return interceptor; +// } +//} diff --git a/common/src/main/java/com/ccsens/common/config/SpringConfig.java b/common/src/main/java/com/ccsens/common/config/SpringConfig.java index e20f45b9..148fe680 100644 --- a/common/src/main/java/com/ccsens/common/config/SpringConfig.java +++ b/common/src/main/java/com/ccsens/common/config/SpringConfig.java @@ -1,98 +1,98 @@ -package com.ccsens.common.config; - - -import cn.hutool.core.lang.Snowflake; -import cn.hutool.core.util.IdUtil; -import com.ccsens.util.config.DruidProps; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.module.SimpleModule; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.MediaType; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.StringHttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer; -import org.springframework.web.servlet.config.annotation.InterceptorRegistry; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -import javax.sql.DataSource; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.List; - -@Configuration -//public class SpringConfig extends WebMvcConfigurationSupport { -public class SpringConfig implements WebMvcConfigurer { - @Autowired - private DruidProps druidPropsUtil; - @Value("${spring.snowflake.workerId}") - private String workerId; - @Value("${spring.snowflake.datacenterId}") - private String datacenterId; - - /** - * 配置Converter - * @return - */ - @Bean - public HttpMessageConverter responseStringConverter() { - StringHttpMessageConverter converter = new StringHttpMessageConverter( - Charset.forName("UTF-8")); - return converter; - } - - @Bean - public HttpMessageConverter responseJsonConverter(){ - MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); - List mediaTypeList = new ArrayList<>(); - mediaTypeList.add(MediaType.TEXT_HTML); - mediaTypeList.add(MediaType.APPLICATION_JSON_UTF8); - converter.setSupportedMediaTypes(mediaTypeList); - - ObjectMapper objectMapper = new ObjectMapper(); - SimpleModule simpleModule = new SimpleModule(); - simpleModule.addSerializer(Long.class, ToStringSerializer.instance); - simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance); - objectMapper.registerModule(simpleModule); - objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - converter.setObjectMapper(objectMapper); - - return converter; - } - - @Override - public void configureMessageConverters(List> converters) { - converters.add(responseStringConverter()); - converters.add(responseJsonConverter()); - } - - @Override - public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { - configurer.favorPathExtension(false); - } - - /** - * 配置数据源(单数据源) - */ - @Bean - public DataSource dataSource(){ - return druidPropsUtil.createDruidDataSource(); - } - - @Bean - public Snowflake snowflake(){ - return IdUtil.createSnowflake(Long.valueOf(workerId),Long.valueOf(datacenterId)); - } - - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - registry.addResourceHandler("/uploads/**") - .addResourceLocations("file:///home/cloud/ht/uploads/"); - } -} \ No newline at end of file +//package com.ccsens.common.config; +// +// +//import cn.hutool.core.lang.Snowflake; +//import cn.hutool.core.util.IdUtil; +//import com.ccsens.util.config.DruidProps; +//import com.fasterxml.jackson.databind.DeserializationFeature; +//import com.fasterxml.jackson.databind.ObjectMapper; +//import com.fasterxml.jackson.databind.module.SimpleModule; +//import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.http.MediaType; +//import org.springframework.http.converter.HttpMessageConverter; +//import org.springframework.http.converter.StringHttpMessageConverter; +//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +//import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer; +//import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +//import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +// +//import javax.sql.DataSource; +//import java.nio.charset.Charset; +//import java.util.ArrayList; +//import java.util.List; +// +//@Configuration +////public class SpringConfig extends WebMvcConfigurationSupport { +//public class SpringConfig implements WebMvcConfigurer { +// @Autowired +// private DruidProps druidPropsUtil; +// @Value("${spring.snowflake.workerId}") +// private String workerId; +// @Value("${spring.snowflake.datacenterId}") +// private String datacenterId; +// +// /** +// * 配置Converter +// * @return +// */ +// @Bean +// public HttpMessageConverter responseStringConverter() { +// StringHttpMessageConverter converter = new StringHttpMessageConverter( +// Charset.forName("UTF-8")); +// return converter; +// } +// +// @Bean +// public HttpMessageConverter responseJsonConverter(){ +// MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); +// List mediaTypeList = new ArrayList<>(); +// mediaTypeList.add(MediaType.TEXT_HTML); +// mediaTypeList.add(MediaType.APPLICATION_JSON_UTF8); +// converter.setSupportedMediaTypes(mediaTypeList); +// +// ObjectMapper objectMapper = new ObjectMapper(); +// SimpleModule simpleModule = new SimpleModule(); +// simpleModule.addSerializer(Long.class, ToStringSerializer.instance); +// simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance); +// objectMapper.registerModule(simpleModule); +// objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); +// converter.setObjectMapper(objectMapper); +// +// return converter; +// } +// +// @Override +// public void configureMessageConverters(List> converters) { +// converters.add(responseStringConverter()); +// converters.add(responseJsonConverter()); +// } +// +// @Override +// public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { +// configurer.favorPathExtension(false); +// } +// +// /** +// * 配置数据源(单数据源) +// */ +// @Bean +// public DataSource dataSource(){ +// return druidPropsUtil.createDruidDataSource(); +// } +// +// @Bean +// public Snowflake snowflake(){ +// return IdUtil.createSnowflake(Long.valueOf(workerId),Long.valueOf(datacenterId)); +// } +// +// @Override +// public void addResourceHandlers(ResourceHandlerRegistry registry) { +// registry.addResourceHandler("/uploads/**") +// .addResourceLocations("file:///home/cloud/ht/uploads/"); +// } +//} \ No newline at end of file diff --git a/common/src/main/java/com/ccsens/common/config/SwaggerConfigure.java b/common/src/main/java/com/ccsens/common/config/SwaggerConfigure.java index fc938657..8c11f139 100644 --- a/common/src/main/java/com/ccsens/common/config/SwaggerConfigure.java +++ b/common/src/main/java/com/ccsens/common/config/SwaggerConfigure.java @@ -1,56 +1,56 @@ -package com.ccsens.common.config; - -import com.ccsens.util.WebConstant; -import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import springfox.documentation.builders.ParameterBuilder; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.schema.ModelRef; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.service.Parameter; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; - -import java.util.ArrayList; -import java.util.List; - -@Configuration -@EnableSwagger2 -@ConditionalOnExpression("${swagger.enable}") -//public class SwaggerConfigure extends WebMvcConfigurationSupport { -public class SwaggerConfigure /*implements WebMvcConfigurer*/ { - @Bean - public Docket customDocket() { - // - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors - .basePackage("com.ccsens.common.api")) - .build() - .globalOperationParameters(setHeaderToken()); - } - - private ApiInfo apiInfo() { - return new ApiInfo("Swagger Tall-ptpro",//大标题 title - "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",//小标题 - "1.0.0",//版本 - "http://swagger.io/terms/",//termsOfServiceUrl - "zhangsan",//作者 - "Apache 2.0",//链接显示文字 - "http://www.apache.org/licenses/LICENSE-2.0.html"//网站链接 - ); - } - - private List setHeaderToken() { - ParameterBuilder tokenPar = new ParameterBuilder(); - List pars = new ArrayList<>(); - tokenPar.name(WebConstant.HEADER_KEY_TOKEN).description("token") - .defaultValue(WebConstant.HEADER_KEY_TOKEN_PREFIX) - .modelRef(new ModelRef("string")).parameterType("header").required(false).build(); - pars.add(tokenPar.build()); - return pars; - } -} +//package com.ccsens.common.config; +// +//import com.ccsens.util.WebConstant; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.Configuration; +//import springfox.documentation.builders.ParameterBuilder; +//import springfox.documentation.builders.RequestHandlerSelectors; +//import springfox.documentation.schema.ModelRef; +//import springfox.documentation.service.ApiInfo; +//import springfox.documentation.service.Parameter; +//import springfox.documentation.spi.DocumentationType; +//import springfox.documentation.spring.web.plugins.Docket; +//import springfox.documentation.swagger2.annotations.EnableSwagger2; +// +//import java.util.ArrayList; +//import java.util.List; +// +//@Configuration +//@EnableSwagger2 +//@ConditionalOnExpression("${swagger.enable}") +////public class SwaggerConfigure extends WebMvcConfigurationSupport { +//public class SwaggerConfigure /*implements WebMvcConfigurer*/ { +// @Bean +// public Docket customDocket() { +// // +// return new Docket(DocumentationType.SWAGGER_2) +// .apiInfo(apiInfo()) +// .select() +// .apis(RequestHandlerSelectors +// .basePackage("com.ccsens.common.api")) +// .build() +// .globalOperationParameters(setHeaderToken()); +// } +// +// private ApiInfo apiInfo() { +// return new ApiInfo("Swagger Tall-ptpro",//大标题 title +// "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",//小标题 +// "1.0.0",//版本 +// "http://swagger.io/terms/",//termsOfServiceUrl +// "zhangsan",//作者 +// "Apache 2.0",//链接显示文字 +// "http://www.apache.org/licenses/LICENSE-2.0.html"//网站链接 +// ); +// } +// +// private List setHeaderToken() { +// ParameterBuilder tokenPar = new ParameterBuilder(); +// List pars = new ArrayList<>(); +// tokenPar.name(WebConstant.HEADER_KEY_TOKEN).description("token") +// .defaultValue(WebConstant.HEADER_KEY_TOKEN_PREFIX) +// .modelRef(new ModelRef("string")).parameterType("header").required(false).build(); +// pars.add(tokenPar.build()); +// return pars; +// } +//} diff --git a/common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java b/common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java index 029880dd..a298c2db 100644 --- a/common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java +++ b/common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java @@ -86,4 +86,11 @@ public interface ProTaskDetailDao extends ProTaskDetailMapper { * @return 任务及相关信息 */ CTaskVo.QueryTask queryTaskById(@Param("taskDetailId") Long id); + + /** + * 查询项目下的所有任务 + * @param param 项目id 任务名称 + * @return 任务列表 + */ + List queryTaskOfProject(CTaskDto.QueryTaskOfProject param); } diff --git a/common/src/main/java/com/ccsens/common/service/ITaskService.java b/common/src/main/java/com/ccsens/common/service/ITaskService.java index 56bee70e..d557df1c 100644 --- a/common/src/main/java/com/ccsens/common/service/ITaskService.java +++ b/common/src/main/java/com/ccsens/common/service/ITaskService.java @@ -64,4 +64,12 @@ public interface ITaskService { * @return 子项目列表 */ List saveTask(CTaskDto.SaveTask param,Long userId); + + /** + * 查询项目下的任务 + * @param param 参数 + * @param userId 用户id + * @return 项目下的所有任务 + */ + List queryTaskOfProject(CTaskDto.QueryTaskOfProject param,Long userId); } diff --git a/common/src/main/java/com/ccsens/common/service/TaskService.java b/common/src/main/java/com/ccsens/common/service/TaskService.java index a0a549ad..3105dba7 100644 --- a/common/src/main/java/com/ccsens/common/service/TaskService.java +++ b/common/src/main/java/com/ccsens/common/service/TaskService.java @@ -687,4 +687,9 @@ public class TaskService implements ITaskService { return taskList; } + @Override + public List queryTaskOfProject(CTaskDto.QueryTaskOfProject param, Long userId) { + return taskDetailDao.queryTaskOfProject(param); + } + } \ No newline at end of file diff --git a/common/src/main/resources/mapper_dao/ProTaskDetailDao.xml b/common/src/main/resources/mapper_dao/ProTaskDetailDao.xml index f5732577..dd3d12df 100644 --- a/common/src/main/resources/mapper_dao/ProTaskDetailDao.xml +++ b/common/src/main/resources/mapper_dao/ProTaskDetailDao.xml @@ -413,4 +413,26 @@ AND td.id = #{taskDetailId} + + \ No newline at end of file From 8a976b2b7f609e25c0e8f0e2d0ee1fc5aa8be2bb Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Tue, 7 Sep 2021 14:58:26 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E4=B8=8B=E7=9A=84=E4=BB=BB=E5=8A=A1,=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E4=B8=8B=E7=9A=84=E6=88=90=E5=91=98,?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=A3=80=E6=9F=A5=E4=BA=BA=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/common/bean/dto/CRoleDto.java | 8 +++ .../ccsens/common/bean/po/ProRoleTask.java | 11 ++++ .../common/bean/po/ProRoleTaskExample.java | 60 +++++++++++++++++++ .../com/ccsens/common/bean/vo/CRoleVo.java | 9 +++ .../com/ccsens/common/bean/vo/CTaskVo.java | 12 ++++ .../ccsens/common/persist/dao/ProRoleDao.java | 8 +++ .../common/persist/dao/ProRoleTaskDao.java | 8 +++ .../common/service/IProRoleService.java | 8 +++ .../ccsens/common/service/ITaskService.java | 2 +- .../ccsens/common/service/ProRoleService.java | 8 +++ .../ccsens/common/service/TaskService.java | 33 +++++++++- .../main/resources/mapper_dao/ProRoleDao.xml | 13 ++++ .../resources/mapper_dao/ProRoleTaskDao.xml | 14 +++++ .../resources/mapper_dao/ProTaskDetailDao.xml | 3 +- .../mapper_raw/ProRoleTaskMapper.xml | 25 ++++++-- 15 files changed, 214 insertions(+), 8 deletions(-) diff --git a/common/src/main/java/com/ccsens/common/bean/dto/CRoleDto.java b/common/src/main/java/com/ccsens/common/bean/dto/CRoleDto.java index c012156a..fb4c684d 100644 --- a/common/src/main/java/com/ccsens/common/bean/dto/CRoleDto.java +++ b/common/src/main/java/com/ccsens/common/bean/dto/CRoleDto.java @@ -26,4 +26,12 @@ public class CRoleDto { @ApiModelProperty("角色id") private List roleIds; } + + @Data + @ApiModel("查询角色下的所有成员") + public static class QueryMemberOfRole { + @NotNull(message = "角色id不能为空") + @ApiModelProperty("角色id") + private Long roleId; + } } diff --git a/common/src/main/java/com/ccsens/common/bean/po/ProRoleTask.java b/common/src/main/java/com/ccsens/common/bean/po/ProRoleTask.java index f5216f31..ce465374 100644 --- a/common/src/main/java/com/ccsens/common/bean/po/ProRoleTask.java +++ b/common/src/main/java/com/ccsens/common/bean/po/ProRoleTask.java @@ -18,6 +18,8 @@ public class ProRoleTask implements Serializable { private Byte recStatus; + private Byte roleDuty; + private static final long serialVersionUID = 1L; public Long getId() { @@ -76,6 +78,14 @@ public class ProRoleTask implements Serializable { this.recStatus = recStatus; } + public Byte getRoleDuty() { + return roleDuty; + } + + public void setRoleDuty(Byte roleDuty) { + this.roleDuty = roleDuty; + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); @@ -89,6 +99,7 @@ public class ProRoleTask implements Serializable { sb.append(", createdAt=").append(createdAt); sb.append(", updatedAt=").append(updatedAt); sb.append(", recStatus=").append(recStatus); + sb.append(", roleDuty=").append(roleDuty); sb.append("]"); return sb.toString(); } diff --git a/common/src/main/java/com/ccsens/common/bean/po/ProRoleTaskExample.java b/common/src/main/java/com/ccsens/common/bean/po/ProRoleTaskExample.java index d89eb7ab..96018d9a 100644 --- a/common/src/main/java/com/ccsens/common/bean/po/ProRoleTaskExample.java +++ b/common/src/main/java/com/ccsens/common/bean/po/ProRoleTaskExample.java @@ -524,6 +524,66 @@ public class ProRoleTaskExample { addCriterion("rec_status not between", value1, value2, "recStatus"); return (Criteria) this; } + + public Criteria andRoleDutyIsNull() { + addCriterion("role_duty is null"); + return (Criteria) this; + } + + public Criteria andRoleDutyIsNotNull() { + addCriterion("role_duty is not null"); + return (Criteria) this; + } + + public Criteria andRoleDutyEqualTo(Byte value) { + addCriterion("role_duty =", value, "roleDuty"); + return (Criteria) this; + } + + public Criteria andRoleDutyNotEqualTo(Byte value) { + addCriterion("role_duty <>", value, "roleDuty"); + return (Criteria) this; + } + + public Criteria andRoleDutyGreaterThan(Byte value) { + addCriterion("role_duty >", value, "roleDuty"); + return (Criteria) this; + } + + public Criteria andRoleDutyGreaterThanOrEqualTo(Byte value) { + addCriterion("role_duty >=", value, "roleDuty"); + return (Criteria) this; + } + + public Criteria andRoleDutyLessThan(Byte value) { + addCriterion("role_duty <", value, "roleDuty"); + return (Criteria) this; + } + + public Criteria andRoleDutyLessThanOrEqualTo(Byte value) { + addCriterion("role_duty <=", value, "roleDuty"); + return (Criteria) this; + } + + public Criteria andRoleDutyIn(List values) { + addCriterion("role_duty in", values, "roleDuty"); + return (Criteria) this; + } + + public Criteria andRoleDutyNotIn(List values) { + addCriterion("role_duty not in", values, "roleDuty"); + return (Criteria) this; + } + + public Criteria andRoleDutyBetween(Byte value1, Byte value2) { + addCriterion("role_duty between", value1, value2, "roleDuty"); + return (Criteria) this; + } + + public Criteria andRoleDutyNotBetween(Byte value1, Byte value2) { + addCriterion("role_duty not between", value1, value2, "roleDuty"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/common/src/main/java/com/ccsens/common/bean/vo/CRoleVo.java b/common/src/main/java/com/ccsens/common/bean/vo/CRoleVo.java index cd2de9d7..2bffada3 100644 --- a/common/src/main/java/com/ccsens/common/bean/vo/CRoleVo.java +++ b/common/src/main/java/com/ccsens/common/bean/vo/CRoleVo.java @@ -60,4 +60,13 @@ public class CRoleVo { @ApiModelProperty("角色名称") private String name; } + + @Data + @ApiModel("角色下的成员信息") + public static class MemberOfRoleInfo { + @ApiModelProperty("成员id") + private Long id; + @ApiModelProperty("成员名称") + private String name; + } } diff --git a/common/src/main/java/com/ccsens/common/bean/vo/CTaskVo.java b/common/src/main/java/com/ccsens/common/bean/vo/CTaskVo.java index ee1cc809..b8bf30c3 100644 --- a/common/src/main/java/com/ccsens/common/bean/vo/CTaskVo.java +++ b/common/src/main/java/com/ccsens/common/bean/vo/CTaskVo.java @@ -40,10 +40,22 @@ public class CTaskVo { private Long skipTaskId; @ApiModelProperty("任务面板") private PanelInfo panel; + @ApiModelProperty("检查人列表") + private List checkerList; @ApiModelProperty("插件") private List> plugins; } + + @Data + @ApiModel("任务下的检查人") + public static class CheckerOfTask { + @ApiModelProperty("角色id") + private Long roleId; + @ApiModelProperty("名字") + private String name; + } + @Data @ApiModel("任务面板信息") public static class PanelInfo{ diff --git a/common/src/main/java/com/ccsens/common/persist/dao/ProRoleDao.java b/common/src/main/java/com/ccsens/common/persist/dao/ProRoleDao.java index e0ee8b77..3f4336ec 100644 --- a/common/src/main/java/com/ccsens/common/persist/dao/ProRoleDao.java +++ b/common/src/main/java/com/ccsens/common/persist/dao/ProRoleDao.java @@ -1,6 +1,7 @@ package com.ccsens.common.persist.dao; +import com.ccsens.common.bean.dto.CRoleDto; import com.ccsens.common.bean.po.ProRole; import com.ccsens.common.bean.po.ProTaskSub; import com.ccsens.common.bean.vo.CRoleVo; @@ -117,4 +118,11 @@ public interface ProRoleDao extends ProRoleMapper { * @return 角色id */ Long getRoleIdByTaskDetailId(@Param("taskDetailId") Long taskDetailId); + + /** + * 查询角色下的所有成员 + * @param param 角色id + * @return 成员信息列表 + */ + List queryMemberOfRole(CRoleDto.QueryMemberOfRole param); } diff --git a/common/src/main/java/com/ccsens/common/persist/dao/ProRoleTaskDao.java b/common/src/main/java/com/ccsens/common/persist/dao/ProRoleTaskDao.java index a15bf4d7..8b390948 100644 --- a/common/src/main/java/com/ccsens/common/persist/dao/ProRoleTaskDao.java +++ b/common/src/main/java/com/ccsens/common/persist/dao/ProRoleTaskDao.java @@ -1,6 +1,7 @@ package com.ccsens.common.persist.dao; import com.ccsens.common.bean.po.ProRoleTask; +import com.ccsens.common.bean.vo.CTaskVo; import com.ccsens.common.persist.mapper.ProRoleTaskMapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -33,4 +34,11 @@ public interface ProRoleTaskDao extends ProRoleTaskMapper { * @return 角色任务id */ List isMyTask(@Param("taskDetailId") Long taskDetailId,@Param("roleIdList") List userOfRoles); + + /** + * 根据任务id查找任务下的检查人 + * @param detailId 任务详情id + * @return 检查人列表 + */ + List queryCheckerOfTask(@Param("detailId") Long detailId); } diff --git a/common/src/main/java/com/ccsens/common/service/IProRoleService.java b/common/src/main/java/com/ccsens/common/service/IProRoleService.java index 5635438d..c30e3b72 100644 --- a/common/src/main/java/com/ccsens/common/service/IProRoleService.java +++ b/common/src/main/java/com/ccsens/common/service/IProRoleService.java @@ -18,4 +18,12 @@ public interface IProRoleService { * @return 所有角色 */ List queryAllRoleByProjectId(CRoleDto.QueryRoleById param, Long userId); + + /** + * 查询角色下的所有成员 + * @param param 角色id + * @param userId 用户id + * @return 成员信息 + */ + List queryMemberOfRole(CRoleDto.QueryMemberOfRole param, Long userId); } diff --git a/common/src/main/java/com/ccsens/common/service/ITaskService.java b/common/src/main/java/com/ccsens/common/service/ITaskService.java index d557df1c..8dddcb11 100644 --- a/common/src/main/java/com/ccsens/common/service/ITaskService.java +++ b/common/src/main/java/com/ccsens/common/service/ITaskService.java @@ -34,7 +34,7 @@ public interface ITaskService { List queryRegularTask(CTaskDto.QueryRegularTask param, Long userId); /** - * 根据时间和角色查找定期任务 + * 修改任务状态 * @param param 任务分解id和任务状态 * @param userId 用户id */ diff --git a/common/src/main/java/com/ccsens/common/service/ProRoleService.java b/common/src/main/java/com/ccsens/common/service/ProRoleService.java index 6ccd719b..b71f5da7 100644 --- a/common/src/main/java/com/ccsens/common/service/ProRoleService.java +++ b/common/src/main/java/com/ccsens/common/service/ProRoleService.java @@ -149,4 +149,12 @@ public class ProRoleService implements IProRoleService { roleList.add(role); return roleList; } + + + @Override + public List queryMemberOfRole(CRoleDto.QueryMemberOfRole param, Long userId) { + List memberOfRoleInfos = proRoleDao.queryMemberOfRole(param); + return null; + } + } diff --git a/common/src/main/java/com/ccsens/common/service/TaskService.java b/common/src/main/java/com/ccsens/common/service/TaskService.java index 3105dba7..caa8bf00 100644 --- a/common/src/main/java/com/ccsens/common/service/TaskService.java +++ b/common/src/main/java/com/ccsens/common/service/TaskService.java @@ -197,6 +197,19 @@ public class TaskService implements ITaskService { queryTask.setPlugins(plugins); } + /** + * 查询任务下的检查人 + * @param taskList 任务列表 + */ + public void queryCheckerOfTask(List taskList) { + if (CollectionUtil.isNotEmpty(taskList)) { + for (CTaskVo.QueryTask queryTask : taskList) { + List checkerList = roleTaskDao.queryCheckerOfTask(queryTask.getDetailId()); + queryTask.setCheckerList(checkerList); + } + } + } + @Override public List queryPermanentGlobalTask(CTaskDto.QueryPermanentGlobalTask param, Long userId) { //查找当前角色是否有查看权限 @@ -222,7 +235,8 @@ public class TaskService implements ITaskService { List permanentGlobalTask = taskDetailDao.queryPermanentGlobalTask(roleIds); //查找项目面板和插件信息 queryPluginForTask(permanentGlobalTask); - + //查询任务下的检查人 + queryCheckerOfTask(permanentGlobalTask); return permanentGlobalTask; } @@ -251,6 +265,8 @@ public class TaskService implements ITaskService { // } List globalTask = taskDetailDao.queryGlobalTask(roleIds, param.getTimeNode(), param.getTimeUnit()); queryPluginForTask(globalTask); + //查询任务下的检查人 + queryCheckerOfTask(globalTask); return globalTask; } @@ -307,9 +323,13 @@ public class TaskService implements ITaskService { } } queryPluginForTask(replenishTask); + //查询任务下的检查人 + queryCheckerOfTask(replenishTask); return replenishTask; } queryPluginForTask(regularTask); + //查询任务下的检查人 + queryCheckerOfTask(regularTask); return regularTask; } @@ -658,6 +678,17 @@ public class TaskService implements ITaskService { } } //TODO 检查人(待定) + if (CollectionUtil.isNotEmpty(param.getCheckerIdList())) { + for (Long checkId : param.getCheckerIdList()) { + ProRoleTask roleTask = new ProRoleTask(); + roleTask.setId(snowflake.nextId()); + roleTask.setRoleId(checkId); + roleTask.setTaskId(proTaskDetail.getId()); + roleTask.setRoleDuty((byte)1); + roleTask.setOperator(userId); + roleTaskDao.insertSelective(roleTask); + } + } //上下道工序 if (ObjectUtil.isNotNull(param.getProcessTaskId())) { ProTaskProcess taskProcess = new ProTaskProcess(); diff --git a/common/src/main/resources/mapper_dao/ProRoleDao.xml b/common/src/main/resources/mapper_dao/ProRoleDao.xml index 082d62ce..678c1680 100644 --- a/common/src/main/resources/mapper_dao/ProRoleDao.xml +++ b/common/src/main/resources/mapper_dao/ProRoleDao.xml @@ -229,4 +229,17 @@ AND task_id = #{taskDetailId} + + \ No newline at end of file diff --git a/common/src/main/resources/mapper_dao/ProRoleTaskDao.xml b/common/src/main/resources/mapper_dao/ProRoleTaskDao.xml index 46c180b4..4c477744 100644 --- a/common/src/main/resources/mapper_dao/ProRoleTaskDao.xml +++ b/common/src/main/resources/mapper_dao/ProRoleTaskDao.xml @@ -45,4 +45,18 @@ + + diff --git a/common/src/main/resources/mapper_dao/ProTaskDetailDao.xml b/common/src/main/resources/mapper_dao/ProTaskDetailDao.xml index dd3d12df..3e2568fb 100644 --- a/common/src/main/resources/mapper_dao/ProTaskDetailDao.xml +++ b/common/src/main/resources/mapper_dao/ProTaskDetailDao.xml @@ -411,11 +411,12 @@ WHERE td.rec_status = 0 AND ts.rec_status = 0 AND rt.rec_status = 0 AND td.id = #{taskDetailId} + LIMIT 1 select @@ -104,10 +105,10 @@ insert into t_pro_role_task (id, role_id, task_id, operator, created_at, updated_at, - rec_status) + rec_status, role_duty) values (#{id,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT}, #{taskId,jdbcType=BIGINT}, #{operator,jdbcType=BIGINT}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, - #{recStatus,jdbcType=TINYINT}) + #{recStatus,jdbcType=TINYINT}, #{roleDuty,jdbcType=TINYINT}) insert into t_pro_role_task @@ -133,6 +134,9 @@ rec_status, + + role_duty, + @@ -156,6 +160,9 @@ #{recStatus,jdbcType=TINYINT}, + + #{roleDuty,jdbcType=TINYINT}, +