diff --git a/safety-cedu-service/src/班级管理.sql b/safety-cedu-service/src/班级管理.sql index d4dd25ff..94ad02ef 100644 --- a/safety-cedu-service/src/班级管理.sql +++ b/safety-cedu-service/src/班级管理.sql @@ -5,7 +5,6 @@ create table class_course class_id bigint not null comment '所属班级ID(关联training_class.id)', course_name varchar(200) not null comment '课程名称', course_id bigint not null comment '课程id', - courseware_id text not null comment '课件id集合', required_total_hours decimal(10, 2) null comment '要求完成总学时(小时)', video_duration decimal(10, 2) null comment '视频累计时长(小时)', delete_enum varchar(32) null comment '删除标识true false', @@ -18,7 +17,8 @@ create table class_course update_time datetime null comment '修改时间', create_id bigint null comment '创建人id', update_id bigint null comment '修改人id', - env varchar(50) null comment '环境' + env varchar(50) null comment '环境', + courseware_id text null comment '课件id集合' ) comment '课程管理表' charset = utf8mb4; @@ -166,3 +166,74 @@ create index idx_student_id create index idx_study_status on class_student_learning_record (study_status); +create table course_management +( + delete_enum varchar(32) charset utf8mb4 null comment '删除标识true false', + remarks varchar(255) charset utf8mb4 null comment '备注', + create_name varchar(50) charset utf8mb4 null comment '创建人姓名', + update_name varchar(50) charset utf8mb4 null comment '更新人姓名', + tenant_id bigint null comment '租户id', + version int null comment '版本', + create_time datetime null comment '创建时间', + update_time datetime null comment '修改时间', + create_id bigint null comment '创建人id', + update_id bigint null comment '修改人id', + env varchar(50) charset utf8mb4 null comment '环境', + id bigint not null comment '主键' + primary key, + course_name varchar(200) null comment '课程名称', + training_type varchar(100) null comment '培训类型', + course_description varchar(512) null comment '课称描述', + course_cover varchar(255) null comment '课程封面', + class_hour_duration decimal(5, 1) unsigned default 0.0 null comment '课时时长(小时)', + upload_unit varchar(200) null comment '上传单位', + status int default 0 null comment '状态(1启用/0禁用)', + used int default 0 null comment '是否已被使用(0-未使用,1-已使用)', + exam_type int null comment '试卷类型(如:1自动生成试卷、2平台组卷等)', + exam_minutes int null comment '考试时长(分钟)', + exam_id bigint not null comment '试卷id' +) + comment '课程管理'; + +create table course_rel_courseware +( + id bigint not null comment '主键' + primary key, + courseware_name varchar(200) null comment '课件名称', + courseware_document varchar(512) null comment '课件文档(文件名或路径)', + courseware_id bigint null comment '课件id', + course_id bigint null comment '课程id', + sort int null comment '排序', + class_hour_duration_unit varchar(10) default '小时' null comment '课时时长单位', + credit_hours decimal(5, 1) unsigned default 0.0 null comment '学时' +) + comment '课程关联课件表'; + +create table courseware_management +( + delete_enum varchar(32) charset utf8mb4 null comment '删除标识true false', + remarks varchar(255) charset utf8mb4 null comment '备注', + create_name varchar(50) charset utf8mb4 null comment '创建人姓名', + update_name varchar(50) charset utf8mb4 null comment '更新人姓名', + tenant_id bigint null comment '租户id', + version int null comment '版本', + create_time datetime null comment '创建时间', + update_time datetime null comment '修改时间', + create_id bigint null comment '创建人id', + update_id bigint null comment '修改人id', + env varchar(50) charset utf8mb4 null comment '环境', + id bigint not null comment '主键' + primary key, + courseware_name varchar(200) null comment '课件名称', + training_type varchar(100) null comment '培训类型', + lecturer_name varchar(100) null comment '讲师名称', + credit_hours decimal(5, 1) unsigned default 0.0 null comment '学时', + class_hour_duration decimal(5, 1) unsigned default 0.0 null comment '课时时长(小时)', + upload_unit varchar(200) null comment '上传单位', + status int default 0 null comment '状态(1启用/0禁用)', + courseware_type int null comment '课件类型(1视频课件/2文档课件)', + courseware_document varchar(512) null comment '课件文档(文件名或路径)', + courseware_description varchar(512) null comment '课件描述' +) + comment '课件表'; + diff --git a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/institution/EvalProjectController.java b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/institution/EvalProjectController.java index e5bcfc23..077f25dd 100644 --- a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/institution/EvalProjectController.java +++ b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/institution/EvalProjectController.java @@ -34,6 +34,12 @@ public class EvalProjectController { return evalProjectApi.save(cmd); } + @ApiOperation("编辑项目") + @PostMapping("/update") + public SingleResponse update(@Validated @RequestBody EvalProjectAddCmd cmd) { + return evalProjectApi.update(cmd); + } + @ApiOperation("查询项目详情") @GetMapping("/get") public SingleResponse get(@ApiParam("主键ID") @RequestParam String id) { diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProcessControlExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProcessControlExecutor.java index 286009e0..1130b4f3 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProcessControlExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProcessControlExecutor.java @@ -546,7 +546,7 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { String fName = StringUtils.hasText(name) ? CommonUtil.EMPTY : name; item.setMaterialName(itemName + fName); item.setProjectDocUrl(obj.getStr("url")); - item.setMaterialType(MaterialCategory.ARCHIVED.getVal()); + item.setMaterialType(MaterialCategory.ARCHIVED.getMsg()); archivedItems.add(item); } } @@ -567,6 +567,7 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { docDO.setProjectName(project.getProjectName()); docDO.setEvalTypeCode(project.getEvalTypeCode()); docDO.setProjectDocUrl(JSON.toJSONString(archivedItems)); + docDO.setRemarks(MaterialCategory.ARCHIVED.getMsg()); InsertFieldDefaults.apply(docDO); evalProjectDocMapper.insert(docDO); } else { diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectExecutor.java index 3a8f2d54..6ad0df1f 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectExecutor.java @@ -2,6 +2,7 @@ package org.qinan.safetyeval.app.executor.institution; import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.qinan.safetyeval.app.convertor.EvalProjectCmdConvertor; @@ -281,7 +282,7 @@ public class EvalProjectExecutor implements EvalProjectApi { .map(EvalProjectCO::getCustomerId).collect(Collectors.toList())) .stream().collect(Collectors.toMap(EvalCustomerDO::getId, EvalCustomerDO::getCustomerName)); Map projectRole = getProjectRole(co.stream().map(EvalProjectCO::getId).map(Long::new).collect(Collectors.toList())); - co.forEach(item -> { + co.stream().sorted((o1, o2) -> o2.getSurveyType() - o1.getSurveyType()).forEach(item -> { item.setCustomerName(customerNameMap.get(Long.valueOf(item.getCustomerId()))); item.setRole(projectRole.get(Long.valueOf(item.getId()))); }); @@ -343,6 +344,14 @@ public class EvalProjectExecutor implements EvalProjectApi { return SingleResponse.success(co); } + @Override + public SingleResponse update(EvalProjectAddCmd cmd) { + evalProjectMapper.update(new LambdaUpdateWrapper() + .eq(EvalProjectDO::getId, cmd.getId()) + .set(EvalProjectDO::getParticipantsJson, JSON.toJSONString(cmd.getParticipants()))); + return SingleResponse.success(null); + } + private CustomerEvalProjectCO convertToCustomerCO(EvalProjectEntity entity) { CustomerEvalProjectCO co = new CustomerEvalProjectCO(); co.setId(entity.getId() == null ? null : String.valueOf(entity.getId())); diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectMemberExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectMemberExecutor.java index 3b84ac42..434920fa 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectMemberExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectMemberExecutor.java @@ -8,7 +8,6 @@ import org.qinan.safetyeval.client.dto.PageResponse; import org.qinan.safetyeval.client.dto.SingleResponse; import org.qinan.safetyeval.client.dto.institution.EvalProjectMemberAddCmd; import org.qinan.safetyeval.client.dto.institution.EvalProjectMemberPageQuery; -import org.qinan.safetyeval.domain.constant.ProjectRoleEnum; import org.qinan.safetyeval.domain.constant.ProjectStageEnum; import org.qinan.safetyeval.domain.entity.EvalProjectMemberEntity; import org.qinan.safetyeval.domain.exception.ErrorCode; @@ -71,9 +70,6 @@ public class EvalProjectMemberExecutor implements EvalProjectMemberApi { domainQuery.setOrgId(institutionOrgSupport.resolveCurrentOrgId()); PageResult pageResult = evalProjectMemberDomainService.page(domainQuery); List evalProjectMemberCOS = evalProjectMemberCmdConvertor.convertEListToCOList(pageResult.getRecords()); - for (EvalProjectMemberCO evalProjectMemberCO : evalProjectMemberCOS) { - evalProjectMemberCO.setRole(ProjectRoleEnum.froms(evalProjectMemberCO.getRole())); - } return PageResponse.of(evalProjectMemberCOS , pageResult.getTotal()); diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalSurveyExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalSurveyExecutor.java index 7d35cba1..bc59b61e 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalSurveyExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalSurveyExecutor.java @@ -10,7 +10,6 @@ import org.qinan.safetyeval.client.dto.PageResponse; import org.qinan.safetyeval.client.dto.SingleResponse; import org.qinan.safetyeval.client.dto.institution.EvalSurveyPageQuery; import org.qinan.safetyeval.client.dto.institution.EvalSurveySaveCmd; -import org.qinan.safetyeval.domain.constant.ProjectRoleEnum; import org.qinan.safetyeval.domain.entity.EvalProjectMemberEntity; import org.qinan.safetyeval.domain.entity.EvalSurveyEntity; import org.qinan.safetyeval.domain.exception.ErrorCode; @@ -108,7 +107,7 @@ public class EvalSurveyExecutor implements EvalSurveyApi { } List dbList = evalProjectMemberDOS.stream().map(evalProjectMemberDoConvertor::convertDoToE).collect(Collectors.toList()); EvalProjectMemberCO evalProjectMemberCO = evalProjectMemberCmdConvertor.convertEListToCOList(dbList).get(0); - evalProjectMemberCO.setRole(ProjectRoleEnum.froms(evalProjectMemberCO.getRole())); +// evalProjectMemberCO.setRole(ProjectRoleEnum.froms(evalProjectMemberCO.getRole())); return SingleResponse.success(evalProjectMemberCO); } } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/institution/EvalProjectApi.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/institution/EvalProjectApi.java index fb1f466f..6254c485 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/institution/EvalProjectApi.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/institution/EvalProjectApi.java @@ -46,4 +46,6 @@ public interface EvalProjectApi { PageResponse myPage(EvalProjectPageQuery query); SingleResponse appProjectStatistics(); + + SingleResponse update(EvalProjectAddCmd cmd); } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalSurveyCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalSurveyCO.java index 851dbc79..06e01133 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalSurveyCO.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalSurveyCO.java @@ -65,4 +65,9 @@ public class EvalSurveyCO { @ApiModelProperty("内容") private String content; + + @ApiModelProperty("人脸识别照片") + private String faceUrl; + @ApiModelProperty("地址") + private String address; } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalProjectAddCmd.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalProjectAddCmd.java index c6c0e7f5..758f1017 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalProjectAddCmd.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalProjectAddCmd.java @@ -14,6 +14,9 @@ import java.util.List; @Data public class EvalProjectAddCmd { + @ApiModelProperty("id") + private Long id; + @NotBlank(message = "项目名称不能为空") @ApiModelProperty(value = "项目名称", required = true) private String projectName; diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalSurveySaveCmd.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalSurveySaveCmd.java index 43d51f22..673698dc 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalSurveySaveCmd.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalSurveySaveCmd.java @@ -65,4 +65,9 @@ public class EvalSurveySaveCmd { @ApiModelProperty("内容") private String content; + + @ApiModelProperty("人脸识别照片") + private String faceUrl; + @ApiModelProperty("地址") + private String address; } diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/EvalSurveyEntity.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/EvalSurveyEntity.java index da0e3cea..3079d0e1 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/EvalSurveyEntity.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/EvalSurveyEntity.java @@ -1,5 +1,6 @@ package org.qinan.safetyeval.domain.entity; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.time.LocalDateTime; @@ -27,4 +28,6 @@ public class EvalSurveyEntity { private String latitude; private String content; private Long tenantId; + private String faceUrl; + private String address; } diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/EvalSurveyDO.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/EvalSurveyDO.java index 46674d9a..d81cd290 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/EvalSurveyDO.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/EvalSurveyDO.java @@ -1,6 +1,7 @@ package org.qinan.safetyeval.infrastructure.dataobject; import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.time.LocalDateTime; @@ -41,4 +42,6 @@ public class EvalSurveyDO { private Long createId; private Long updateId; private String env; + private String faceUrl; + private String address; }