snihwxf пре 2 месеци
родитељ
комит
9abd7ee7b8

+ 16 - 17
src/main/java/com/xjrsoft/module/hikvision/util/DataUtil.java

@@ -353,24 +353,23 @@ public class DataUtil {
             JsonElement parse = jsonParser.parse(result);
             JsonObject resultJson = parse.getAsJsonObject();
             if ("0".equals(resultJson.get("code").getAsString()) && "success".equals(resultJson.get("msg").getAsString())) {
-                if ("0".equals(resultJson.get("code").getAsString()) && "success".equals(resultJson.get("msg").getAsString())) {
-                    Entity entity = Entity.create(tableName);
-                    entity.set("table_name", tableName);
-                    entity.set("create_date", sdf.format(new Date()));
+                Entity entity = Entity.create(tableName);
+                entity.set("table_name", tableName);
+                entity.set("create_date", sdf.format(new Date()));
 //                    entity.set("source_id", clientMap.get(paramJson.get("clientId").getAsInt()));
-                    entity.set("source_id", paramJson.get("personId").getAsString());
-                    entity.set("hikvision_id", paramJson.get("personId").getAsString());
-                    entity.set("send_data", paramJson.toString());
-                    insertList.add(entity);
-                } else if ("0x00052102".equals(resultJson.get("code").getAsString()) && "PersonId Already In Db".equals(resultJson.get("msg").getAsString())) {
-                    Entity entity = Entity.create(tableName);
-                    entity.set("table_name", tableName);
-                    entity.set("create_date", sdf.format(new Date()));
-                    entity.set("source_id", paramJson.get("personId").getAsString());
-                    entity.set("hikvision_id", paramJson.get("personId").getAsString());
-                    entity.set("send_data", paramJson.toString());
-                    insertList.add(entity);
-                }
+                entity.set("source_id", paramJson.get("personId").getAsString());
+                entity.set("hikvision_id", paramJson.get("personId").getAsString());
+                entity.set("send_data", paramJson.toString());
+                insertList.add(entity);
+            } else if ("0x00052102".equals(resultJson.get("code").getAsString()) && "PersonId Already In Db".equals(resultJson.get("msg").getAsString())) {
+                Entity entity = Entity.create(tableName);
+                entity.set("table_name", tableName);
+                entity.set("create_date", sdf.format(new Date()));
+                entity.set("source_id", paramJson.get("personId").getAsString());
+                entity.set("hikvision_id", paramJson.get("personId").getAsString());
+                entity.set("send_data", paramJson.toString());
+                insertList.add(entity);
+
             }
         }
 

+ 108 - 0
src/main/java/com/xjrsoft/module/teacher/controller/WfTeacherCourseTimeController.java

@@ -0,0 +1,108 @@
+package com.xjrsoft.module.teacher.controller;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.xjrsoft.common.constant.GlobalConstant;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.teacher.dto.AddWfTeacherCourseTimeDto;
+import com.xjrsoft.module.teacher.dto.UpdateWfTeacherCourseTimeDto;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.xjrsoft.common.annotation.XjrLog;
+
+import com.xjrsoft.module.teacher.dto.WfTeacherCourseTimePageDto;
+import com.xjrsoft.module.teacher.entity.WfTeacherCourseTime;
+import com.xjrsoft.module.teacher.service.IWfTeacherCourseTimeService;
+import com.xjrsoft.module.teacher.vo.WfTeacherCourseTimePageVo;
+
+import com.xjrsoft.module.teacher.vo.WfTeacherCourseTimeVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+* @title: 课时补充
+* @Author bc
+* @Date: 2025-09-28
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/teacher" + "/wfTeacherCourseTime")
+@Api(value = "/teacher"  + "/wfTeacherCourseTime",tags = "课时补充代码")
+@AllArgsConstructor
+public class WfTeacherCourseTimeController {
+
+
+    private final IWfTeacherCourseTimeService wfTeacherCourseTimeService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="课时补充列表(分页)")
+    @SaCheckPermission("wfteachercoursetime:detail")
+    @XjrLog(value = "课时补充列表(分页)")
+    public RT<PageOutput<WfTeacherCourseTimePageVo>> page(@Valid WfTeacherCourseTimePageDto dto){
+
+        LambdaQueryWrapper<WfTeacherCourseTime> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper
+                    .orderByDesc(WfTeacherCourseTime::getId)
+                .select(WfTeacherCourseTime.class,x -> VoToColumnUtil.fieldsToColumns(WfTeacherCourseTimePageVo.class).contains(x.getProperty()));
+        IPage<WfTeacherCourseTime> page = wfTeacherCourseTimeService.page(ConventPage.getPage(dto), queryWrapper);
+        PageOutput<WfTeacherCourseTimePageVo> pageOutput = ConventPage.getPageOutput(page, WfTeacherCourseTimePageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询课时补充信息")
+    @SaCheckPermission("wfteachercoursetime:detail")
+    @XjrLog(value = "根据id查询课时补充信息")
+    public RT<WfTeacherCourseTimeVo> info(@RequestParam Long id){
+        WfTeacherCourseTime wfTeacherCourseTime = wfTeacherCourseTimeService.getById(id);
+        if (wfTeacherCourseTime == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(wfTeacherCourseTime, WfTeacherCourseTimeVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增课时补充")
+    @SaCheckPermission("wfteachercoursetime:add")
+    @XjrLog(value = "新增课时补充")
+    public RT<Boolean> add(@Valid @RequestBody AddWfTeacherCourseTimeDto dto){
+        WfTeacherCourseTime wfTeacherCourseTime = BeanUtil.toBean(dto, WfTeacherCourseTime.class);
+        boolean isSuccess = wfTeacherCourseTimeService.save(wfTeacherCourseTime);
+    return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改课时补充")
+    @SaCheckPermission("wfteachercoursetime:edit")
+    @XjrLog(value = "修改课时补充")
+    public RT<Boolean> update(@Valid @RequestBody UpdateWfTeacherCourseTimeDto dto){
+
+        WfTeacherCourseTime wfTeacherCourseTime = BeanUtil.toBean(dto, WfTeacherCourseTime.class);
+        return RT.ok(wfTeacherCourseTimeService.updateById(wfTeacherCourseTime));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除课时补充")
+    @SaCheckPermission("wfteachercoursetime:delete")
+    @XjrLog(value = "删除课时补充")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(wfTeacherCourseTimeService.removeBatchByIds(ids));
+
+    }
+
+}

+ 74 - 0
src/main/java/com/xjrsoft/module/teacher/dto/AddWfTeacherCourseTimeDto.java

@@ -0,0 +1,74 @@
+package com.xjrsoft.module.teacher.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.time.LocalDate;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+
+/**
+* @title: 课时补充
+* @Author bc
+* @Date: 2025-09-28
+* @Version 1.0
+*/
+@Data
+public class AddWfTeacherCourseTimeDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 教师(xjr_user)
+    */
+    @ApiModelProperty("教师(xjr_user)")
+    private Long applyUserId;
+    /**
+    * 部门id(xjr_department)
+    */
+    @ApiModelProperty("部门id(xjr_department)")
+    private Long deptId;
+    /**
+    * 课时类型(xjr_dictionary_item[course_time_type])
+    */
+    @ApiModelProperty("课时类型(xjr_dictionary_item[course_time_type])")
+    private String courseTimeType;
+    /**
+    * 补充课时
+    */
+    @ApiModelProperty("补充课时")
+    private Double courseTime;
+    /**
+    * 上课日期
+    */
+    @ApiModelProperty("上课日期")
+    private LocalDate scheduleDate;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 说明
+    */
+    @ApiModelProperty("说明")
+    private String explains;
+    /**
+    * 补课人员
+    */
+    @ApiModelProperty("补课人员")
+    private String teacherIds;
+    /**
+    * 上传的文件(xjr_file[floder_id])
+    */
+    @ApiModelProperty("上传的文件(xjr_file[floder_id])")
+    private Long fileId;
+
+}

+ 32 - 0
src/main/java/com/xjrsoft/module/teacher/dto/UpdateWfTeacherCourseTimeDto.java

@@ -0,0 +1,32 @@
+package com.xjrsoft.module.teacher.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.List;
+import java.util.Date;
+
+
+
+/**
+* @title: 课时补充
+* @Author bc
+* @Date: 2025-09-28
+* @Version 1.0
+*/
+@Data
+public class UpdateWfTeacherCourseTimeDto extends AddWfTeacherCourseTimeDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键
+    */
+    @ApiModelProperty("主键")
+    private Long id;
+}

+ 26 - 0
src/main/java/com/xjrsoft/module/teacher/dto/WfTeacherCourseTimePageDto.java

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.teacher.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+* @title: 课时补充分页查询入参
+* @Author bc
+* @Date: 2025-09-28
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class WfTeacherCourseTimePageDto extends PageInput {
+
+
+}

+ 99 - 0
src/main/java/com/xjrsoft/module/teacher/entity/WfTeacherCourseTime.java

@@ -0,0 +1,99 @@
+package com.xjrsoft.module.teacher.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+/**
+* @title: 课时补充
+* @Author bc
+* @Date: 2025-09-28
+* @Version 1.0
+*/
+@Data
+@TableName("wf_teacher_course_time")
+@ApiModel(value = "wf_teacher_course_time", description = "课时补充")
+public class WfTeacherCourseTime implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键
+    */
+    @ApiModelProperty("主键")
+    @TableId
+    private Long id;
+    /**
+    * 教师(xjr_user)
+    */
+    @ApiModelProperty("教师(xjr_user)")
+    private Long applyUserId;
+    /**
+    * 部门id(xjr_department)
+    */
+    @ApiModelProperty("部门id(xjr_department)")
+    private Long deptId;
+    /**
+    * 课时类型(xjr_dictionary_item[course_time_type])
+    */
+    @ApiModelProperty("课时类型(xjr_dictionary_item[course_time_type])")
+    private String courseTimeType;
+    /**
+    * 补充课时
+    */
+    @ApiModelProperty("补充课时")
+    private Double courseTime;
+    /**
+    * 上课日期
+    */
+    @ApiModelProperty("上课日期")
+    private LocalDate scheduleDate;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 说明
+    */
+    @ApiModelProperty("说明")
+    private String explains;
+    /**
+    * 补课人员
+    */
+    @ApiModelProperty("补课人员")
+    private String teacherIds;
+    /**
+    * 状态(0:作废 1:生效 2:锁定)
+    */
+    @ApiModelProperty("状态(0:作废 1:生效 2:锁定)")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createDate;
+    /**
+    * 上传的文件(xjr_file[floder_id])
+    */
+    @ApiModelProperty("上传的文件(xjr_file[floder_id])")
+    private Long fileId;
+
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/teacher/mapper/WfTeacherCourseTimeMapper.java

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.teacher.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.teacher.entity.WfTeacherCourseTime;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 课时补充
+* @Author bc
+* @Date: 2025-09-28
+* @Version 1.0
+*/
+@Mapper
+public interface WfTeacherCourseTimeMapper extends MPJBaseMapper<WfTeacherCourseTime> {
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/teacher/service/IWfTeacherCourseTimeService.java

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.teacher.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.teacher.entity.WfTeacherCourseTime;
+import lombok.Data;
+import java.util.List;
+
+/**
+* @title: 课时补充
+* @Author bc
+* @Date: 2025-09-28
+* @Version 1.0
+*/
+
+public interface IWfTeacherCourseTimeService extends MPJBaseService<WfTeacherCourseTime> {
+}

+ 25 - 0
src/main/java/com/xjrsoft/module/teacher/service/impl/WfTeacherCourseTimeServiceImpl.java

@@ -0,0 +1,25 @@
+package com.xjrsoft.module.teacher.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.teacher.entity.WfTeacherCourseTime;
+import com.xjrsoft.module.teacher.mapper.WfTeacherCourseTimeMapper;
+import com.xjrsoft.module.teacher.service.IWfTeacherCourseTimeService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+
+/**
+* @title: 课时补充
+* @Author bc
+* @Date: 2025-09-28
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class WfTeacherCourseTimeServiceImpl extends MPJBaseServiceImpl<WfTeacherCourseTimeMapper, WfTeacherCourseTime> implements IWfTeacherCourseTimeService {
+}

+ 86 - 0
src/main/java/com/xjrsoft/module/teacher/vo/WfTeacherCourseTimePageVo.java

@@ -0,0 +1,86 @@
+package com.xjrsoft.module.teacher.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import com.xjrsoft.common.annotation.Trans;
+import com.xjrsoft.common.enums.TransType;
+
+import java.time.LocalDate;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+* @title: 课时补充分页列表出参
+* @Author bc
+* @Date: 2025-09-28
+* @Version 1.0
+*/
+@Data
+public class WfTeacherCourseTimePageVo {
+
+    /**
+    * 主键
+    */
+    @ApiModelProperty("主键")
+    private String id;
+    /**
+    * 教师(xjr_user)
+    */
+    @ApiModelProperty("教师(xjr_user)")
+    private Long applyUserId;
+    /**
+    * 部门id(xjr_department)
+    */
+    @ApiModelProperty("部门id(xjr_department)")
+    private Long deptId;
+    /**
+    * 课时类型(xjr_dictionary_item[course_time_type])
+    */
+    @ApiModelProperty("课时类型(xjr_dictionary_item[course_time_type])")
+    private String courseTimeType;
+    /**
+    * 补充课时
+    */
+    @ApiModelProperty("补充课时")
+    private Double courseTime;
+    /**
+    * 上课日期
+    */
+    @ApiModelProperty("上课日期")
+    private LocalDate scheduleDate;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 说明
+    */
+    @ApiModelProperty("说明")
+    private String explains;
+    /**
+    * 补课人员
+    */
+    @ApiModelProperty("补课人员")
+    private String teacherIds;
+    /**
+    * 状态(0:作废 1:生效 2:锁定)
+    */
+    @ApiModelProperty("状态(0:作废 1:生效 2:锁定)")
+    private Integer enabledMark;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    private LocalDateTime createDate;
+    /**
+    * 上传的文件(xjr_file[floder_id])
+    */
+    @ApiModelProperty("上传的文件(xjr_file[floder_id])")
+    private Long fileId;
+
+}

+ 75 - 0
src/main/java/com/xjrsoft/module/teacher/vo/WfTeacherCourseTimeVo.java

@@ -0,0 +1,75 @@
+package com.xjrsoft.module.teacher.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+/**
+* @title: 课时补充表单出参
+* @Author bc
+* @Date: 2025-09-28
+* @Version 1.0
+*/
+@Data
+public class WfTeacherCourseTimeVo {
+
+    /**
+    * 主键
+    */
+    @ApiModelProperty("主键")
+    private Long id;
+    /**
+    * 教师(xjr_user)
+    */
+    @ApiModelProperty("教师(xjr_user)")
+    private Long applyUserId;
+    /**
+    * 部门id(xjr_department)
+    */
+    @ApiModelProperty("部门id(xjr_department)")
+    private Long deptId;
+    /**
+    * 课时类型(xjr_dictionary_item[course_time_type])
+    */
+    @ApiModelProperty("课时类型(xjr_dictionary_item[course_time_type])")
+    private String courseTimeType;
+    /**
+    * 补充课时
+    */
+    @ApiModelProperty("补充课时")
+    private Double courseTime;
+    /**
+    * 上课日期
+    */
+    @ApiModelProperty("上课日期")
+    private LocalDate scheduleDate;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 说明
+    */
+    @ApiModelProperty("说明")
+    private String explains;
+    /**
+    * 补课人员
+    */
+    @ApiModelProperty("补课人员")
+    private String teacherIds;
+    /**
+    * 上传的文件(xjr_file[floder_id])
+    */
+    @ApiModelProperty("上传的文件(xjr_file[floder_id])")
+    private Long fileId;
+
+
+
+}

+ 1 - 0
src/main/resources/mapper/internship/InternshipPlanManageMapper.xml

@@ -64,5 +64,6 @@
                 WHERE delete_mark = 0 AND participant_user_id = #{dto.studentUserId}
             )
         </if>
+        order by t1.create_date desc
     </select>
 </mapper>

+ 25 - 0
src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

@@ -5253,4 +5253,29 @@ public class FreeMarkerGeneratorTest {
 
         apiGeneratorService.generateCodes(params);
     }
+
+    @Test
+    public void gcwf_teacher_course_time() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("wf_teacher_course_time");//init_sql中的表名
+        mainTable.setIsMain(true);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        tableConfigs.add(mainTable);
+
+        ApiGenerateCodesDto params = new ApiGenerateCodesDto();
+        params.setAuthor("bc");//作者名称
+        params.setPackageName("teacher");//包名
+        params.setTableConfigs(tableConfigs);
+        params.setPage(true);//是否生成分页接口
+        params.setImport(false);//是否生成导入接口
+        params.setExport(false);//是否生成导出接口
+        params.setOutMainDir(true);//是否生成在主目录,前期测试可设置成false
+        params.setDs(ds);
+
+        IApiGeneratorService apiGeneratorService = new ApiGeneratorServiceImpl();
+
+        apiGeneratorService.generateCodes(params);
+    }
 }