Browse Source

归属

master
zhizhi wu 4 years ago
parent
commit
f31660b01b
  1. 57
      src/main/java/com/ccsens/yanyuan/api/TrainBelongController.java
  2. 12
      src/main/java/com/ccsens/yanyuan/api/TrainPlanController.java
  3. 12
      src/main/java/com/ccsens/yanyuan/api/TraineeController.java
  4. 40
      src/main/java/com/ccsens/yanyuan/bean/dto/TrainBelongDto.java
  5. 10
      src/main/java/com/ccsens/yanyuan/bean/dto/TrainPlanDto.java
  6. 138
      src/main/java/com/ccsens/yanyuan/bean/dto/message/TalkingPenDto.java
  7. 11
      src/main/java/com/ccsens/yanyuan/bean/po/TrainProcessCard.java
  8. 60
      src/main/java/com/ccsens/yanyuan/bean/po/TrainProcessCardExample.java
  9. 4
      src/main/java/com/ccsens/yanyuan/bean/vo/ToolVo.java
  10. 69
      src/main/java/com/ccsens/yanyuan/bean/vo/TrainBelongVo.java
  11. 15
      src/main/java/com/ccsens/yanyuan/bean/vo/TrainContentVo.java
  12. 18
      src/main/java/com/ccsens/yanyuan/bean/vo/TrainPlanVo.java
  13. 4
      src/main/java/com/ccsens/yanyuan/config/BeanConfig.java
  14. 221
      src/main/java/com/ccsens/yanyuan/mq/TalkingPenReceive.java
  15. 11
      src/main/java/com/ccsens/yanyuan/persist/dao/TrainCardDao.java
  16. 18
      src/main/java/com/ccsens/yanyuan/persist/dao/TrainProcessCardDao.java
  17. 10
      src/main/java/com/ccsens/yanyuan/persist/dao/TrainRecordDao.java
  18. 8
      src/main/java/com/ccsens/yanyuan/persist/dao/UserRelationDao.java
  19. 28
      src/main/java/com/ccsens/yanyuan/service/ITrainBelongService.java
  20. 11
      src/main/java/com/ccsens/yanyuan/service/ITrainPlanService.java
  21. 7
      src/main/java/com/ccsens/yanyuan/service/ITraineeService.java
  22. 103
      src/main/java/com/ccsens/yanyuan/service/TrainBelongService.java
  23. 15
      src/main/java/com/ccsens/yanyuan/service/TrainPlanService.java
  24. 5
      src/main/java/com/ccsens/yanyuan/service/TraineeService.java
  25. 13
      src/main/java/com/ccsens/yanyuan/util/YanYuanConstant.java
  26. 1
      src/main/resources/mapper_dao/ToolDao.xml
  27. 84
      src/main/resources/mapper_dao/TrainCardDao.xml
  28. 30
      src/main/resources/mapper_dao/TrainProcessCardDao.xml
  29. 22
      src/main/resources/mapper_dao/TrainRecordDao.xml
  30. 17
      src/main/resources/mapper_dao/UserRelationDao.xml
  31. 31
      src/main/resources/mapper_raw/TrainProcessCardMapper.xml
  32. 2
      src/main/resources/mbg.xml

57
src/main/java/com/ccsens/yanyuan/api/TrainBelongController.java

@ -0,0 +1,57 @@
package com.ccsens.yanyuan.api;
import com.ccsens.cloudutil.annotation.MustLogin;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.bean.dto.QueryDto;
import com.ccsens.yanyuan.bean.dto.TrainBelongDto;
import com.ccsens.yanyuan.bean.vo.TrainBelongVo;
import com.ccsens.yanyuan.service.ITrainBelongService;
import com.ccsens.yanyuan.util.YanYuanCodeError;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @description:
* @author: whj
* @time: 2021/12/6 9:29
*/
@Api(tags = "训练归属" )
@Slf4j
@RestController
@RequestMapping("/trainBelong")
public class TrainBelongController {
@Resource
private ITrainBelongService trainBelongService;
@MustLogin
@ApiOperation(value = "查询无主的训练过程", notes = "查询无主的训练过程")
@RequestMapping(value = "/queryUnknown", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<TrainBelongVo.Content> queryUnknown(@ApiParam @Validated @RequestBody QueryDto<TrainBelongDto.QueryUnknown> params) {
log.info("查询无主的训练过程:{}",params);
PageInfo<TrainBelongVo.Content> contents = trainBelongService.queryUnknown(params.getParam(), params.getUserId());
log.info("查询无主的训练过程结束{}", contents);
return JsonResponse.newInstance().ok(contents);
}
@MustLogin
@ApiOperation(value = "选择老人", notes = "选择老人")
@RequestMapping(value = "/chooseRecord", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse chooseRecord(@ApiParam @Validated @RequestBody QueryDto<TrainBelongDto.ChooseTrainee> params) {
log.info("选择老人:{}",params);
YanYuanCodeError.Code code = trainBelongService.chooseRecord(params.getParam(), params.getUserId());
log.info("选择老人结束{}");
return JsonResponse.newInstance().ok(code);
}
}

12
src/main/java/com/ccsens/yanyuan/api/TrainPlanController.java

@ -5,11 +5,8 @@ import com.ccsens.util.CodeError;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.bean.dto.QueryDto;
import com.ccsens.yanyuan.bean.dto.TrainPlanDto;
import com.ccsens.yanyuan.bean.dto.TraineeDto;
import com.ccsens.yanyuan.bean.vo.QuestionVo;
import com.ccsens.yanyuan.bean.vo.TaskVo;
import com.ccsens.yanyuan.bean.vo.TrainPlanVo;
import com.ccsens.yanyuan.bean.vo.TraineeVo;
import com.ccsens.yanyuan.service.ITrainPlanService;
import com.ccsens.yanyuan.util.YanYuanCodeError;
import io.swagger.annotations.Api;
@ -67,4 +64,13 @@ public class TrainPlanController {
log.info("修改训练结果结束:{}",code);
return JsonResponse.newInstance().ok(code);
}
@ApiOperation(value = "查询指定日期前后一周的训练计划", notes = "查询指定日期前后一周的训练计划")
@RequestMapping(value = "/queryRecent", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<TrainPlanVo.Simple> queryRecent(@ApiParam @Validated @RequestBody QueryDto<TrainPlanDto.QueryRecent> params) {
log.info("查询指定日期前后一周的训练计划:{}",params);
List<TrainPlanVo.Simple> list = trainPlanService.queryRecent(params.getParam(), params.getUserId());
log.info("查询指定日期前后一周的训练计划结束:{}",list);
return JsonResponse.newInstance().ok(list);
}
}

12
src/main/java/com/ccsens/yanyuan/api/TraineeController.java

@ -104,4 +104,16 @@ public class TraineeController {
log.info("查询用户信息结束: {}",userInfo);
return JsonResponse.newInstance().ok(userInfo);
}
@MustLogin
@ApiOperation(value = "查询所有关联的用户信息", notes = "查询所有关联的用户信息")
@RequestMapping(value = "/queryRelation", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<TraineeVo.UserInfoSimple> queryRelation(@ApiParam @Validated @RequestBody QueryDto params) {
log.info("查询所有关联的用户信息:{}",params);
List<TraineeVo.UserInfoSimple> userInfo = traineeService.queryRelation(params.getUserId());
log.info("查询所有关联的用户信息结束: {}",userInfo);
return JsonResponse.newInstance().ok(userInfo);
}
}

40
src/main/java/com/ccsens/yanyuan/bean/dto/TrainBelongDto.java

@ -0,0 +1,40 @@
package com.ccsens.yanyuan.bean.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
* @description:
* @author: whj
* @time: 2021/12/6 9:50
*/
public class TrainBelongDto {
@Data
@ApiModel("查询无主训练-请求")
public static class QueryUnknown{
@ApiModelProperty("页码")
private Integer pageNum = 1;
@ApiModelProperty("分页大小")
private Integer pageSize = 10;
}
@Data
@ApiModel("选择老人-请求")
public static class ChooseTrainee {
@NotNull
@ApiModelProperty("训练结果id")
private Long trainRecordId;
@Min(0)
@Max(1)
@ApiModelProperty("训练结果类型0:训练结果 1:过程记录")
private byte resultType;
@NotNull
@ApiModelProperty("训练计划ID")
private Long recordId;
}
}

10
src/main/java/com/ccsens/yanyuan/bean/dto/TrainPlanDto.java

@ -42,4 +42,14 @@ public class TrainPlanDto {
@ApiModelProperty("完成状态")
private BigDecimal finishResult;
}
@Data
@ApiModel("修改训练结果-请求")
public static class QueryRecent {
@NotNull
@ApiModelProperty("使用者userID")
private Long keyUserId;
@NotNull
@ApiModelProperty("查询时间")
private Long time;
}
}

138
src/main/java/com/ccsens/yanyuan/bean/dto/message/TalkingPenDto.java

@ -0,0 +1,138 @@
package com.ccsens.yanyuan.bean.dto.message;
import lombok.Data;
/**
* @author
*/
@Data
public class TalkingPenDto {
/**
* 点读笔编号
*/
private String authId;
/**
* 类型
*/
private Byte type;
/**
* 寄存器地址
*/
private int addr;
/**
* 类型对应的值
*/
private Long value;
/**
* 时间
*/
private Long time;
public Byte getType(){
if(this.type != null){
return type;
}
switch (addr){
case Addr.STATUS:
return Type.STATUS;
case Addr.WIFI:
return Type.WIFI;
case Addr.ELECTRIC:
return Type.ELECTRIC;
case Addr.QUESTION:
return Type.QUESTION;
case Addr.INDEX_1:
case Addr.INDEX_2:
return Type.INDEX;
case Addr.PACKAGE:
return Type.PACKAGE;
case Addr.FRAME:
return Type.FRAME;
default:
return Type.PROCESS;
}
}
public static class Type {
/**
* 点读笔状态
*/
public static final byte STATUS = 0;
/**
* 联网状态
*/
public static final byte WIFI = 1;
/**
* 电池电量
*/
public static final byte ELECTRIC = 2;
/**
* 题目查询
*/
public static final byte QUESTION = 3;
/**
* 序号/结果通知oid3普通码
*/
public static final byte INDEX = 4;
/**
* 包序号
*/
public static final byte PACKAGE = 5;
/**
* 帧序号
*/
public static final byte FRAME = 6;
/**
* 过程
*/
public static final byte PROCESS = 7;
}
public static class Addr{
/**
* 点读笔状态
*/
public static final int STATUS = 0;
/**
* 联网状态
*/
public static final int WIFI = 1;
/**
* 电池电量
*/
public static final int ELECTRIC = 2;
/**
* 题目
*/
public static final int QUESTION = 3;
/**
* 语音仅服务端通知点读笔无点读笔通知服务端
*/
public static final int VOICE = 4;
/**
* 序号通知1
*/
public static final int INDEX_1 = 5;
/**
* 序号通知2
*/
public static final int INDEX_2 = 6;
/**
* 包序号
*/
public static final int PACKAGE = 7;
/**
* 帧序号
*/
public static final int FRAME = 8;
/**
* 过程起始坐标时间
*/
public static final int PROCESS_START = 9;
/**
* 过程一组寄存器数量
*/
public static final int PROCESS_NUM = 6;
}
}

11
src/main/java/com/ccsens/yanyuan/bean/po/TrainProcessCard.java

@ -8,6 +8,8 @@ public class TrainProcessCard implements Serializable {
private Long cardId;
private Long operateTime;
private Long operator;
private Date createdAt;
@ -36,6 +38,14 @@ public class TrainProcessCard implements Serializable {
this.cardId = cardId;
}
public Long getOperateTime() {
return operateTime;
}
public void setOperateTime(Long operateTime) {
this.operateTime = operateTime;
}
public Long getOperator() {
return operator;
}
@ -84,6 +94,7 @@ public class TrainProcessCard implements Serializable {
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", cardId=").append(cardId);
sb.append(", operateTime=").append(operateTime);
sb.append(", operator=").append(operator);
sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt);

60
src/main/java/com/ccsens/yanyuan/bean/po/TrainProcessCardExample.java

@ -225,6 +225,66 @@ public class TrainProcessCardExample {
return (Criteria) this;
}
public Criteria andOperateTimeIsNull() {
addCriterion("operate_time is null");
return (Criteria) this;
}
public Criteria andOperateTimeIsNotNull() {
addCriterion("operate_time is not null");
return (Criteria) this;
}
public Criteria andOperateTimeEqualTo(Long value) {
addCriterion("operate_time =", value, "operateTime");
return (Criteria) this;
}
public Criteria andOperateTimeNotEqualTo(Long value) {
addCriterion("operate_time <>", value, "operateTime");
return (Criteria) this;
}
public Criteria andOperateTimeGreaterThan(Long value) {
addCriterion("operate_time >", value, "operateTime");
return (Criteria) this;
}
public Criteria andOperateTimeGreaterThanOrEqualTo(Long value) {
addCriterion("operate_time >=", value, "operateTime");
return (Criteria) this;
}
public Criteria andOperateTimeLessThan(Long value) {
addCriterion("operate_time <", value, "operateTime");
return (Criteria) this;
}
public Criteria andOperateTimeLessThanOrEqualTo(Long value) {
addCriterion("operate_time <=", value, "operateTime");
return (Criteria) this;
}
public Criteria andOperateTimeIn(List<Long> values) {
addCriterion("operate_time in", values, "operateTime");
return (Criteria) this;
}
public Criteria andOperateTimeNotIn(List<Long> values) {
addCriterion("operate_time not in", values, "operateTime");
return (Criteria) this;
}
public Criteria andOperateTimeBetween(Long value1, Long value2) {
addCriterion("operate_time between", value1, value2, "operateTime");
return (Criteria) this;
}
public Criteria andOperateTimeNotBetween(Long value1, Long value2) {
addCriterion("operate_time not between", value1, value2, "operateTime");
return (Criteria) this;
}
public Criteria andOperatorIsNull() {
addCriterion("operator is null");
return (Criteria) this;

4
src/main/java/com/ccsens/yanyuan/bean/vo/ToolVo.java

@ -56,8 +56,8 @@ public class ToolVo {
private Long equipmentId;
@ApiModelProperty("工具箱码")
private String code;
@ApiModelProperty("wifi名称")
private String wifiName;
// @ApiModelProperty("wifi名称")
// private String wifiName;
@ApiModelProperty("wifi状态(0未设置,1wifi未连接,2wifi已连接)")
private Byte wifiStatus;
@ApiModelProperty("电量")

69
src/main/java/com/ccsens/yanyuan/bean/vo/TrainBelongVo.java

@ -0,0 +1,69 @@
package com.ccsens.yanyuan.bean.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @description:
* @author: whj
* @time: 2021/12/6 9:49
*/
public class TrainBelongVo {
@Data
@ApiModel("无主训练内容-返回")
public static class Content{
@ApiModelProperty("结果id")
private Long trainRecordId;
@ApiModelProperty("训练结果类型0:训练结果 1:过程记录")
private byte resultType;
@ApiModelProperty("操作时间")
private Date createTime;
@ApiModelProperty("点读笔ID")
private Long equipmentId;
@ApiModelProperty("工具箱ID")
private Long toolId;
@ApiModelProperty("工具箱码")
private String toolCode;
// 结果
@ApiModelProperty("训练结果 0:非常困难 1:略有困难 2:轻松完成")
private BigDecimal finishResult;
@ApiModelProperty("训练完成时间 单位:秒")
private Long finishTime;
// 记录
@ApiModelProperty("卡片ID")
private Long assistId;
@ApiModelProperty("卡片类型 0:迷宫 1:找不同")
private byte cardType;
@ApiModelProperty("卡片路径")
private String cardUrl;
@ApiModelProperty("过程记录")
private List<Line> lines;
}
@Data
@ApiModel("记录点")
public static class Line{
@ApiModelProperty("线中有多个点,不同点之间使用;分割,点信息:x,y,time")
private String line;
@ApiModelProperty("操作时间")
private Long operateTime;
}
@Data
@ApiModel("记录和线条")
public static class RecordLine{
@ApiModelProperty("结果id")
private Long trainRecordId;
@ApiModelProperty("记录")
private List<Line> lines;
}
}

15
src/main/java/com/ccsens/yanyuan/bean/vo/TrainContentVo.java

@ -3,6 +3,7 @@ package com.ccsens.yanyuan.bean.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
@ -76,6 +77,7 @@ public class TrainContentVo {
@ApiModelProperty("时间")
private Date createdAt;
}
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel("训练结果")
public static class TrainResult extends TrainRecord {
@ -84,6 +86,7 @@ public class TrainContentVo {
@ApiModelProperty("训练完成时间 单位:秒")
private Long finishTime;
}
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel("训练过程")
public static class TrainCard extends TrainRecord {
@ -97,10 +100,18 @@ public class TrainContentVo {
private Long assistId;
@ApiModelProperty("卡片路径")
private String cardUrl;
@ApiModelProperty("过程记录,其中,一条数据为一条线,线中有多个点,不同点之间使用;分割,点信息:x,y,time")
private List<String> lines;
@ApiModelProperty("过程记录")
private List<Line> lines;
}
@Data
@ApiModel("线条")
public static class Line{
@ApiModelProperty("线中有多个点,不同点之间使用;分割,点信息:x,y,time")
private String line;
@ApiModelProperty("操作时间")
private Long operateTime;
}
@Data
@ApiModel("训练的详细内容")

18
src/main/java/com/ccsens/yanyuan/bean/vo/TrainPlanVo.java

@ -1,11 +1,27 @@
package com.ccsens.yanyuan.bean.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: whj
* @time: 2021/11/18 9:01
*/
public class TrainPlanVo {
public static class Detail {
@Data
@ApiModel("简单训练计划-返回")
public static class Simple {
@ApiModelProperty("训练计划ID")
private Long recordId;
@ApiModelProperty("训练题目")
private String content;
@ApiModelProperty("训练等级 训练内容是几星级")
private byte level;
@ApiModelProperty("训练计划时间")
private Long startTime;
}
}

4
src/main/java/com/ccsens/yanyuan/config/BeanConfig.java

@ -31,4 +31,8 @@ public class BeanConfig {
public Queue queueMentalTestAll(){
return new Queue(YanYuanConstant.Mq.MENTAL_TEST_ALL);
}
@Bean
public Queue talkingPen(){
return new Queue(YanYuanConstant.Mq.TALKING_PEN);
}
}

221
src/main/java/com/ccsens/yanyuan/mq/TalkingPenReceive.java

@ -0,0 +1,221 @@
package com.ccsens.yanyuan.mq;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.ccsens.util.bean.message.common.OutMessage;
import com.ccsens.util.bean.message.common.OutMessageSet;
import com.ccsens.yanyuan.bean.dto.message.TalkingPenDto;
import com.ccsens.yanyuan.bean.vo.TraineeVo;
import com.ccsens.yanyuan.persist.mapper.TrainEquipmentMapper;
import com.ccsens.yanyuan.util.YanYuanConstant;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.*;
/**
* @description:
* @author: whj
* @time: 2021/12/2 10:38
*/
@Slf4j
@Component
@RabbitListener(queues = YanYuanConstant.Mq.TALKING_PEN)
public class TalkingPenReceive {
@Resource
private TrainEquipmentMapper trainEquipmentMapper;
@RabbitHandler
public void process(String messageJson){
log.info("接收到消息系统点读笔相关的消息:{}", messageJson);
OutMessageSet outMessageSet = JSONObject.parseObject(messageJson, OutMessageSet.class);
if (ObjectUtil.isNull(outMessageSet)) {
return;
}
Set<OutMessage> messageSet = outMessageSet.getMessageSet();
if (CollectionUtil.isEmpty(messageSet)) {
return;
}
// 计算并分类
Map<Byte, List<TalkingPenDto>> messageMap = dealMessage(messageSet);
// 根据类型处理数据
for (Byte type: messageMap.keySet()) {
switch (type) {
case TalkingPenDto.Type.STATUS:
dealStatus(messageMap.get(type).get(0));
break;
case TalkingPenDto.Type.WIFI:
dealWifi(messageMap.get(type).get(0));
break;
case TalkingPenDto.Type.ELECTRIC:
dealElectric(messageMap.get(type).get(0));
break;
case TalkingPenDto.Type.QUESTION:
dealQuestion(messageMap.get(type).get(0));
break;
default:
break;
}
}
// 处理过程通知
log.info("点读笔消息处理完成");
}
/**
* 处理查询试题
* @param talkingPen 试题
*/
private void dealQuestion(TalkingPenDto talkingPen) {
// 查找使用者
}
/**
* 处理电量状态
* @param talkingPenDto 电量状态
*/
private void dealElectric(TalkingPenDto talkingPenDto) {
}
/**
* 处理wifi
* @param talkingPen wifi
*/
private void dealWifi(TalkingPenDto talkingPen) {
}
/**
* 处理点读笔状态
* @param talkingPen 状态
*/
private void dealStatus(TalkingPenDto talkingPen) {
}
/**
* 计算寄存器的值并按照类型分类
* @param messageSet 原始数据
* @return map key:类型 value:类型数据对应的数组
*/
private Map<Byte, List<TalkingPenDto>> dealMessage(Set<OutMessage> messageSet) {
Map<Byte, List<TalkingPenDto>> penMessages = new HashMap<>(16);
Map<Integer, ValueUse> penMap = new HashMap<>(messageSet.size());
messageSet.forEach(set -> {
TalkingPenDto dto = JSONObject.parseObject(set.getData(), TalkingPenDto.class);
penMap.put(dto.getAddr(), new ValueUse(dto));
});
for (Integer addr: penMap.keySet()) {
ValueUse valueUse = penMap.get(addr);
// 数据已经处理
if (valueUse.used) {
continue;
}
// 根据类型,计算对应的值
TalkingPenDto talkingPen = valueUse.talkingPen;
Byte type = talkingPen.getType();
List<TalkingPenDto> pens = penMessages.getOrDefault(type, new ArrayList<>());
switch (type) {
case TalkingPenDto.Type.STATUS:
case TalkingPenDto.Type.WIFI:
case TalkingPenDto.Type.ELECTRIC:
case TalkingPenDto.Type.QUESTION:
case TalkingPenDto.Type.PACKAGE:
case TalkingPenDto.Type.FRAME:
pens.add(talkingPen);
penMessages.put(type, pens);
break;
case TalkingPenDto.Type.INDEX:
getIndex(penMap, talkingPen);
pens.add(talkingPen);
penMessages.put(type, pens);
break;
case TalkingPenDto.Type.PROCESS:
getProcess(penMap, talkingPen);
pens.add(talkingPen);
penMessages.put(type, pens);
break;
default:
break;
}
}
return penMessages;
}
/**
* 计算画图过程的值
* @param penMap 全部寄存器
* @param talkingPen 某个过程寄存器
*/
private void getProcess(Map<Integer, ValueUse> penMap, TalkingPenDto talkingPen) {
int addr = talkingPen.getAddr();
int position = (addr - TalkingPenDto.Addr.PROCESS_START) % TalkingPenDto.Addr.PROCESS_NUM;
TalkingPenDto high;
TalkingPenDto low;
switch (position) {
case 0:
case 2:
case 4:
high = talkingPen;
low = penMap.get(addr + 1).talkingPen;
break;
default:
high = penMap.get(addr + 1).talkingPen;
low = talkingPen;
break;
}
// 计算序号或结果值
long value = high.getValue() << YanYuanConstant.Equipment.REGISTER_BIT | low.getValue();
talkingPen.setValue(value);
penMap.get(high.getAddr()).used = true;
penMap.get(low.getAddr()).used = true;
}
/**
* 计算序号的值
* @param penMap 所有的寄存器
* @param index 当前寄存器
*/
private void getIndex(Map<Integer, ValueUse> penMap, TalkingPenDto index) {
int addr = index.getAddr();
// 获取序号高位和低位的值
TalkingPenDto high;
TalkingPenDto low;
if (addr == TalkingPenDto.Addr.INDEX_1) {
high = index;
low = penMap.get(TalkingPenDto.Addr.INDEX_2).talkingPen;
} else {
high = penMap.get(TalkingPenDto.Addr.INDEX_1).talkingPen;
low = index;
}
// 计算序号或结果值
long value = high.getValue() << YanYuanConstant.Equipment.REGISTER_BIT | low.getValue();
index.setValue(value);
penMap.get(high.getAddr()).used = true;
penMap.get(low.getAddr()).used = true;
}
public static class ValueUse{
TalkingPenDto talkingPen;
boolean used = false;
public ValueUse(){}
public ValueUse(TalkingPenDto talkingPen){
this();
this.talkingPen = talkingPen;
}
}
}

11
src/main/java/com/ccsens/yanyuan/persist/dao/TrainCardDao.java

@ -1,6 +1,8 @@
package com.ccsens.yanyuan.persist.dao;
import com.ccsens.yanyuan.bean.vo.TrainBelongVo;
import com.ccsens.yanyuan.bean.vo.TrainContentVo;
import com.ccsens.yanyuan.persist.mapper.TrainCardMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -8,7 +10,7 @@ import java.util.List;
/**
* @author whj
*/
public interface TrainCardDao {
public interface TrainCardDao extends TrainCardMapper {
/**
* 查询记录
@ -16,4 +18,11 @@ public interface TrainCardDao {
* @return 训练记录
*/
List<TrainContentVo.TrainCard> queryByRecord(@Param("recordId") Long recordId);
/**
* 查询用户关联的不知道归属的记录
* @param userId 用户
* @return 训练记录
*/
List<TrainBelongVo.Content> queryUnknown(@Param("userId") Long userId);
}

18
src/main/java/com/ccsens/yanyuan/persist/dao/TrainProcessCardDao.java

@ -0,0 +1,18 @@
package com.ccsens.yanyuan.persist.dao;
import com.ccsens.yanyuan.bean.vo.TrainBelongVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author whj
*/
public interface TrainProcessCardDao {
/**
* 查询线条
* @param recordIds 点读笔卡片ID
* @return
*/
List<TrainBelongVo.RecordLine> queryLines(@Param("recordIds") List<Long> recordIds);
}

10
src/main/java/com/ccsens/yanyuan/persist/dao/TrainRecordDao.java

@ -2,6 +2,7 @@ package com.ccsens.yanyuan.persist.dao;
import com.ccsens.yanyuan.bean.po.TrainRecord;
import com.ccsens.yanyuan.bean.vo.TaskVo;
import com.ccsens.yanyuan.bean.vo.TrainPlanVo;
import com.ccsens.yanyuan.persist.mapper.TrainRecordMapper;
import org.apache.ibatis.annotations.Param;
@ -30,4 +31,13 @@ public interface TrainRecordDao extends TrainRecordMapper {
* @return 训练计划内容
*/
TaskVo.Train queryById(@Param("recordId") Long recordId);
/**
* 查询训练计划
* @param keyUserId 使用者
* @param startTime 开始时间包含
* @param endTime 结束时间不包含
* @return 训练计划
*/
List<TrainPlanVo.Simple> query(@Param("keyUserId") Long keyUserId, @Param("startTime") long startTime, @Param("endTime") long endTime);
}

8
src/main/java/com/ccsens/yanyuan/persist/dao/UserRelationDao.java

@ -1,6 +1,7 @@
package com.ccsens.yanyuan.persist.dao;
import com.ccsens.yanyuan.bean.vo.ToolVo;
import com.ccsens.yanyuan.bean.vo.TraineeVo;
import com.ccsens.yanyuan.persist.mapper.UserRelationMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@ -40,4 +41,11 @@ public interface UserRelationDao extends UserRelationMapper {
* @return 关联的老人数量
*/
Integer queryPersonNumber(@Param("userId") Long userId);
/**
* 查询用户关联的使用者信息
* @param userId 用户
* @return 使用者
*/
List<TraineeVo.UserInfoSimple> queryRelation(@Param("userId") Long userId);
}

28
src/main/java/com/ccsens/yanyuan/service/ITrainBelongService.java

@ -0,0 +1,28 @@
package com.ccsens.yanyuan.service;
import com.ccsens.util.CodeError;
import com.ccsens.yanyuan.bean.dto.TrainBelongDto;
import com.ccsens.yanyuan.bean.vo.TrainBelongVo;
import com.github.pagehelper.PageInfo;
/**
* @author whj
*/
public interface ITrainBelongService {
/**
* 查询没有归属的记录
* @param param 分页
* @param userId 用户ID
* @return 归属
*/
PageInfo<TrainBelongVo.Content> queryUnknown(TrainBelongDto.QueryUnknown param, Long userId);
/**
* 选择训练计划
* @param param 训练结果和训练计划
* @param userId 操作者ID
* @return 选择结果
*/
CodeError.Code chooseRecord(TrainBelongDto.ChooseTrainee param, Long userId);
}

11
src/main/java/com/ccsens/yanyuan/service/ITrainPlanService.java

@ -3,8 +3,11 @@ package com.ccsens.yanyuan.service;
import com.ccsens.util.CodeError;
import com.ccsens.yanyuan.bean.dto.TrainPlanDto;
import com.ccsens.yanyuan.bean.vo.TaskVo;
import com.ccsens.yanyuan.bean.vo.TrainPlanVo;
import com.ccsens.yanyuan.util.YanYuanCodeError;
import java.util.List;
/**
* @author whj
*/
@ -40,4 +43,12 @@ public interface ITrainPlanService {
* @return 成功/失败
*/
CodeError.Code updateResult(TrainPlanDto.TrainResult param, Long userId);
/**
* 查询指定日期前后一周的训练计划
* @param param 使用者和时间
* @param userId 操作者ID
* @return 训练计划
*/
List<TrainPlanVo.Simple> queryRecent(TrainPlanDto.QueryRecent param, Long userId);
}

7
src/main/java/com/ccsens/yanyuan/service/ITraineeService.java

@ -65,4 +65,11 @@ public interface ITraineeService {
* @return 使用者信息
*/
TraineeVo.UserInfo query(TraineeDto.QueryUserInfo param, Long userId);
/**
* 查询所有关联的用户信息
* @param userId 用户
* @return 关联老人
*/
List<TraineeVo.UserInfoSimple> queryRelation(Long userId);
}

103
src/main/java/com/ccsens/yanyuan/service/TrainBelongService.java

@ -0,0 +1,103 @@
package com.ccsens.yanyuan.service;
import cn.hutool.core.collection.CollectionUtil;
import com.ccsens.util.CodeError;
import com.ccsens.yanyuan.bean.dto.TrainBelongDto;
import com.ccsens.yanyuan.bean.po.TrainCard;
import com.ccsens.yanyuan.bean.po.TrainProcessCard;
import com.ccsens.yanyuan.bean.po.TrainRecord;
import com.ccsens.yanyuan.bean.po.TrainResult;
import com.ccsens.yanyuan.bean.vo.TrainBelongVo;
import com.ccsens.yanyuan.persist.dao.TrainCardDao;
import com.ccsens.yanyuan.persist.dao.TrainProcessCardDao;
import com.ccsens.yanyuan.persist.dao.TrainRecordDao;
import com.ccsens.yanyuan.persist.dao.TrainResultDao;
import com.ccsens.yanyuan.util.YanYuanCodeError;
import com.ccsens.yanyuan.util.YanYuanConstant;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @description:
* @author: whj
* @time: 2021/12/6 9:47
*/
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class TrainBelongService implements ITrainBelongService {
@Resource
private TrainCardDao trainCardDao;
@Resource
private TrainProcessCardDao trainProcessCardDao;
@Resource
private TrainRecordDao trainRecordDao;
@Resource
private TrainResultDao trainResultDao;
@Override
public PageInfo<TrainBelongVo.Content> queryUnknown(TrainBelongDto.QueryUnknown param, Long userId) {
PageHelper.startPage(param.getPageNum(), param.getPageSize());
List<TrainBelongVo.Content> list = trainCardDao.queryUnknown(userId);
if (CollectionUtil.isEmpty(list)) {
return new PageInfo<>(list);
}
// 查询迷宫和找不同对应的过程记录
List<Long> lineIds = new ArrayList<>();
Map<Long, TrainBelongVo.Content> lineMap = new HashMap<>();
list.forEach(content -> {
// 训练结果,不处理
if (content.getResultType() == YanYuanConstant.Train.RECORD_RESULT) {
return;
}
lineIds.add(content.getTrainRecordId());
lineMap.put(content.getTrainRecordId(), content);
});
if (CollectionUtil.isEmpty(lineIds)) {
return new PageInfo<>(list);
}
log.info("查询过程点");
List<TrainBelongVo.RecordLine> lines = trainProcessCardDao.queryLines(lineIds);
if (CollectionUtil.isNotEmpty(lines)) {
lines.forEach(line -> lineMap.get(line.getTrainRecordId()).setLines(line.getLines()));
}
return new PageInfo<>(list);
}
@Override
public CodeError.Code chooseRecord(TrainBelongDto.ChooseTrainee param, Long userId) {
// 校验训练计划存在
TrainRecord record = trainRecordDao.selectByPrimaryKey(param.getRecordId());
if (record == null) {
return YanYuanCodeError.PARAM_ERROR;
}
if (param.getResultType() == YanYuanConstant.Train.RECORD_RESULT) {
// 训练结果
TrainResult result = new TrainResult();
result.setId(param.getTrainRecordId());
result.setRecordId(param.getRecordId());
result.setOperator(userId);
trainResultDao.updateByPrimaryKeySelective(result);
} else {
// 训练计划
TrainCard card = new TrainCard();
card.setId(param.getTrainRecordId());
card.setRecordId(param.getRecordId());
card.setOperator(userId);
trainCardDao.updateByPrimaryKeySelective(card);
}
return YanYuanCodeError.SUCCESS;
}
}

15
src/main/java/com/ccsens/yanyuan/service/TrainPlanService.java

@ -1,13 +1,16 @@
package com.ccsens.yanyuan.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.util.CodeError;
import com.ccsens.util.DateUtil;
import com.ccsens.yanyuan.bean.dto.TrainPlanDto;
import com.ccsens.yanyuan.bean.po.*;
import com.ccsens.yanyuan.bean.vo.TaskVo;
import com.ccsens.yanyuan.bean.vo.TrainContentVo;
import com.ccsens.yanyuan.bean.vo.TrainPlanVo;
import com.ccsens.yanyuan.persist.dao.*;
import com.ccsens.yanyuan.persist.mapper.ToolEquipmentMapper;
import com.ccsens.yanyuan.persist.mapper.TrainEquipmentMapper;
@ -19,7 +22,9 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -126,4 +131,14 @@ public class TrainPlanService implements ITrainPlanService {
trainResultDao.updateByPrimaryKeySelective(trainResult);
return CodeError.SUCCESS;
}
@Override
public List<TrainPlanVo.Simple> queryRecent(TrainPlanDto.QueryRecent param, Long userId) {
Date date = new Date();
date.setTime(param.getTime());
long time = DateUtil.beginOfDay(date).getTime();
long halfPeriod = YanYuanConstant.MentalTest.PERIOD / 2 * YanYuanConstant.DAY_TIME;
return trainRecordDao.query(param.getKeyUserId(), time - halfPeriod, time + halfPeriod);
}
}

5
src/main/java/com/ccsens/yanyuan/service/TraineeService.java

@ -206,6 +206,11 @@ public class TraineeService implements ITraineeService {
return userInfo;
}
@Override
public List<TraineeVo.UserInfoSimple> queryRelation(Long userId) {
return userRelationDao.queryRelation(userId);
}
/**
* 生成脑力测评
* @param userId 操作者

13
src/main/java/com/ccsens/yanyuan/util/YanYuanConstant.java

@ -25,6 +25,10 @@ public class YanYuanConstant {
/**一天的毫秒数*/
public static final long DAY_TIME = 24 * 3600 * 1000;
public static class Equipment{
public final static byte REGISTER_BIT = 16;
}
public static class Zarit{
public final static String STATE_CREATE = "create";
public final static String STATE_FINISH = "finish";
@ -33,6 +37,7 @@ public class YanYuanConstant {
public static class Mq{
public final static String MENTAL_TEST_ALL = "mentalTestAll";
public final static String MENTAL_TEST_SINGLE = "mentalTestSingle";
public final static String TALKING_PEN = "talking_pen_mq";
}
public static class Question{
@ -44,6 +49,14 @@ public class YanYuanConstant {
public static class Train{
public final static byte TYPE_TRAIN = 0;
public final static byte TYPE_RELAX = 1;
/**
* 记录结果
*/
public final static byte RECORD_RESULT = 0;
/**
* 记录过程
*/
public final static byte RECORD_PROCESS = 1;

1
src/main/resources/mapper_dao/ToolDao.xml

@ -19,7 +19,6 @@
<select id="queryToolList" resultType="com.ccsens.yanyuan.bean.vo.ToolVo$ToolInfo">
SELECT
t.`code`,
te.wifi_name,
te.wifi_status,
te.electric_quantity,
te.equipment_status,

84
src/main/resources/mapper_dao/TrainCardDao.xml

@ -11,14 +11,15 @@
<result column="toolCode" property="toolCode"/>
<result column="assistId" property="assistId"/>
<result column="cardUrl" property="cardUrl"/>
<collection property="lines" ofType="String">
<result column="points"/>
<collection property="lines" ofType="com.ccsens.yanyuan.bean.vo.TrainContentVo$Line">
<result column="points" property="line"/>
<result column="operate_time" property="operateTime"/>
</collection>
</resultMap>
<select id="queryByRecord" resultMap="trainCard">
select c.id as trainRecordId,c.created_at AS createdAt, 1 as resultType, c.equipment_id as equipmentId,
t.id as toolId, t.`code` as toolCode, c.assist_id as assistId, tc.url as cardUrl,pc.id as pcId, pc.points
t.id as toolId, t.`code` as toolCode, c.assist_id as assistId, tc.url as cardUrl,pc.id as pcId, pc.points, pc.operate_time
from u_train_card c
left join t_tool_equipment e on c.equipment_id = e.id and e.rec_status = 0
left join t_tool t on e.tool_id = t.id and t.rec_status = 0
@ -26,4 +27,81 @@
left join u_train_process_card pc on c.id = pc.card_id and pc.rec_status = 0
where c.record_id = #{recordId} and c.rec_status = 0
</select>
<select id="queryUnknown" resultType="com.ccsens.yanyuan.bean.vo.TrainBelongVo$Content">
select * from
(SELECT
u.id AS trainRecordId,
0 AS resultType,
created_at AS createTime,
t.equipmentId,
t.toolId,
t.toolCode,
u.finish_result AS finishResult,
u.finish_time AS finishTime,
NULL AS assistId,
NULL AS cardType,
NULL AS cardUrl
FROM
(
SELECT
t.id AS toolId,
e.id AS equipmentId,
t.`code` AS toolCode
FROM
u_user_scan_tool st,
t_tool t,
t_tool_equipment e
WHERE
st.tool_id = e.tool_id
AND st.tool_id = t.id
AND st.user_id = #{userId}
AND st.rec_status = 0
AND t.rec_status = 0
AND e.rec_status = 0
) t,
u_train_result u
WHERE
t.equipmentId = u.equipment_id
AND u.record_id = 0
AND u.rec_status = 0 UNION
SELECT
c.id AS trainRecordId,
1 AS resultType,
c.created_at AS createTime,
t.equipmentId,
t.toolId,
t.toolCode,
NULL AS finishResult,
NULL AS finishTime,
tc.id AS assistId,
tc.type AS cardType,
tc.url AS cardUrl
FROM
(
SELECT
t.id AS toolId,
e.id AS equipmentId,
t.`code` AS toolCode
FROM
u_user_scan_tool st,
t_tool t,
t_tool_equipment e
WHERE
st.tool_id = e.tool_id
AND st.tool_id = t.id
AND st.user_id = #{userId}
AND st.rec_status = 0
AND t.rec_status = 0
AND e.rec_status = 0
) t,
u_train_card c,
t_tool_card tc
WHERE
t.equipmentId = c.equipment_id
AND c.assist_id = tc.id
AND c.record_id = 0
AND c.rec_status = 0
AND tc.rec_status = 0) t
order by createTime desc, trainRecordId desc
</select>
</mapper>

30
src/main/resources/mapper_dao/TrainProcessCardDao.xml

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccsens.yanyuan.persist.dao.TrainProcessCardDao">
<resultMap id="recordLineMap" type="com.ccsens.yanyuan.bean.vo.TrainBelongVo$RecordLine">
<id column="card_id" property="trainRecordId"/>
<collection property="lines" ofType="com.ccsens.yanyuan.bean.vo.TrainBelongVo$Line">
<id column="id"/>
<result property="line" column="points"/>
<result property="operateTime" column="operate_time"/>
</collection>
</resultMap>
<select id="queryLines" resultMap="recordLineMap">
SELECT
card_id,
operate_time,
points
FROM
u_train_process_card
WHERE
card_id IN
<foreach collection="recordIds" item="cardId" separator="," open="(" close=")">
#{cardId}
</foreach>
and rec_status = 0
ORDER BY
card_id,
operate_time
</select>
</mapper>

22
src/main/resources/mapper_dao/TrainRecordDao.xml

@ -30,4 +30,26 @@
group by r.id
limit 1
</select>
<select id="query" resultType="com.ccsens.yanyuan.bean.vo.TrainPlanVo$Simple">
SELECT
r.id AS recordId,
c.content,
c.`level`,
r.start_time AS startTime
FROM
u_train_record r,
u_mental_test t,
t_train_content c
WHERE
r.key_test_id = t.key_id
AND r.question_id = c.id
AND t.key_user_id = #{keyUserId}
AND r.start_time &gt;= #{startTime}
AND r.start_time &lt; #{endTime}
AND r.rec_status = 0
AND t.rec_status = 0
AND c.rec_status = 0
ORDER BY
r.start_time
</select>
</mapper>

17
src/main/resources/mapper_dao/UserRelationDao.xml

@ -59,4 +59,21 @@
AND
user_id = #{userId}
</select>
<select id="queryRelation" resultType="com.ccsens.yanyuan.bean.vo.TraineeVo$UserInfoSimple">
SELECT
u.key_id AS keyUserId,
u.user_name AS userName,
u.sex
FROM
u_user_relation r,
u_user u
WHERE
r.key_user_id = u.key_id
AND r.user_id = #{userId}
AND r.audit_status = 1
AND r.rec_status = 0
AND u.rec_status = 0
group by u.key_id
order by u.key_id
</select>
</mapper>

31
src/main/resources/mapper_raw/TrainProcessCardMapper.xml

@ -4,6 +4,7 @@
<resultMap id="BaseResultMap" type="com.ccsens.yanyuan.bean.po.TrainProcessCard">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="card_id" jdbcType="BIGINT" property="cardId" />
<result column="operate_time" jdbcType="BIGINT" property="operateTime" />
<result column="operator" jdbcType="BIGINT" property="operator" />
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
@ -71,7 +72,7 @@
</where>
</sql>
<sql id="Base_Column_List">
id, card_id, operator, created_at, updated_at, rec_status
id, card_id, operate_time, operator, created_at, updated_at, rec_status
</sql>
<sql id="Blob_Column_List">
points
@ -125,12 +126,12 @@
</if>
</delete>
<insert id="insert" parameterType="com.ccsens.yanyuan.bean.po.TrainProcessCard">
insert into u_train_process_card (id, card_id, operator,
created_at, updated_at, rec_status,
points)
values (#{id,jdbcType=BIGINT}, #{cardId,jdbcType=BIGINT}, #{operator,jdbcType=BIGINT},
#{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT},
#{points,jdbcType=LONGVARCHAR})
insert into u_train_process_card (id, card_id, operate_time,
operator, created_at, updated_at,
rec_status, points)
values (#{id,jdbcType=BIGINT}, #{cardId,jdbcType=BIGINT}, #{operateTime,jdbcType=BIGINT},
#{operator,jdbcType=BIGINT}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP},
#{recStatus,jdbcType=TINYINT}, #{points,jdbcType=LONGVARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.ccsens.yanyuan.bean.po.TrainProcessCard">
insert into u_train_process_card
@ -141,6 +142,9 @@
<if test="cardId != null">
card_id,
</if>
<if test="operateTime != null">
operate_time,
</if>
<if test="operator != null">
operator,
</if>
@ -164,6 +168,9 @@
<if test="cardId != null">
#{cardId,jdbcType=BIGINT},
</if>
<if test="operateTime != null">
#{operateTime,jdbcType=BIGINT},
</if>
<if test="operator != null">
#{operator,jdbcType=BIGINT},
</if>
@ -196,6 +203,9 @@
<if test="record.cardId != null">
card_id = #{record.cardId,jdbcType=BIGINT},
</if>
<if test="record.operateTime != null">
operate_time = #{record.operateTime,jdbcType=BIGINT},
</if>
<if test="record.operator != null">
operator = #{record.operator,jdbcType=BIGINT},
</if>
@ -220,6 +230,7 @@
update u_train_process_card
set id = #{record.id,jdbcType=BIGINT},
card_id = #{record.cardId,jdbcType=BIGINT},
operate_time = #{record.operateTime,jdbcType=BIGINT},
operator = #{record.operator,jdbcType=BIGINT},
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
@ -233,6 +244,7 @@
update u_train_process_card
set id = #{record.id,jdbcType=BIGINT},
card_id = #{record.cardId,jdbcType=BIGINT},
operate_time = #{record.operateTime,jdbcType=BIGINT},
operator = #{record.operator,jdbcType=BIGINT},
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
@ -247,6 +259,9 @@
<if test="cardId != null">
card_id = #{cardId,jdbcType=BIGINT},
</if>
<if test="operateTime != null">
operate_time = #{operateTime,jdbcType=BIGINT},
</if>
<if test="operator != null">
operator = #{operator,jdbcType=BIGINT},
</if>
@ -268,6 +283,7 @@
<update id="updateByPrimaryKeyWithBLOBs" parameterType="com.ccsens.yanyuan.bean.po.TrainProcessCard">
update u_train_process_card
set card_id = #{cardId,jdbcType=BIGINT},
operate_time = #{operateTime,jdbcType=BIGINT},
operator = #{operator,jdbcType=BIGINT},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
@ -278,6 +294,7 @@
<update id="updateByPrimaryKey" parameterType="com.ccsens.yanyuan.bean.po.TrainProcessCard">
update u_train_process_card
set card_id = #{cardId,jdbcType=BIGINT},
operate_time = #{operateTime,jdbcType=BIGINT},
operator = #{operator,jdbcType=BIGINT},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},

2
src/main/resources/mbg.xml

@ -55,7 +55,7 @@
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<table tableName="u_follow_up" domainObjectName="FollowUp"></table>
<table tableName="u_train_process_card" domainObjectName="TrainProcessCard"></table>
<!-- <table tableName="u_mental_test" domainObjectName="MentalTest"></table>-->
<!-- <table tableName="u_mental_test" domainObjectName="MentalTest"></table>-->
<!--<table tableName="s_config" domainObjectName="Config"></table>

Loading…
Cancel
Save