This commit is contained in:
lijiaqi 2022-10-27 11:40:45 +08:00
parent 552e5c1bc9
commit e42ba64163
119 changed files with 782 additions and 276 deletions

10
pom.xml
View File

@ -25,6 +25,16 @@
<artifactId>ydool-boot-module</artifactId> <artifactId>ydool-boot-module</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>

View File

@ -15,10 +15,7 @@ import com.ydool.boot.modules.rddb.entity.ReviewSuperviseComment;
import com.ydool.boot.modules.rddb.entity.dto.ReviewSuperviseDto; import com.ydool.boot.modules.rddb.entity.dto.ReviewSuperviseDto;
import com.ydool.boot.modules.rddb.entity.request.CommentRequest; import com.ydool.boot.modules.rddb.entity.request.CommentRequest;
import com.ydool.boot.modules.rddb.entity.request.ScoreRequest; import com.ydool.boot.modules.rddb.entity.request.ScoreRequest;
import com.ydool.boot.modules.rddb.entity.request.review_supervise.state.ReviewSuperviseCheckRequest; import com.ydool.boot.modules.rddb.entity.request.review_supervise.state.*;
import com.ydool.boot.modules.rddb.entity.request.review_supervise.state.ReviewSuperviseEvaluateRequest;
import com.ydool.boot.modules.rddb.entity.request.review_supervise.state.ReviewSuperviseSubjectRequest;
import com.ydool.boot.modules.rddb.entity.request.review_supervise.state.ReviewSuperviseTailRequest;
import com.ydool.boot.modules.rddb.service.ReviewSuperviseCommentService; import com.ydool.boot.modules.rddb.service.ReviewSuperviseCommentService;
import com.ydool.boot.modules.rddb.service.ReviewSuperviseService; import com.ydool.boot.modules.rddb.service.ReviewSuperviseService;
import com.ydool.boot.modules.rddb.wrapper.ReviewSuperviseWrapper; import com.ydool.boot.modules.rddb.wrapper.ReviewSuperviseWrapper;
@ -182,7 +179,25 @@ public class ApiReviewSuperviseController extends ApiBaseController {
render(Ret.ok().data(ReviewSuperviseWrapper.build().entityVO(reviewSupervise))); render(Ret.ok().data(ReviewSuperviseWrapper.build().entityVO(reviewSupervise)));
} }
@ApiOperation("上传审议意见跟踪报告和研究建议报告环节") @ApiOperation("常委会会议审议环节")
@PostMapping("state/meeting")
@ResponseBody
@DynamicResponseParameters(properties = {@DynamicParameter(name = "data", value = "审议督政", dataTypeClass = ReviewSuperviseDto.class)})
public void stateMeetingSave(@Validated ReviewMeetingCheckRequest request) {
ReviewSupervise reviewSupervise = reviewSuperviseService.stateMeetingSave(request, getApiUser());
render(Ret.ok().data(ReviewSuperviseWrapper.build().entityVO(reviewSupervise)));
}
@ApiOperation("审议意见讨论环节")
@PostMapping("state/review")
@ResponseBody
@DynamicResponseParameters(properties = {@DynamicParameter(name = "data", value = "审议督政", dataTypeClass = ReviewSuperviseDto.class)})
public void stateReviewSave(@Validated ReviewSuperviseReviewRequest request) {
ReviewSupervise reviewSupervise = reviewSuperviseService.stateReviewSave(request, getApiUser());
render(Ret.ok().data(ReviewSuperviseWrapper.build().entityVO(reviewSupervise)));
}
@ApiOperation("处理情况汇报环节")
@PostMapping("state/tail") @PostMapping("state/tail")
@ResponseBody @ResponseBody
@DynamicResponseParameters(properties = {@DynamicParameter(name = "data", value = "审议督政", dataTypeClass = ReviewSuperviseDto.class)}) @DynamicResponseParameters(properties = {@DynamicParameter(name = "data", value = "审议督政", dataTypeClass = ReviewSuperviseDto.class)})
@ -191,7 +206,7 @@ public class ApiReviewSuperviseController extends ApiBaseController {
render(Ret.ok().data(ReviewSuperviseWrapper.build().entityVO(reviewSupervise))); render(Ret.ok().data(ReviewSuperviseWrapper.build().entityVO(reviewSupervise)));
} }
@ApiOperation("满意度测评环节") @ApiOperation("处理情况报告环节")
@PostMapping("state/evaluate") @PostMapping("state/evaluate")
@ResponseBody @ResponseBody
@DynamicResponseParameters(properties = {@DynamicParameter(name = "data", value = "审议督政", dataTypeClass = ReviewSuperviseDto.class)}) @DynamicResponseParameters(properties = {@DynamicParameter(name = "data", value = "审议督政", dataTypeClass = ReviewSuperviseDto.class)})

View File

@ -25,13 +25,16 @@ public class ReviewSupervise extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
//当前环节 (上传主题subject:1 上传调研报考和审议意见check:2 部门接收办理dept:3 上传审议意见跟踪报告和研究建议报告tail:4 满意度测评evaluate:5 )
public static Integer STATE_SUBJECT = 1; public static Integer STATE_SUBJECT = 1;
public static Integer STATE_CHECK = 2; public static Integer STATE_CHECK = 2;
public static Integer STATE_DEPT = 3; public static Integer STATE_MEETING = 3;
public static Integer STATE_TAIL = 4;
public static Integer STATE_EVALUATE = 5; public static Integer STATE_REVIEW = 4;
public static Integer STATE_PUBLIC = 6; public static Integer STATE_DEPT = 5;
public static Integer STATE_TAIL = 6;
public static Integer STATE_EVALUATE = 7;
public static Integer STATE_PUBLIC = 8;
//类型dict_review_supervise_type 会议审查conference/视察调研view/执法检查law/其他活动other //类型dict_review_supervise_type 会议审查conference/视察调研view/执法检查law/其他活动other
public static String TYPE_CONFERENCE = "conference"; public static String TYPE_CONFERENCE = "conference";
@ -39,6 +42,12 @@ public class ReviewSupervise extends BaseEntity {
public static String TYPE_LAW = "law"; public static String TYPE_LAW = "law";
public static String TYPE_OTHER = "other"; public static String TYPE_OTHER = "other";
@ApiModelProperty(value = "讨论意见")
private String opinions;
@ApiModelProperty(value = "审议发言")
private String speak;
/** /**
* 创建者 * 创建者
*/ */
@ -139,6 +148,9 @@ public class ReviewSupervise extends BaseEntity {
@ApiModelProperty(value = "当前环节 1-6") @ApiModelProperty(value = "当前环节 1-6")
private Integer state; private Integer state;
@ApiModelProperty(value = "讨论意见")
private String discussionOpinions;
/** /**
* 测评对象 * 测评对象
*/ */

View File

@ -25,13 +25,14 @@ public class ReviewSuperviseAttachment extends BaseEntity {
//调研报告 //调研报告
public static String TYPE_SURVEY = "survey"; public static String TYPE_SURVEY = "survey";
//审议意见 public static String TYPE_PLAN = "plan";
public static String TYPE_REPORT = "report";
public static String TYPE_MATERIAL = "material";
public static String TYPE_STUDIE = "studie";
public static String TYPE_REVIEW = "review"; public static String TYPE_REVIEW = "review";
//审议跟踪报告
public static String TYPE_TAIL = "tail"; public static String TYPE_TAIL = "tail";
//审议研究报告
public static String TYPE_RESEARCH = "research"; public static String TYPE_RESEARCH = "research";
//满意度测评附件 public static String TYPE_HANDLING = "handling";
public static String TYPE_EVALUATE = "evaluate"; public static String TYPE_EVALUATE = "evaluate";
/** /**

View File

@ -15,15 +15,35 @@ import java.util.List;
*/ */
@Data @Data
public class ReviewSuperviseDto extends ReviewSupervise { public class ReviewSuperviseDto extends ReviewSupervise {
@ApiModelProperty(value = "调研报告")
@ApiModelProperty(value = "调研材料")
List<ReviewSuperviseAttachment> surveyAttachmentList; List<ReviewSuperviseAttachment> surveyAttachmentList;
@ApiModelProperty(value = "计划方案")
List<ReviewSuperviseAttachment> planAttachmentList;
@ApiModelProperty(value = "汇报材料")
List<ReviewSuperviseAttachment> reportAttachmentList;
@ApiModelProperty(value = "报告材料")
List<ReviewSuperviseAttachment> materialAttachmentList;
@ApiModelProperty(value = "调研报告")
List<ReviewSuperviseAttachment> studieAttachmentList;
@ApiModelProperty(value = "审议意见") @ApiModelProperty(value = "审议意见")
List<ReviewSuperviseAttachment> reviewAttachmentList; List<ReviewSuperviseAttachment> reviewAttachmentList;
@ApiModelProperty(value = "审议跟踪报告")
@ApiModelProperty(value = "处理情况")
List<ReviewSuperviseAttachment> tailAttachmentList; List<ReviewSuperviseAttachment> tailAttachmentList;
@ApiModelProperty(value = "审议研究报告") @ApiModelProperty(value = "跟踪调研")
List<ReviewSuperviseAttachment> researchAttachmentList; List<ReviewSuperviseAttachment> researchAttachmentList;
@ApiModelProperty(value = "满意度测评附件")
@ApiModelProperty(value = "处理情况")
List<ReviewSuperviseAttachment> handlingAttachmentList;
@ApiModelProperty(value = "跟踪报告")
List<ReviewSuperviseAttachment> evaluateAttachmentList; List<ReviewSuperviseAttachment> evaluateAttachmentList;
@ApiModelProperty(value = "测评人员") @ApiModelProperty(value = "测评人员")

View File

@ -0,0 +1,31 @@
package com.ydool.boot.modules.rddb.entity.request.review_supervise.state;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ReviewMeetingCheckRequest {
@ApiModelProperty(value = "id", required = true)
private String id;
@ApiModelProperty(value = "审议发言")
private String speak;
@ApiModelProperty(value = "报告材料附件名 英文逗号间隔")
String materialAttachmentName;
@ApiModelProperty(value = "报告材料附件路径 英文逗号间隔")
String materialAttachmentPath;
@ApiModelProperty(value = "报告材料附件关联会议id 英文逗号间隔")
String materialAttachmentConferenceId;
@ApiModelProperty(value = "报告材料附件关联会议名称 英文逗号间隔")
String materialAttachmentConferenceName;
@ApiModelProperty(value = "调研报告附件名 英文逗号间隔")
String studieAttachmentName;
@ApiModelProperty(value = "调研报告附件路径 英文逗号间隔")
String studieAttachmentPath;
@ApiModelProperty(value = "调研报告附件关联会议id 英文逗号间隔")
String studieAttachmentConferenceId;
@ApiModelProperty(value = "调研报告附件关联会议名称 英文逗号间隔")
String studieAttachmentConferenceName;
}

View File

@ -15,46 +15,39 @@ import java.time.LocalDateTime;
public class ReviewSuperviseCheckRequest { public class ReviewSuperviseCheckRequest {
@ApiModelProperty(value = "id", required = true) @ApiModelProperty(value = "id", required = true)
private String id; private String id;
/**
* 备注
*/
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String checkRemark; private String checkRemark;
/** @ApiModelProperty(value = "讨论意见")
* 调查上传时间 private String discussionOpinions;
*/
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@ApiModelProperty(value = "调查上传时间")
private LocalDateTime checkUploadAt;
/**
* 部门临时金网提供
*/
@ApiModelProperty(value = "部门:临时,金网提供")
private String checkDept;
@ApiModelProperty(value = "调研报告附件名 英文逗号间隔") @ApiModelProperty(value = "调研材料附件名 英文逗号间隔")
String surveyAttachmentName; String surveyAttachmentName;
@ApiModelProperty(value = "调研报告附件路径 英文逗号间隔") @ApiModelProperty(value = "调研材料附件路径 英文逗号间隔")
String surveyAttachmentPath; String surveyAttachmentPath;
@ApiModelProperty(value = "调研报告附件关联会议id 英文逗号间隔") @ApiModelProperty(value = "调研材料附件关联会议id 英文逗号间隔")
String surveyAttachmentConferenceId; String surveyAttachmentConferenceId;
@ApiModelProperty(value = "调研报告附件关联会议名称 英文逗号间隔") @ApiModelProperty(value = "调研材料附件关联会议名称 英文逗号间隔")
String surveyAttachmentConferenceName; String surveyAttachmentConferenceName;
@ApiModelProperty(value = "审议意见附件名 英文逗号间隔") @ApiModelProperty(value = "计划方案附件名 英文逗号间隔")
String reviewAttachmentName; String planAttachmentName;
@ApiModelProperty(value = "审议意见附件路径 英文逗号间隔") @ApiModelProperty(value = "计划方案附件路径 英文逗号间隔")
String reviewAttachmentPath; String planAttachmentPath;
@ApiModelProperty(value = "审议意见附件关联会议id 英文逗号间隔") @ApiModelProperty(value = "计划方案附件关联会议id 英文逗号间隔")
String reviewAttachmentConferenceId; String planAttachmentConferenceId;
@ApiModelProperty(value = "审议意见附件关联会议名称 英文逗号间隔") @ApiModelProperty(value = "计划方案附件关联会议名称 英文逗号间隔")
String reviewAttachmentConferenceName; String planAttachmentConferenceName;
@ApiModelProperty(value = "汇报材料附件名 英文逗号间隔")
String reportAttachmentName;
@ApiModelProperty(value = "汇报材料附件路径 英文逗号间隔")
String reportAttachmentPath;
@ApiModelProperty(value = "汇报材料附件关联会议id 英文逗号间隔")
String reportAttachmentConferenceId;
@ApiModelProperty(value = "汇报材料附件关联会议名称 英文逗号间隔")
String reportAttachmentConferenceName;
} }

View File

@ -20,10 +20,23 @@ public class ReviewSuperviseEvaluateRequest {
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String evaluateRemark; private String evaluateRemark;
@ApiModelProperty(value = "附件名 英文逗号间隔") @ApiModelProperty(value = "处理情况附件名 英文逗号间隔")
String reviewAttachmentName; String handlingAttachmentName;
@ApiModelProperty(value = "附件路径 英文逗号间隔") @ApiModelProperty(value = "处理情况附件路径 英文逗号间隔")
String reviewAttachmentPath; String handlingAttachmentPath;
@ApiModelProperty(value = "处理情况附件关联会议id 英文逗号间隔")
String handlingAttachmentConferenceId;
@ApiModelProperty(value = "处理情况附件关联会议名称 英文逗号间隔")
String handlingAttachmentConferenceName;
@ApiModelProperty(value = "跟踪报告附件名 英文逗号间隔")
String evaluateAttachmentName;
@ApiModelProperty(value = "跟踪报告附件路径 英文逗号间隔")
String evaluateAttachmentPath;
@ApiModelProperty(value = "跟踪报告附件关联会议id 英文逗号间隔")
String evaluateAttachmentConferenceId;
@ApiModelProperty(value = "跟踪报告附件关联会议名称 英文逗号间隔")
String evaluateAttachmentConferenceName;
@ApiModelProperty(value = "参会用户id 英文逗号间隔") @ApiModelProperty(value = "参会用户id 英文逗号间隔")
String evaluateUserIds; String evaluateUserIds;
@ -32,8 +45,5 @@ public class ReviewSuperviseEvaluateRequest {
@NotBlank(message = "请选择测评人员") @NotBlank(message = "请选择测评人员")
String obj; String obj;
@ApiModelProperty(value = "附件关联会议id 英文逗号间隔")
String reviewAttachmentConferenceId;
@ApiModelProperty(value = "附件关联会议名称 英文逗号间隔")
String reviewAttachmentConferenceName;
} }

View File

@ -0,0 +1,27 @@
package com.ydool.boot.modules.rddb.entity.request.review_supervise.state;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Data
public class ReviewSuperviseReviewRequest {
@ApiModelProperty(value = "id", required = true)
private String id;
@ApiModelProperty(value = "讨论意见")
private String opinions;
@ApiModelProperty(value = "审议意见附件名 英文逗号间隔")
String reviewAttachmentName;
@ApiModelProperty(value = "审议意见附件路径 英文逗号间隔")
String reviewAttachmentPath;
@ApiModelProperty(value = "审议意见附件关联会议id 英文逗号间隔")
String reviewAttachmentConferenceId;
@ApiModelProperty(value = "审议意见附件关联会议名称 英文逗号间隔")
String reviewAttachmentConferenceName;
}

View File

@ -16,34 +16,24 @@ public class ReviewSuperviseTailRequest {
@ApiModelProperty(value = "id", required = true) @ApiModelProperty(value = "id", required = true)
private String id; private String id;
/**
* 上传时间
*/
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@ApiModelProperty(value = "上传时间")
private LocalDateTime tailUploadAt;
@ApiModelProperty(value = "审议跟踪报告附件名 英文逗号间隔")
@ApiModelProperty(value = "处理情况附件名 英文逗号间隔")
String tailAttachmentName; String tailAttachmentName;
@ApiModelProperty(value = "审议跟踪报告附件路径 英文逗号间隔") @ApiModelProperty(value = "处理情况附件路径 英文逗号间隔")
String tailAttachmentPath; String tailAttachmentPath;
@ApiModelProperty(value = "审议跟踪报告附件关联会议id 英文逗号间隔") @ApiModelProperty(value = "处理情况附件关联会议id 英文逗号间隔")
String tailAttachmentConferenceId; String tailAttachmentConferenceId;
@ApiModelProperty(value = "审议跟踪报告附件关联会议名称 英文逗号间隔") @ApiModelProperty(value = "处理情况附件关联会议名称 英文逗号间隔")
String tailAttachmentConferenceName; String tailAttachmentConferenceName;
@ApiModelProperty(value = "审议研究报告附件名 英文逗号间隔") @ApiModelProperty(value = "跟踪调研附件名 英文逗号间隔")
String researchAttachmentName; String researchAttachmentName;
@ApiModelProperty(value = "审议研究报告附件路径 英文逗号间隔") @ApiModelProperty(value = "跟踪调研报告附件路径 英文逗号间隔")
String researchAttachmentPath; String researchAttachmentPath;
@ApiModelProperty(value = "审议研究报告附件关联会议id 英文逗号间隔") @ApiModelProperty(value = "跟踪调研报告附件关联会议id 英文逗号间隔")
String researchAttachmentConferenceId; String researchAttachmentConferenceId;
@ApiModelProperty(value = "审议研究报告附件关联会议名称 英文逗号间隔") @ApiModelProperty(value = "跟踪调研报告附件关联会议名称 英文逗号间隔")
String researchAttachmentConferenceName; String researchAttachmentConferenceName;
} }

View File

@ -19,10 +19,7 @@ import com.ydool.boot.modules.rddb.entity.ReviewSuperviseUser;
import com.ydool.boot.modules.rddb.entity.bo.ReviewSuperviseBo; import com.ydool.boot.modules.rddb.entity.bo.ReviewSuperviseBo;
import com.ydool.boot.modules.rddb.entity.request.CommentRequest; import com.ydool.boot.modules.rddb.entity.request.CommentRequest;
import com.ydool.boot.modules.rddb.entity.request.ScoreRequest; import com.ydool.boot.modules.rddb.entity.request.ScoreRequest;
import com.ydool.boot.modules.rddb.entity.request.review_supervise.state.ReviewSuperviseCheckRequest; import com.ydool.boot.modules.rddb.entity.request.review_supervise.state.*;
import com.ydool.boot.modules.rddb.entity.request.review_supervise.state.ReviewSuperviseEvaluateRequest;
import com.ydool.boot.modules.rddb.entity.request.review_supervise.state.ReviewSuperviseSubjectRequest;
import com.ydool.boot.modules.rddb.entity.request.review_supervise.state.ReviewSuperviseTailRequest;
import com.ydool.boot.modules.rddb.mapper.ReviewSuperviseMapper; import com.ydool.boot.modules.rddb.mapper.ReviewSuperviseMapper;
import com.ydool.boot.modules.rddb.wrapper.ReviewSuperviseWrapper; import com.ydool.boot.modules.rddb.wrapper.ReviewSuperviseWrapper;
import com.ydool.boot.modules.sys.entity.User; import com.ydool.boot.modules.sys.entity.User;
@ -156,11 +153,48 @@ public class ReviewSuperviseService extends BaseService<ReviewSuperviseMapper, R
throw new ResultException(Ret.fail("当前环节不能提交该信息")); throw new ResultException(Ret.fail("当前环节不能提交该信息"));
BeanUtil.copyProperties(request, reviewSupervise); BeanUtil.copyProperties(request, reviewSupervise);
//todo 金网部门环节先跳过 ReviewSupervise.STATE_DEPT //todo 金网部门环节先跳过 ReviewSupervise.STATE_DEPT
reviewSupervise.setState(ReviewSupervise.STATE_TAIL); reviewSupervise.setState(ReviewSupervise.STATE_MEETING);
reviewSupervise.setUpdatedId(loginUser.getId()); reviewSupervise.setUpdatedId(loginUser.getId());
saveOrUpdate(reviewSupervise); saveOrUpdate(reviewSupervise);
saveAttachment(reviewSupervise.getId(), request.getSurveyAttachmentName(), request.getSurveyAttachmentPath(), saveAttachment(reviewSupervise.getId(), request.getSurveyAttachmentName(), request.getSurveyAttachmentPath(),
loginUser, ReviewSuperviseAttachment.TYPE_SURVEY, request.getSurveyAttachmentConferenceId(), request.getSurveyAttachmentConferenceName()); loginUser, ReviewSuperviseAttachment.TYPE_SURVEY, request.getSurveyAttachmentConferenceId(), request.getSurveyAttachmentConferenceName());
saveAttachment(reviewSupervise.getId(), request.getReportAttachmentName(), request.getReportAttachmentPath(),
loginUser, ReviewSuperviseAttachment.TYPE_REPORT,request.getReportAttachmentConferenceId(), request.getReportAttachmentConferenceName());
saveAttachment(reviewSupervise.getId(), request.getPlanAttachmentName(), request.getPlanAttachmentPath(),
loginUser, ReviewSuperviseAttachment.TYPE_PLAN,request.getPlanAttachmentConferenceId(), request.getPlanAttachmentConferenceName());
return reviewSupervise;
}
public ReviewSupervise stateMeetingSave(ReviewMeetingCheckRequest request, User apiUser) {
ReviewSupervise reviewSupervise = getById(request.getId());
Assert.notNull(reviewSupervise, "未找到该记录");
if (ReviewSupervise.STATE_MEETING != reviewSupervise.getState())
throw new ResultException(Ret.fail("当前环节不能提交该信息"));
BeanUtil.copyProperties(request, reviewSupervise);
//todo 金网部门环节先跳过 ReviewSupervise.STATE_DEPT
reviewSupervise.setState(ReviewSupervise.STATE_REVIEW);
reviewSupervise.setUpdatedId(apiUser.getId());
saveOrUpdate(reviewSupervise);
saveAttachment(reviewSupervise.getId(), request.getMaterialAttachmentName(), request.getMaterialAttachmentPath(),
apiUser, ReviewSuperviseAttachment.TYPE_MATERIAL, request.getMaterialAttachmentConferenceId(),
request.getMaterialAttachmentConferenceName());
saveAttachment(reviewSupervise.getId(), request.getStudieAttachmentName(), request.getStudieAttachmentPath(),
apiUser, ReviewSuperviseAttachment.TYPE_STUDIE,request.getStudieAttachmentConferenceId(),
request.getStudieAttachmentConferenceName());
return reviewSupervise;
}
@Transactional
public ReviewSupervise stateReviewSave(ReviewSuperviseReviewRequest request, User loginUser) {
ReviewSupervise reviewSupervise = getById(request.getId());
Assert.notNull(reviewSupervise, "未找到该记录");
if (ReviewSupervise.STATE_REVIEW != reviewSupervise.getState())
throw new ResultException(Ret.fail("当前环节不能提交该信息"));
BeanUtil.copyProperties(request, reviewSupervise);
//todo 金网部门环节先跳过 ReviewSupervise.STATE_DEPT
reviewSupervise.setState(ReviewSupervise.STATE_TAIL);
reviewSupervise.setUpdatedId(loginUser.getId());
saveOrUpdate(reviewSupervise);
saveAttachment(reviewSupervise.getId(), request.getReviewAttachmentName(), request.getReviewAttachmentPath(), saveAttachment(reviewSupervise.getId(), request.getReviewAttachmentName(), request.getReviewAttachmentPath(),
loginUser, ReviewSuperviseAttachment.TYPE_REVIEW,request.getReviewAttachmentConferenceId(), request.getReviewAttachmentConferenceName()); loginUser, ReviewSuperviseAttachment.TYPE_REVIEW,request.getReviewAttachmentConferenceId(), request.getReviewAttachmentConferenceName());
return reviewSupervise; return reviewSupervise;
@ -191,11 +225,15 @@ public class ReviewSuperviseService extends BaseService<ReviewSuperviseMapper, R
if (ReviewSupervise.STATE_EVALUATE != reviewSupervise.getState()) if (ReviewSupervise.STATE_EVALUATE != reviewSupervise.getState())
throw new ResultException(Ret.fail("当前环节不能提交该信息")); throw new ResultException(Ret.fail("当前环节不能提交该信息"));
BeanUtil.copyProperties(request, reviewSupervise); BeanUtil.copyProperties(request, reviewSupervise);
reviewSupervise.setState(ReviewSupervise.STATE_PUBLIC);
reviewSupervise.setUpdatedId(loginUser.getId()); reviewSupervise.setUpdatedId(loginUser.getId());
saveOrUpdate(reviewSupervise); saveOrUpdate(reviewSupervise);
saveAttachment(reviewSupervise.getId(), request.getReviewAttachmentName(), request.getReviewAttachmentPath(), saveAttachment(reviewSupervise.getId(), request.getEvaluateAttachmentName(), request.getEvaluateAttachmentPath(),
loginUser, ReviewSuperviseAttachment.TYPE_EVALUATE,request.getReviewAttachmentConferenceId(), loginUser, ReviewSuperviseAttachment.TYPE_EVALUATE,request.getEvaluateAttachmentConferenceId(),
request.getReviewAttachmentConferenceName()); request.getEvaluateAttachmentConferenceName());
saveAttachment(reviewSupervise.getId(), request.getHandlingAttachmentName(), request.getHandlingAttachmentPath(),
loginUser, ReviewSuperviseAttachment.TYPE_HANDLING,request.getHandlingAttachmentConferenceId(),
request.getHandlingAttachmentConferenceName());
saveUser(reviewSupervise.getId(), request.getEvaluateUserIds(), loginUser, ReviewSuperviseUser.TYPE_EVALUATE); saveUser(reviewSupervise.getId(), request.getEvaluateUserIds(), loginUser, ReviewSuperviseUser.TYPE_EVALUATE);
return reviewSupervise; return reviewSupervise;
} }
@ -312,4 +350,5 @@ public class ReviewSuperviseService extends BaseService<ReviewSuperviseMapper, R
} }
} }
} }

View File

@ -36,10 +36,12 @@ public class ReviewSuperviseWrapper extends BaseWrapper<ReviewSupervise, ReviewS
ReviewSuperviseDto dto = BeanUtil.copyProperties(reviewSupervise, ReviewSuperviseDto.class); ReviewSuperviseDto dto = BeanUtil.copyProperties(reviewSupervise, ReviewSuperviseDto.class);
ReviewSuperviseAttachmentService reviewSuperviseAttachmentService = SpringUtils.getBean(ReviewSuperviseAttachmentService.class); ReviewSuperviseAttachmentService reviewSuperviseAttachmentService =
SpringUtils.getBean(ReviewSuperviseAttachmentService.class);
ReviewSuperviseUserService reviewSuperviseUserService = SpringUtils.getBean(ReviewSuperviseUserService.class); ReviewSuperviseUserService reviewSuperviseUserService = SpringUtils.getBean(ReviewSuperviseUserService.class);
List<ReviewSuperviseAttachment> surveyAttachmentList = reviewSuperviseAttachmentService.list(new LambdaQueryWrapper<ReviewSuperviseAttachment>() List<ReviewSuperviseAttachment> surveyAttachmentList =
reviewSuperviseAttachmentService.list(new LambdaQueryWrapper<ReviewSuperviseAttachment>()
.eq(ReviewSuperviseAttachment::getReviewSuperviseId, reviewSupervise.getId()) .eq(ReviewSuperviseAttachment::getReviewSuperviseId, reviewSupervise.getId())
.eq(ReviewSuperviseAttachment::getType, ReviewSuperviseAttachment.TYPE_SURVEY) .eq(ReviewSuperviseAttachment::getType, ReviewSuperviseAttachment.TYPE_SURVEY)
.orderByDesc(ReviewSuperviseAttachment::getCreatedAt)); .orderByDesc(ReviewSuperviseAttachment::getCreatedAt));
@ -56,7 +58,87 @@ public class ReviewSuperviseWrapper extends BaseWrapper<ReviewSupervise, ReviewS
} }
}); });
} }
List<ReviewSuperviseAttachment> reviewAttachmentList = reviewSuperviseAttachmentService.list(new LambdaQueryWrapper<ReviewSuperviseAttachment>()
List<ReviewSuperviseAttachment> planAttachmentList =
reviewSuperviseAttachmentService.list(new LambdaQueryWrapper<ReviewSuperviseAttachment>()
.eq(ReviewSuperviseAttachment::getReviewSuperviseId, reviewSupervise.getId())
.eq(ReviewSuperviseAttachment::getType, ReviewSuperviseAttachment.TYPE_PLAN)
.orderByDesc(ReviewSuperviseAttachment::getCreatedAt));
//获取关联会议名称
if (CollectionUtil.isNotEmpty(planAttachmentList)) {
planAttachmentList.stream().forEach(i -> {
if (StrUtil.isNotBlank(i.getConferenceId())) {
Conference conference = conferenceMapper.selectById(i.getConferenceId());
String conferenceName = "";
if (conference != null) {
conferenceName = conference.getTitle();
}
i.setConferenceName(conferenceName);
}
});
}
List<ReviewSuperviseAttachment> reportAttachmentList =
reviewSuperviseAttachmentService.list(new LambdaQueryWrapper<ReviewSuperviseAttachment>()
.eq(ReviewSuperviseAttachment::getReviewSuperviseId, reviewSupervise.getId())
.eq(ReviewSuperviseAttachment::getType, ReviewSuperviseAttachment.TYPE_REPORT)
.orderByDesc(ReviewSuperviseAttachment::getCreatedAt));
//获取关联会议名称
if (CollectionUtil.isNotEmpty(reportAttachmentList)) {
reportAttachmentList.stream().forEach(i -> {
if (StrUtil.isNotBlank(i.getConferenceId())) {
Conference conference = conferenceMapper.selectById(i.getConferenceId());
String conferenceName = "";
if (conference != null) {
conferenceName = conference.getTitle();
}
i.setConferenceName(conferenceName);
}
});
}
List<ReviewSuperviseAttachment> materialAttachmentList =
reviewSuperviseAttachmentService.list(new LambdaQueryWrapper<ReviewSuperviseAttachment>()
.eq(ReviewSuperviseAttachment::getReviewSuperviseId, reviewSupervise.getId())
.eq(ReviewSuperviseAttachment::getType, ReviewSuperviseAttachment.TYPE_MATERIAL)
.orderByDesc(ReviewSuperviseAttachment::getCreatedAt));
//获取关联会议名称
if (CollectionUtil.isNotEmpty(materialAttachmentList)) {
materialAttachmentList.stream().forEach(i -> {
if (StrUtil.isNotBlank(i.getConferenceId())) {
Conference conference = conferenceMapper.selectById(i.getConferenceId());
String conferenceName = "";
if (conference != null) {
conferenceName = conference.getTitle();
}
i.setConferenceName(conferenceName);
}
});
}
List<ReviewSuperviseAttachment> studieAttachmentList =
reviewSuperviseAttachmentService.list(new LambdaQueryWrapper<ReviewSuperviseAttachment>()
.eq(ReviewSuperviseAttachment::getReviewSuperviseId, reviewSupervise.getId())
.eq(ReviewSuperviseAttachment::getType, ReviewSuperviseAttachment.TYPE_STUDIE)
.orderByDesc(ReviewSuperviseAttachment::getCreatedAt));
//获取关联会议名称
if (CollectionUtil.isNotEmpty(studieAttachmentList)) {
studieAttachmentList.stream().forEach(i -> {
if (StrUtil.isNotBlank(i.getConferenceId())) {
Conference conference = conferenceMapper.selectById(i.getConferenceId());
String conferenceName = "";
if (conference != null) {
conferenceName = conference.getTitle();
}
i.setConferenceName(conferenceName);
}
});
}
List<ReviewSuperviseAttachment> reviewAttachmentList =
reviewSuperviseAttachmentService.list(new LambdaQueryWrapper<ReviewSuperviseAttachment>()
.eq(ReviewSuperviseAttachment::getReviewSuperviseId, reviewSupervise.getId()) .eq(ReviewSuperviseAttachment::getReviewSuperviseId, reviewSupervise.getId())
.eq(ReviewSuperviseAttachment::getType, ReviewSuperviseAttachment.TYPE_REVIEW) .eq(ReviewSuperviseAttachment::getType, ReviewSuperviseAttachment.TYPE_REVIEW)
.orderByDesc(ReviewSuperviseAttachment::getCreatedAt)); .orderByDesc(ReviewSuperviseAttachment::getCreatedAt));
@ -73,7 +155,8 @@ public class ReviewSuperviseWrapper extends BaseWrapper<ReviewSupervise, ReviewS
} }
}); });
} }
List<ReviewSuperviseAttachment> tailAttachmentList = reviewSuperviseAttachmentService.list(new LambdaQueryWrapper<ReviewSuperviseAttachment>() List<ReviewSuperviseAttachment> tailAttachmentList =
reviewSuperviseAttachmentService.list(new LambdaQueryWrapper<ReviewSuperviseAttachment>()
.eq(ReviewSuperviseAttachment::getReviewSuperviseId, reviewSupervise.getId()) .eq(ReviewSuperviseAttachment::getReviewSuperviseId, reviewSupervise.getId())
.eq(ReviewSuperviseAttachment::getType, ReviewSuperviseAttachment.TYPE_TAIL) .eq(ReviewSuperviseAttachment::getType, ReviewSuperviseAttachment.TYPE_TAIL)
.orderByDesc(ReviewSuperviseAttachment::getCreatedAt)); .orderByDesc(ReviewSuperviseAttachment::getCreatedAt));
@ -90,7 +173,8 @@ public class ReviewSuperviseWrapper extends BaseWrapper<ReviewSupervise, ReviewS
} }
}); });
} }
List<ReviewSuperviseAttachment> researchAttachmentList = reviewSuperviseAttachmentService.list(new LambdaQueryWrapper<ReviewSuperviseAttachment>() List<ReviewSuperviseAttachment> researchAttachmentList =
reviewSuperviseAttachmentService.list(new LambdaQueryWrapper<ReviewSuperviseAttachment>()
.eq(ReviewSuperviseAttachment::getReviewSuperviseId, reviewSupervise.getId()) .eq(ReviewSuperviseAttachment::getReviewSuperviseId, reviewSupervise.getId())
.eq(ReviewSuperviseAttachment::getType, ReviewSuperviseAttachment.TYPE_RESEARCH) .eq(ReviewSuperviseAttachment::getType, ReviewSuperviseAttachment.TYPE_RESEARCH)
.orderByDesc(ReviewSuperviseAttachment::getCreatedAt)); .orderByDesc(ReviewSuperviseAttachment::getCreatedAt));
@ -107,7 +191,28 @@ public class ReviewSuperviseWrapper extends BaseWrapper<ReviewSupervise, ReviewS
} }
}); });
} }
List<ReviewSuperviseAttachment> evaluateAttachmentList = reviewSuperviseAttachmentService.list(new LambdaQueryWrapper<ReviewSuperviseAttachment>()
List<ReviewSuperviseAttachment> handlingAttachmentList =
reviewSuperviseAttachmentService.list(new LambdaQueryWrapper<ReviewSuperviseAttachment>()
.eq(ReviewSuperviseAttachment::getReviewSuperviseId, reviewSupervise.getId())
.eq(ReviewSuperviseAttachment::getType, ReviewSuperviseAttachment.TYPE_HANDLING)
.orderByDesc(ReviewSuperviseAttachment::getCreatedAt));
//获取关联会议名称
if (CollectionUtil.isNotEmpty(handlingAttachmentList)) {
handlingAttachmentList.stream().forEach(i -> {
if (StrUtil.isNotBlank(i.getConferenceId())) {
Conference conference = conferenceMapper.selectById(i.getConferenceId());
String conferenceName = "";
if (conference != null) {
conferenceName = conference.getTitle();
}
i.setConferenceName(conferenceName);
}
});
}
List<ReviewSuperviseAttachment> evaluateAttachmentList =
reviewSuperviseAttachmentService.list(new LambdaQueryWrapper<ReviewSuperviseAttachment>()
.eq(ReviewSuperviseAttachment::getReviewSuperviseId, reviewSupervise.getId()) .eq(ReviewSuperviseAttachment::getReviewSuperviseId, reviewSupervise.getId())
.eq(ReviewSuperviseAttachment::getType, ReviewSuperviseAttachment.TYPE_EVALUATE) .eq(ReviewSuperviseAttachment::getType, ReviewSuperviseAttachment.TYPE_EVALUATE)
.orderByDesc(ReviewSuperviseAttachment::getCreatedAt)); .orderByDesc(ReviewSuperviseAttachment::getCreatedAt));
@ -125,12 +230,18 @@ public class ReviewSuperviseWrapper extends BaseWrapper<ReviewSupervise, ReviewS
}); });
} }
dto.setSurveyAttachmentList(surveyAttachmentList); dto.setSurveyAttachmentList(surveyAttachmentList);
dto.setPlanAttachmentList(planAttachmentList);
dto.setReportAttachmentList(reportAttachmentList);
dto.setMaterialAttachmentList(materialAttachmentList);
dto.setStudieAttachmentList(studieAttachmentList);
dto.setReviewAttachmentList(reviewAttachmentList); dto.setReviewAttachmentList(reviewAttachmentList);
dto.setTailAttachmentList(tailAttachmentList); dto.setTailAttachmentList(tailAttachmentList);
dto.setResearchAttachmentList(researchAttachmentList); dto.setResearchAttachmentList(researchAttachmentList);
dto.setHandlingAttachmentList(handlingAttachmentList);
dto.setEvaluateAttachmentList(evaluateAttachmentList); dto.setEvaluateAttachmentList(evaluateAttachmentList);
List<ReviewSuperviseUser> evaluateUserList = reviewSuperviseUserService.list(new LambdaQueryWrapper<ReviewSuperviseUser>() List<ReviewSuperviseUser> evaluateUserList =
reviewSuperviseUserService.list(new LambdaQueryWrapper<ReviewSuperviseUser>()
.eq(ReviewSuperviseUser::getReviewSuperviseId, reviewSupervise.getId()) .eq(ReviewSuperviseUser::getReviewSuperviseId, reviewSupervise.getId())
.eq(ReviewSuperviseUser::getType, ReviewSuperviseUser.TYPE_EVALUATE) .eq(ReviewSuperviseUser::getType, ReviewSuperviseUser.TYPE_EVALUATE)
.orderByAsc(ReviewSuperviseUser::getSortNo)); .orderByAsc(ReviewSuperviseUser::getSortNo));
@ -139,7 +250,8 @@ public class ReviewSuperviseWrapper extends BaseWrapper<ReviewSupervise, ReviewS
//打分结束算平均分 //打分结束算平均分
if (ReviewSupervise.STATE_PUBLIC == reviewSupervise.getState()) { if (ReviewSupervise.STATE_PUBLIC == reviewSupervise.getState()) {
//没打分的不算 //没打分的不算
List<ReviewSuperviseUser> scoredUserList = evaluateUserList.stream().filter(item -> item.getScore() != null).collect(Collectors.toList()); List<ReviewSuperviseUser> scoredUserList =
evaluateUserList.stream().filter(item -> item.getScore() != null).collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(scoredUserList)) { if (CollectionUtil.isNotEmpty(scoredUserList)) {
BigDecimal averageScore = scoredUserList.stream().map(item -> item.getScore()) BigDecimal averageScore = scoredUserList.stream().map(item -> item.getScore())
.reduce(BigDecimal.ZERO, BigDecimal::add) .reduce(BigDecimal.ZERO, BigDecimal::add)
@ -160,7 +272,8 @@ public class ReviewSuperviseWrapper extends BaseWrapper<ReviewSupervise, ReviewS
if (userInfo != null) { if (userInfo != null) {
if (userInfo.getId().equals(reviewSupervise.getCreatedId())) dto.setIsCreator(true); if (userInfo.getId().equals(reviewSupervise.getCreatedId())) dto.setIsCreator(true);
List<String> evaluateUserIdList = evaluateUserList.stream().map(ReviewSuperviseUser::getUserId).collect(Collectors.toList()); List<String> evaluateUserIdList =
evaluateUserList.stream().map(ReviewSuperviseUser::getUserId).collect(Collectors.toList());
if (evaluateUserIdList.contains(userInfo.getId())) dto.setIsCanEvaluate(true); if (evaluateUserIdList.contains(userInfo.getId())) dto.setIsCanEvaluate(true);
} }
return dto; return dto;

View File

@ -0,0 +1,238 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL比如: 如果设置为WARN则低于WARN的信息都不会输出 -->
<!-- scan:当此属性设置为true时配置文档如果发生改变将会被重新加载默认值为true -->
<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔如果没有给出时间单位默认单位是毫秒。当scan为true时此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug:当此属性设置为true时将打印出logback内部日志信息实时查看logback运行状态。默认值为false。 -->
<configuration scan="true" scanPeriod="10 seconds">
<contextName>logback</contextName>
<!-- name的值是变量的名称value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后可以使“${}”来使用变量。 -->
<property name="log.path" value="./logs"/>
<!--0. 日志格式和颜色渲染 -->
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<!--1. 输出到控制台-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!--此日志appender是为开发使用只配置最底级别控制台输出的日志级别是大于或等于此级别的日志信息-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
<encoder>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
<!-- 设置字符集 -->
<charset>UTF-8</charset>
</encoder>
</appender>
<!--2. 输出到文档-->
<!-- 2.1 level为 DEBUG 日志,时间滚动输出 -->
<appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/debug.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志归档 -->
<fileNamePattern>${log.path}/debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文档只记录debug级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>debug</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 2.2 level为 INFO 日志,时间滚动输出 -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/info.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天日志归档路径以及格式 -->
<fileNamePattern>${log.path}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文档只记录info级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 2.3 level为 WARN 日志,时间滚动输出 -->
<appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/warn.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文档只记录warn级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>warn</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 2.4 level为 ERROR 日志,时间滚动输出 -->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/error.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文档只记录ERROR级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 2.5 所有 除了DEBUG级别的其它高于DEBUG的 日志,记录到一个文件 -->
<appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/all.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/all-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</onMismatch>
</filter>
</appender>
<!--
<logger>用来设置某一个包或者具体的某一个类的日志打印级别、
以及指定<appender><logger>仅有一个name属性
一个可选的level和一个可选的addtivity属性。
name:用来指定受此logger约束的某一个包或者具体的某一个类。
level:用来设置打印级别大小写无关TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF
还有一个特殊值INHERITED或者同义词NULL代表强制执行上级的级别。
如果未设置此属性那么当前logger将会继承上级的级别。
addtivity:是否向上级logger传递打印信息。默认是true。
<logger name="org.springframework.web" level="info"/>
<logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
-->
<!--
使用mybatis的时候sql语句是debug下才会打印而这里我们只配置了info所以想要查看sql语句的话有以下两种操作
第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql不过这样日志那边会出现很多其他消息
第二种就是单独给dao下目录配置debug模式代码如下这样配置sql语句会打印其他还是正常info级别
【logging.level.org.mybatis=debug logging.level.dao=debug】
-->
<!--
root节点是必选节点用来指定最基础的日志输出级别只有一个level属性
level:用来设置打印级别大小写无关TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF
不能设置为INHERITED或者同义词NULL。默认是DEBUG
可以包含零个或多个元素标识这个appender将会添加到这个logger。
-->
<!-- 4 最终的策略:
基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
<springProfile name="dev">
<root level="info">
<appender-ref ref="CONSOLE" />
<appender-ref ref="DEBUG_FILE" />
<appender-ref ref="INFO_FILE" />
<appender-ref ref="WARN_FILE" />
<appender-ref ref="ERROR_FILE" />
<appender-ref ref="ALL_FILE" />
</root>
<logger name="com.xusanduo.demo" level="debug"/> <!-- 开发环境, 指定某包日志为debug级 -->
</springProfile>
<springProfile name="test">
<root level="info">
<appender-ref ref="CONSOLE" />
<appender-ref ref="DEBUG_FILE" />
<appender-ref ref="INFO_FILE" />
<appender-ref ref="WARN_FILE" />
<appender-ref ref="ERROR_FILE" />
<appender-ref ref="ALL_FILE" />
</root>
<logger name="com.ydool.boot" level="info"/> <!-- 测试环境, 指定某包日志为info级 -->
</springProfile>
<springProfile name="pro">
<root level="info">
<!-- 生产环境最好不配置console写文件 -->
<appender-ref ref="DEBUG_FILE" />
<appender-ref ref="INFO_FILE" />
<appender-ref ref="WARN_FILE" />
<appender-ref ref="ERROR_FILE" />
<appender-ref ref="ALL_FILE" />
</root>
<logger name="com.ydool.boot" level="warn"/> <!-- 生产环境, 指定某包日志为warn级 -->
<logger name="com.ydool.boot.Application" level="info"/> <!-- 特定某个类打印info日志, 比如application启动成功后的提示语 -->
</springProfile>
</configuration>

View File

@ -0,0 +1 @@
.fileOverViewBox[data-v-015ea683]{background:#000;width:100%}.fileOverViewBox .fileOverViewContentBox[data-v-015ea683]{width:100%;margin:0 auto;background:#fff}.fileOverViewBox .fileOverViewContentBox .pdf_lif[data-v-015ea683]{position:fixed;z-index:10}.fileOverViewBox .fileOverViewContentBox .pdf_lif .prev[data-v-015ea683]{flex:1;text-align:center;padding:.26667rem;position:fixed;left:0;top:50%}.fileOverViewBox .fileOverViewContentBox .pdf_lif .prev img[data-v-015ea683]{width:.8rem;height:.8rem}.fileOverViewBox .fileOverViewContentBox .pdf_lif .next[data-v-015ea683]{flex:1;text-align:center;padding:.26667rem;position:fixed;right:0;top:50%}.fileOverViewBox .fileOverViewContentBox .pdf_lif .next img[data-v-015ea683]{width:.8rem;height:.8rem}.fileOverViewBox .fileOverViewContentBox .arrow[data-v-015ea683]{position:fixed;width:100%;height:1.6rem;z-index:100;box-shadow:0 .05333rem .05333rem rgba(0,0,0,.5);background:hsla(0,0%,100%,.9)}.fileOverViewBox .fileOverViewContentBox .arrow .turn[data-v-015ea683]{cursor:pointer}.fileOverViewBox .fileOverViewContentBox .arrow .turn[data-v-015ea683]:hover{color:#58a5fe}.fileOverViewBox .fileOverViewContentBox .arrow .pageBox[data-v-015ea683]{margin:0 .53333rem}.fileOverViewBox .fileOverViewContentBox .button_content[data-v-015ea683]{position:fixed;right:.42667rem;bottom:1.6rem;z-index:9999}.fileOverViewBox .fileOverViewContentBox .button_content .box[data-v-015ea683]{width:1.06667rem;height:1.06667rem;margin-bottom:.53333rem;background-color:#fff;border-radius:50%;box-shadow:0 0 .26667rem .05333rem #efefef;padding:.24rem;font-size:0}.fileOverViewBox .fileOverViewContentBox .cloee[data-v-015ea683]{overflow:hidden}.fileOverViewBox .fileOverViewContentBox[data-v-015ea683] .docViewBox{width:100%;padding:.53333rem;font-size:.42667rem;line-height:1.6;overflow:hidden}.fileOverViewBox .fileOverViewContentBox[data-v-015ea683] .docViewBox p{margin:.21333rem .10667rem;line-height:1.6;text-indent:2em}.fileOverViewBox .fileOverViewContentBox[data-v-015ea683] .docViewBox img{margin:.37333rem 0;overflow:hidden}.fileOverViewBox .fileOverViewContentBox[data-v-015ea683] .docViewBox li{margin:.21333rem 0;line-height:1.6;text-indent:2em}.ifra iframe[data-v-015ea683]{position:absolute;width:100%;height:93%}

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
.van-pagination[data-v-5ce48fdc]{position:fixed;bottom:0;width:100%;z-index:999;background:#fff}.van-tag[data-v-5ce48fdc]{margin-right:.42667rem}.box[data-v-5ce48fdc]{display:flex;flex-direction:column;height:100%;font-size:.42667rem}.box .imgaddBtn[data-v-5ce48fdc]{position:fixed;bottom:26%;right:0}.box .imgaddBtn .imgdiv[data-v-5ce48fdc]{height:2.4rem;margin-top:.26667rem;z-index:50;opacity:.9}.box .imgaddBtn .imgdiv .add[data-v-5ce48fdc]{width:2.72rem;z-index:999}.box .imgaddBtn .imgtext[data-v-5ce48fdc]{font-size:.42667rem;text-align:center}.box[data-v-5ce48fdc] .van-tab.van-tab--active{font-size:.42667rem;font-weight:800}.box .tab-contain[data-v-5ce48fdc]{padding:.32rem}.box .tab-contain .van-cell[data-v-5ce48fdc]{margin-bottom:.37333rem}.box .tab-contain .van-cell .custom-title[data-v-5ce48fdc]{font-size:.42667rem}.box .tab-contain .van-cell .van-icon[data-v-5ce48fdc]{color:#333}

View File

@ -1 +0,0 @@
.fileOverViewBox[data-v-331ee0f5]{background:#000;width:100%}.fileOverViewBox .fileOverViewContentBox[data-v-331ee0f5]{width:100%;margin:0 auto;background:#fff}.fileOverViewBox .fileOverViewContentBox .pdf_lif[data-v-331ee0f5]{position:fixed;z-index:10}.fileOverViewBox .fileOverViewContentBox .pdf_lif .prev[data-v-331ee0f5]{flex:1;text-align:center;padding:.26667rem;position:fixed;left:0;top:50%}.fileOverViewBox .fileOverViewContentBox .pdf_lif .prev img[data-v-331ee0f5]{width:.8rem;height:.8rem}.fileOverViewBox .fileOverViewContentBox .pdf_lif .next[data-v-331ee0f5]{flex:1;text-align:center;padding:.26667rem;position:fixed;right:0;top:50%}.fileOverViewBox .fileOverViewContentBox .pdf_lif .next img[data-v-331ee0f5]{width:.8rem;height:.8rem}.fileOverViewBox .fileOverViewContentBox .arrow[data-v-331ee0f5]{position:fixed;width:100%;height:1.6rem;z-index:100;box-shadow:0 .05333rem .05333rem rgba(0,0,0,.5);background:hsla(0,0%,100%,.9)}.fileOverViewBox .fileOverViewContentBox .arrow .turn[data-v-331ee0f5]{cursor:pointer}.fileOverViewBox .fileOverViewContentBox .arrow .turn[data-v-331ee0f5]:hover{color:#58a5fe}.fileOverViewBox .fileOverViewContentBox .arrow .pageBox[data-v-331ee0f5]{margin:0 .53333rem}.fileOverViewBox .fileOverViewContentBox .button_content[data-v-331ee0f5]{position:fixed;right:.42667rem;bottom:1.6rem;z-index:9999}.fileOverViewBox .fileOverViewContentBox .button_content .box[data-v-331ee0f5]{width:1.06667rem;height:1.06667rem;margin-bottom:.53333rem;background-color:#fff;border-radius:50%;box-shadow:0 0 .26667rem .05333rem #efefef;padding:.24rem;font-size:0}.fileOverViewBox .fileOverViewContentBox .cloee[data-v-331ee0f5]{overflow:hidden}.fileOverViewBox .fileOverViewContentBox[data-v-331ee0f5] .docViewBox{width:100%;padding:.53333rem;font-size:.42667rem;line-height:1.6;overflow:hidden}.fileOverViewBox .fileOverViewContentBox[data-v-331ee0f5] .docViewBox p{margin:.21333rem .10667rem;line-height:1.6;text-indent:2em}.fileOverViewBox .fileOverViewContentBox[data-v-331ee0f5] .docViewBox img{margin:.37333rem 0;overflow:hidden}.fileOverViewBox .fileOverViewContentBox[data-v-331ee0f5] .docViewBox li{margin:.21333rem 0;line-height:1.6;text-indent:2em}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
.van-pagination[data-v-6da2128c]{position:fixed;bottom:0;width:100%;z-index:999;background:#fff}.box[data-v-6da2128c]{display:flex;flex-direction:column;height:100%;font-size:.42667rem}.box .imgaddBtn[data-v-6da2128c]{position:fixed;bottom:26%;right:0}.box .imgaddBtn .imgdiv[data-v-6da2128c]{height:2.4rem;margin-top:.26667rem;z-index:50;opacity:.9}.box .imgaddBtn .imgdiv .add[data-v-6da2128c]{width:2.72rem;z-index:999}.box .imgaddBtn .imgtext[data-v-6da2128c]{font-size:.42667rem;text-align:center}.box[data-v-6da2128c] .van-tab.van-tab--active{font-size:.42667rem;font-weight:800}.box .tab-contain[data-v-6da2128c]{padding:.32rem}.box .tab-contain .tab-contain-list .tab-contain-list-box[data-v-6da2128c]{display:flex;align-items:center;justify-content:space-between;padding:.42667rem;background-color:#fff;margin-bottom:.26667rem}.box .tab-contain .tab-contain-list .tab-contain-list-box .tab-contain-list-box-left[data-v-6da2128c]{flex:1;display:flex;align-items:center}.box .tab-contain .tab-contain-list .tab-contain-list-box .tab-contain-list-box-left .logo[data-v-6da2128c]{width:1.06667rem;height:1.06667rem;margin-right:.4rem}.box .tab-contain .tab-contain-list .tab-contain-list-box .tab-contain-list-box-left h2[data-v-6da2128c]{font-size:.42667rem;color:#333;margin-bottom:.26667rem}.box .tab-contain .tab-contain-list .tab-contain-list-box .tab-contain-list-box-left p[data-v-6da2128c]{font-size:.32rem;color:#cbcbcb}.box .tab-contain .tab-contain-list .tab-contain-list-box .tab-contain-list-box-right[data-v-6da2128c]{display:flex;justify-content:center;align-items:center}.box .tab-contain .tab-contain-list .tab-contain-list-box .tab-contain-list-box-right .span1[data-v-6da2128c]{display:block;flex:1;font-weight:700;text-align:center;color:#fb6c26}.box .tab-contain .tab-contain-list .tab-contain-list-box .tab-contain-list-box-right .span2[data-v-6da2128c]{display:block;flex:1;text-align:center;font-weight:700;color:#4aaff2}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
.van-pagination[data-v-71f39b4a]{position:fixed;bottom:0;width:100%;z-index:999;background:#fff}.van-tag[data-v-71f39b4a]{margin-right:.42667rem}.box[data-v-71f39b4a]{display:flex;flex-direction:column;height:100%;font-size:.42667rem}.box .imgaddBtn[data-v-71f39b4a]{position:fixed;bottom:26%;right:0}.box .imgaddBtn .imgdiv[data-v-71f39b4a]{height:2.4rem;margin-top:.26667rem;z-index:50;opacity:.9}.box .imgaddBtn .imgdiv .add[data-v-71f39b4a]{width:2.72rem;z-index:999}.box .imgaddBtn .imgtext[data-v-71f39b4a]{font-size:.42667rem;text-align:center}.box[data-v-71f39b4a] .van-tab.van-tab--active{font-size:.42667rem;font-weight:800}.box .tab-contain[data-v-71f39b4a]{padding:.32rem}.box .tab-contain .van-cell[data-v-71f39b4a]{margin-bottom:.37333rem}.box .tab-contain .van-cell .custom-title[data-v-71f39b4a]{font-size:.42667rem}.box .tab-contain .van-cell .van-icon[data-v-71f39b4a]{color:#333}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
.van-pagination[data-v-cfcffe66]{position:fixed;bottom:0;width:100%;z-index:999;background:#fff}.box[data-v-cfcffe66]{display:flex;flex-direction:column;height:100%;font-size:.42667rem}.box .imgaddBtn[data-v-cfcffe66]{position:fixed;bottom:26%;right:0}.box .imgaddBtn .imgdiv[data-v-cfcffe66]{height:2.4rem;margin-top:.26667rem;z-index:50;opacity:.9}.box .imgaddBtn .imgdiv .add[data-v-cfcffe66]{width:2.72rem;z-index:999}.box .imgaddBtn .imgtext[data-v-cfcffe66]{font-size:.42667rem;text-align:center}.box[data-v-cfcffe66] .van-tab.van-tab--active{font-size:.42667rem;font-weight:800}.box .tab-contain[data-v-cfcffe66]{padding:.32rem}.box .tab-contain .tab-contain-list .tab-contain-list-box[data-v-cfcffe66]{display:flex;align-items:center;justify-content:space-between;padding:.42667rem;background-color:#fff;margin-bottom:.26667rem}.box .tab-contain .tab-contain-list .tab-contain-list-box .tab-contain-list-box-left[data-v-cfcffe66]{flex:1;display:flex;align-items:center}.box .tab-contain .tab-contain-list .tab-contain-list-box .tab-contain-list-box-left .logo[data-v-cfcffe66]{width:1.06667rem;height:1.06667rem;margin-right:.4rem}.box .tab-contain .tab-contain-list .tab-contain-list-box .tab-contain-list-box-left h2[data-v-cfcffe66]{font-size:.42667rem;color:#333;margin-bottom:.26667rem}.box .tab-contain .tab-contain-list .tab-contain-list-box .tab-contain-list-box-left p[data-v-cfcffe66]{font-size:.32rem;color:#cbcbcb}.box .tab-contain .tab-contain-list .tab-contain-list-box .tab-contain-list-box-right[data-v-cfcffe66]{display:flex;justify-content:center;align-items:center}.box .tab-contain .tab-contain-list .tab-contain-list-box .tab-contain-list-box-right .span1[data-v-cfcffe66]{display:block;flex:1;font-weight:700;text-align:center;color:#fb6c26}.box .tab-contain .tab-contain-list .tab-contain-list-box .tab-contain-list-box-right .span2[data-v-cfcffe66]{display:block;flex:1;text-align:center;font-weight:700;color:#4aaff2}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More