fix: 慢性病管理自测问题修复。

This commit is contained in:
tianyongbao
2026-03-21 10:51:35 +08:00
parent 191f6e1caf
commit 8821e01422
20 changed files with 140 additions and 101 deletions

View File

@@ -145,6 +145,12 @@
<artifactId>mybatis-plus-extension</artifactId>
<version>3.5.5</version>
</dependency>
<!-- PostgreSQL JDBC Driver -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

View File

@@ -58,10 +58,10 @@ public class ChronicDiseaseRecordController extends BaseController
*/
@ApiOperation(value = "根据成员ID查询慢性疾病档案列表", response = ChronicDiseaseRecordVo.class)
@RequiresPermissions("health:chronicDisease:list")
@GetMapping("/listByMember/{memberId}")
public AjaxResult listByMember(@PathVariable("memberId") Long memberId)
@GetMapping({"/listByPerson/{personId}", "/listByMember/{personId}"})
public AjaxResult listByMember(@PathVariable("personId") Long personId)
{
List<ChronicDiseaseRecordVo> list = chronicDiseaseRecordService.selectChronicDiseaseRecordByMemberId(memberId);
List<ChronicDiseaseRecordVo> list = chronicDiseaseRecordService.selectChronicDiseaseRecordByMemberId(personId);
return success(list);
}

View File

@@ -21,7 +21,7 @@ import java.util.Map;
* @date 2026-03-19
*/
@RestController
@RequestMapping("/health/adherence")
@RequestMapping("/adherence")
@Api(tags = "依从性统计")
public class MedicationAdherenceController {
@@ -31,52 +31,52 @@ public class MedicationAdherenceController {
@GetMapping("/overall")
@ApiOperation("获取总体依从性统计")
public AjaxResult getOverallAdherence(
@RequestParam(required = false) Long memberId,
@RequestParam(required = false) Long personId,
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate) {
MedicationAdherenceVo vo = adherenceService.getOverallAdherence(memberId, startDate, endDate);
MedicationAdherenceVo vo = adherenceService.getOverallAdherence(personId, startDate, endDate);
return AjaxResult.success(vo);
}
@GetMapping("/daily")
@ApiOperation("获取每日依从性统计列表")
public AjaxResult getDailyAdherenceList(
@RequestParam(required = false) Long memberId,
@RequestParam(required = false) Long personId,
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate) {
List<DailyAdherenceVo> list = adherenceService.getDailyAdherenceList(memberId, startDate, endDate);
List<DailyAdherenceVo> list = adherenceService.getDailyAdherenceList(personId, startDate, endDate);
return AjaxResult.success(list);
}
@GetMapping("/calendar")
@ApiOperation("获取日历视图数据")
public AjaxResult getCalendarData(
@RequestParam(required = false) Long memberId,
@RequestParam(required = false) Long personId,
@RequestParam String yearMonth) {
List<DailyAdherenceVo> list = adherenceService.getCalendarData(memberId, yearMonth);
List<DailyAdherenceVo> list = adherenceService.getCalendarData(personId, yearMonth);
return AjaxResult.success(list);
}
@GetMapping("/timeSlot")
@ApiOperation("获取各时段服药统计")
public AjaxResult getTimeSlotAdherence(
@RequestParam(required = false) Long memberId,
@RequestParam(required = false) Long personId,
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate) {
Map<String, MedicationAdherenceVo> map = adherenceService.getTimeSlotAdherence(memberId, startDate, endDate);
Map<String, MedicationAdherenceVo> map = adherenceService.getTimeSlotAdherence(personId, startDate, endDate);
return AjaxResult.success(map);
}
@GetMapping("/dashboard")
@ApiOperation("获取仪表盘概览数据")
public AjaxResult getDashboard(@RequestParam(required = false) Long memberId) {
public AjaxResult getDashboard(@RequestParam(required = false) Long personId) {
LocalDate today = LocalDate.now();
LocalDate weekAgo = today.minusDays(7);
Map<String, Object> result = new java.util.HashMap<>();
result.put("overall", adherenceService.getOverallAdherence(memberId, weekAgo, today));
result.put("dailyTrend", adherenceService.getDailyAdherenceList(memberId, weekAgo, today));
result.put("timeSlot", adherenceService.getTimeSlotAdherence(memberId, weekAgo, today));
result.put("overall", adherenceService.getOverallAdherence(personId, weekAgo, today));
result.put("dailyTrend", adherenceService.getDailyAdherenceList(personId, weekAgo, today));
result.put("timeSlot", adherenceService.getTimeSlotAdherence(personId, weekAgo, today));
return AjaxResult.success(result);
}

View File

@@ -24,7 +24,7 @@ import java.util.List;
* @date 2026-03-19
*/
@RestController
@RequestMapping("/health/medicationPlan")
@RequestMapping("/medicationPlan")
@Api(tags = "用药计划管理")
public class MedicationPlanController extends BaseController {

View File

@@ -23,7 +23,7 @@ import java.util.List;
* @date 2026-03-19
*/
@RestController
@RequestMapping("/health/medicationTask")
@RequestMapping("/medicationTask")
@Api(tags = "服药任务管理")
public class MedicationTaskController extends BaseController {

View File

@@ -1,6 +1,6 @@
package com.intc.health.domain;
import com.intc.common.core.domain.BaseEntity;
import com.intc.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -21,7 +21,7 @@ public class ChronicDiseaseRecord extends BaseEntity {
private Long id;
@ApiModelProperty("关联成员ID")
private Long memberId;
private Long personId;
@ApiModelProperty("疾病名称")
private String diseaseName;
@@ -47,6 +47,9 @@ public class ChronicDiseaseRecord extends BaseEntity {
@ApiModelProperty("备注说明")
private String notes;
@ApiModelProperty("是否启用1-启用 0-禁用")
private Integer isActive;
@ApiModelProperty("删除标记0-正常 1-删除")
private Integer delFlag;
}

View File

@@ -1,7 +1,7 @@
package com.intc.health.domain;
import com.fasterxml.jackson.databind.JsonNode;
import com.intc.common.core.domain.BaseEntity;
import com.intc.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -25,7 +25,7 @@ public class MedicationPlan extends BaseEntity {
private Long id;
@ApiModelProperty("关联成员ID")
private Long memberId;
private Long personId;
@ApiModelProperty("关联慢性疾病ID")
private Long chronicDiseaseId;

View File

@@ -1,6 +1,6 @@
package com.intc.health.domain;
import com.intc.common.core.domain.BaseEntity;
import com.intc.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -29,7 +29,7 @@ public class MedicationTask extends BaseEntity {
private Long planId;
@ApiModelProperty("关联成员ID")
private Long memberId;
private Long personId;
@ApiModelProperty("药品名称")
private String medicineName;

View File

@@ -21,11 +21,7 @@ public class ChronicDiseaseRecordDto implements Serializable
/** 关联成员ID */
@ApiModelProperty(value = "关联成员ID")
private Long memberId;
/** 关联疾病ID */
@ApiModelProperty(value = "关联疾病ID")
private Long diseaseId;
private Long personId;
/** 疾病名称 */
@ApiModelProperty(value = "疾病名称")

View File

@@ -22,7 +22,7 @@ public class MedicationPlanDto {
private Long id;
@ApiModelProperty("关联成员ID")
private Long memberId;
private Long personId;
@ApiModelProperty("关联慢性疾病ID")
private Long chronicDiseaseId;

View File

@@ -20,7 +20,7 @@ public class MedicationTaskDto {
private Long planId;
@ApiModelProperty("关联成员ID")
private Long memberId;
private Long personId;
@ApiModelProperty("药品名称")
private String medicineName;

View File

@@ -16,9 +16,7 @@ public class ChronicDiseaseRecordVo extends ChronicDiseaseRecord
{
private static final long serialVersionUID = 1L;
/** 疾病类型来自health_diseases表) */
private String diseaseType;
/** 成员姓名来自health_person表) */
private String personName;
/** 疾病症状来自health_diseases表 */
private String diseaseSymptom;
}

View File

@@ -23,10 +23,10 @@ public class MedicationPlanVo {
private Long id;
@ApiModelProperty("关联成员ID")
private Long memberId;
private Long personId;
@ApiModelProperty("成员名称")
private String memberName;
private String personName;
@ApiModelProperty("关联慢性疾病ID")
private Long chronicDiseaseId;

View File

@@ -29,10 +29,10 @@ public class MedicationTaskVo {
private String planName;
@ApiModelProperty("关联成员ID")
private Long memberId;
private Long personId;
@ApiModelProperty("成员名称")
private String memberName;
private String personName;
@ApiModelProperty("药品名称")
private String medicineName;

View File

@@ -1,5 +1,6 @@
package com.intc.health.service.impl;
import com.intc.common.core.exception.ServiceException;
import com.intc.common.core.utils.DateUtils;
import com.intc.common.security.utils.SecurityUtils;
import com.intc.health.domain.MedicationPlan;
@@ -43,6 +44,18 @@ public class MedicationPlanServiceImpl implements IMedicationPlanService {
@Override
public int insert(MedicationPlan plan) {
if (plan.getPersonId() == null) {
throw new ServiceException("关联成员ID不能为空");
}
if (plan.getMedicineName() == null || plan.getMedicineName().isEmpty()) {
throw new ServiceException("药品名称不能为空");
}
if (plan.getFrequencyType() == null) {
throw new ServiceException("频次类型不能为空");
}
if (plan.getStartDate() == null) {
throw new ServiceException("开始日期不能为空");
}
plan.setStatus(1); // 默认执行中
plan.setDelFlag(0);
plan.setCreateBy(SecurityUtils.getUsername());
@@ -91,4 +104,4 @@ public class MedicationPlanServiceImpl implements IMedicationPlanService {
plan.setUpdateTime(DateUtils.getNowDate());
return planMapper.update(plan);
}
}
}

View File

@@ -60,7 +60,7 @@ public class MedicationRemindJob {
*/
private void sendReminder(MedicationTaskVo task) {
log.info("发送提醒: 成员={}, 药品={}, 计划时间={} {}",
task.getMemberName(), task.getMedicineName(),
task.getPersonName(), task.getMedicineName(),
task.getPlannedDate(), task.getPlannedTime());
// TODO: 实现消息推送
@@ -106,7 +106,7 @@ public class MedicationRemindJob {
*/
private void sendOverdueReminder(MedicationTaskVo task) {
log.warn("超时未服药: 成员={}, 药品={}, 计划时间={} {}",
task.getMemberName(), task.getMedicineName(),
task.getPersonName(), task.getMedicineName(),
task.getPlannedDate(), task.getPlannedTime());
// TODO: 实现超时提醒逻辑

View File

@@ -14,6 +14,7 @@ import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
@@ -201,7 +202,7 @@ public class MedicationTaskJob {
MedicationTask task = new MedicationTask();
task.setPlanId(plan.getId());
task.setMemberId(plan.getMemberId());
task.setPersonId(plan.getPersonId());
task.setMedicineName(plan.getMedicineName());
task.setPlannedDate(date);
task.setPlannedTime(time);

View File

@@ -6,9 +6,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="ChronicDiseaseRecordVo" id="ChronicDiseaseRecordResult">
<result property="id" column="id"/>
<result property="memberId" column="member_id"/>
<result property="memberName" column="member_name"/>
<result property="diseaseId" column="disease_id"/>
<result property="personId" column="person_id"/>
<result property="personName" column="person_name"/>
<result property="diseaseName" column="disease_name"/>
<result property="diseaseCode" column="disease_code"/>
<result property="diagnosisDate" column="diagnosis_date"/>
@@ -24,31 +24,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateTime" column="update_time"/>
<result property="delFlag" column="del_flag"/>
<result property="remark" column="remark"/>
<result property="diseaseType" column="disease_type"/>
<result property="diseaseSymptom" column="disease_symptom"/>
</resultMap>
<sql id="selectChronicDiseaseRecordVo">
select a.id, a.member_id, a.disease_id, a.disease_name, a.disease_code, a.diagnosis_date,
select a.id, a.person_id, a.disease_name, a.disease_code, a.diagnosis_date,
a.disease_status, a.main_doctor, a.hospital, a.department, a.notes, a.is_active,
a.create_by, a.create_time, a.update_by, a.update_time, a.del_flag, a.remark,
p.name as member_name,
d.type as disease_type,
d.symptom as disease_symptom
p.name as person_name
from chronic_disease_record a
left join health_person p on a.member_id = p.id
left join health_diseases d on a.disease_id = d.id
left join health_person p on a.person_id = p.id
</sql>
<select id="selectChronicDiseaseRecordList" parameterType="ChronicDiseaseRecordDto" resultMap="ChronicDiseaseRecordResult">
<include refid="selectChronicDiseaseRecordVo"/>
<where>
a.del_flag = '0'
<if test="memberId != null">
and a.member_id = #{memberId}
</if>
<if test="diseaseId != null">
and a.disease_id = #{diseaseId}
<if test="personId != null">
and a.person_id = #{personId}
</if>
<if test="diseaseName != null and diseaseName != ''">
and a.disease_name like '%' || #{diseaseName} || '%'
@@ -79,7 +72,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectChronicDiseaseRecordByMemberId" parameterType="Long" resultMap="ChronicDiseaseRecordResult">
<include refid="selectChronicDiseaseRecordVo"/>
where a.del_flag = '0' and a.is_active = 1 and a.member_id = #{memberId}
where a.del_flag = '0' and a.is_active = 1 and a.person_id = #{personId}
order by a.disease_status desc, a.create_time desc
</select>
@@ -87,8 +80,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
insert into chronic_disease_record
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="memberId != null">member_id,</if>
<if test="diseaseId != null">disease_id,</if>
<if test="personId != null">person_id,</if>
<if test="diseaseName != null and diseaseName != ''">disease_name,</if>
<if test="diseaseCode != null">disease_code,</if>
<if test="diagnosisDate != null">diagnosis_date,</if>
@@ -107,8 +99,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="memberId != null">#{memberId},</if>
<if test="diseaseId != null">#{diseaseId},</if>
<if test="personId != null">#{personId},</if>
<if test="diseaseName != null and diseaseName != ''">#{diseaseName},</if>
<if test="diseaseCode != null">#{diseaseCode},</if>
<if test="diagnosisDate != null">#{diagnosisDate},</if>
@@ -130,8 +121,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateChronicDiseaseRecord" parameterType="ChronicDiseaseRecord">
update chronic_disease_record
<trim prefix="SET" suffixOverrides=",">
<if test="memberId != null">member_id = #{memberId},</if>
<if test="diseaseId != null">disease_id = #{diseaseId},</if>
<if test="personId != null">person_id = #{personId},</if>
<if test="diseaseName != null and diseaseName != ''">disease_name = #{diseaseName},</if>
<if test="diseaseCode != null">disease_code = #{diseaseCode},</if>
<if test="diagnosisDate != null">diagnosis_date = #{diagnosisDate},</if>

View File

@@ -4,8 +4,8 @@
<resultMap type="com.intc.health.domain.vo.MedicationPlanVo" id="MedicationPlanResult">
<id property="id" column="id"/>
<result property="memberId" column="member_id"/>
<result property="memberName" column="member_name"/>
<result property="personId" column="person_id"/>
<result property="personName" column="person_name"/>
<result property="chronicDiseaseId" column="chronic_disease_id"/>
<result property="chronicDiseaseName" column="chronic_disease_name"/>
<result property="planName" column="plan_name"/>
@@ -28,14 +28,14 @@
</resultMap>
<sql id="selectVo">
select a.id, a.member_id, p.name as member_name, a.chronic_disease_id,
select a.id, a.person_id, p.name as person_name, a.chronic_disease_id,
c.disease_name as chronic_disease_name, a.plan_name, a.medicine_id,
a.medicine_name, a.specification, a.dosage_per_time, a.dosage_unit,
a.frequency_type, a.frequency_config, a.time_slots, a.start_date, a.end_date,
a.remind_enabled, a.remind_advance_min, a.notify_family, a.family_member_ids,
a.status, a.create_time
from medication_plan a
left join health_person p on a.member_id = p.id
left join health_person p on a.person_id = p.id
left join chronic_disease_record c on a.chronic_disease_id = c.id
</sql>
@@ -48,7 +48,7 @@
<include refid="selectVo"/>
<where>
a.del_flag = 0
<if test="memberId != null"> and a.member_id = #{memberId}</if>
<if test="personId != null"> and a.person_id = #{personId}</if>
<if test="chronicDiseaseId != null"> and a.chronic_disease_id = #{chronicDiseaseId}</if>
<if test="planName != null and planName != ''"> and a.plan_name like '%' || #{planName} || '%'</if>
<if test="medicineId != null"> and a.medicine_id = #{medicineId}</if>
@@ -71,29 +71,61 @@
</select>
<insert id="insert" parameterType="com.intc.health.domain.MedicationPlan" useGeneratedKeys="true" keyProperty="id">
insert into medication_plan (
member_id, chronic_disease_id, plan_name, medicine_id, medicine_name,
specification, dosage_per_time, dosage_unit, frequency_type,
frequency_config, time_slots, start_date, end_date,
remind_enabled, remind_advance_min, notify_family, family_member_ids, status,
create_by, create_time, remark, del_flag
) values (
#{memberId}, #{chronicDiseaseId}, #{planName}, #{medicineId}, #{medicineName},
#{specification}, #{dosagePerTime}, #{dosageUnit}, #{frequencyType},
#{frequencyConfig, typeHandler=com.intc.common.core.handler.JsonNodeTypeHandler},
#{timeSlots, typeHandler=com.intc.common.core.handler.JsonNodeTypeHandler},
#{startDate}, #{endDate},
#{remindEnabled}, #{remindAdvanceMin}, #{notifyFamily},
#{familyMemberIds, typeHandler=com.intc.common.core.handler.JsonNodeTypeHandler},
#{status},
#{createBy}, #{createTime}, #{remark}, 0
)
insert into medication_plan
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="personId != null">person_id,</if>
<if test="chronicDiseaseId != null">chronic_disease_id,</if>
<if test="planName != null and planName != ''">plan_name,</if>
<if test="medicineId != null">medicine_id,</if>
<if test="medicineName != null">medicine_name,</if>
<if test="specification != null">specification,</if>
<if test="dosagePerTime != null">dosage_per_time,</if>
<if test="dosageUnit != null">dosage_unit,</if>
<if test="frequencyType != null">frequency_type,</if>
<if test="frequencyConfig != null">frequency_config,</if>
<if test="timeSlots != null">time_slots,</if>
<if test="startDate != null">start_date,</if>
<if test="endDate != null">end_date,</if>
<if test="remindEnabled != null">remind_enabled,</if>
<if test="remindAdvanceMin != null">remind_advance_min,</if>
<if test="notifyFamily != null">notify_family,</if>
<if test="familyMemberIds != null">family_member_ids,</if>
<if test="status != null">status,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="remark != null">remark,</if>
del_flag,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="personId != null">#{personId},</if>
<if test="chronicDiseaseId != null">#{chronicDiseaseId},</if>
<if test="planName != null and planName != ''">#{planName},</if>
<if test="medicineId != null">#{medicineId},</if>
<if test="medicineName != null">#{medicineName},</if>
<if test="specification != null">#{specification},</if>
<if test="dosagePerTime != null">#{dosagePerTime},</if>
<if test="dosageUnit != null">#{dosageUnit},</if>
<if test="frequencyType != null">#{frequencyType},</if>
<if test="frequencyConfig != null">#{frequencyConfig, typeHandler=com.intc.common.core.handler.JsonNodeTypeHandler},</if>
<if test="timeSlots != null">#{timeSlots, typeHandler=com.intc.common.core.handler.JsonNodeTypeHandler},</if>
<if test="startDate != null">#{startDate},</if>
<if test="endDate != null">#{endDate},</if>
<if test="remindEnabled != null">#{remindEnabled},</if>
<if test="remindAdvanceMin != null">#{remindAdvanceMin},</if>
<if test="notifyFamily != null">#{notifyFamily},</if>
<if test="familyMemberIds != null">#{familyMemberIds, typeHandler=com.intc.common.core.handler.JsonNodeTypeHandler},</if>
<if test="status != null">#{status},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="remark != null">#{remark},</if>
0,
</trim>
</insert>
<update id="update" parameterType="com.intc.health.domain.MedicationPlan">
update medication_plan
<set>
<if test="memberId != null">member_id = #{memberId},</if>
<if test="personId != null">person_id = #{personId},</if>
<if test="chronicDiseaseId != null">chronic_disease_id = #{chronicDiseaseId},</if>
<if test="planName != null">plan_name = #{planName},</if>
<if test="medicineId != null">medicine_id = #{medicineId},</if>

View File

@@ -6,8 +6,8 @@
<id property="id" column="id"/>
<result property="planId" column="plan_id"/>
<result property="planName" column="plan_name"/>
<result property="memberId" column="member_id"/>
<result property="memberName" column="member_name"/>
<result property="personId" column="person_id"/>
<result property="personName" column="person_name"/>
<result property="medicineName" column="medicine_name"/>
<result property="plannedDate" column="planned_date"/>
<result property="plannedTime" column="planned_time"/>
@@ -23,13 +23,13 @@
</resultMap>
<sql id="selectVo">
select a.id, a.plan_id, p.plan_name, a.member_id, m.name as member_name,
select a.id, a.plan_id, p.plan_name, a.person_id, m.name as person_name,
a.medicine_name, a.planned_date, a.planned_time, a.planned_dosage,
a.actual_time, a.actual_dosage, a.status, a.confirm_type, a.notes,
a.remind_status, a.remind_time, a.create_time
from medication_task a
left join medication_plan p on a.plan_id = p.id
left join health_person m on a.member_id = m.id
left join health_person m on a.person_id = m.id
</sql>
<select id="selectById" parameterType="Long" resultMap="MedicationTaskResult">
@@ -42,7 +42,7 @@
<where>
a.del_flag = 0
<if test="planId != null"> and a.plan_id = #{planId}</if>
<if test="memberId != null"> and a.member_id = #{memberId}</if>
<if test="personId != null"> and a.person_id = #{personId}</if>
<if test="medicineName != null and medicineName != ''"> and a.medicine_name like '%' || #{medicineName} || '%'</if>
<if test="status != null"> and a.status = #{status}</if>
<if test="plannedDateBegin != null"> and a.planned_date &gt;= #{plannedDateBegin}</if>
@@ -57,11 +57,11 @@
<insert id="insert" parameterType="com.intc.health.domain.MedicationTask" useGeneratedKeys="true" keyProperty="id">
insert into medication_task (
plan_id, member_id, medicine_name, planned_date, planned_time,
plan_id, person_id, medicine_name, planned_date, planned_time,
planned_dosage, actual_time, actual_dosage, status, confirm_type,
notes, remind_status, remind_time, create_by, create_time, remark, del_flag
) values (
#{planId}, #{memberId}, #{medicineName}, #{plannedDate}, #{plannedTime},
#{planId}, #{personId}, #{medicineName}, #{plannedDate}, #{plannedTime},
#{plannedDosage}, #{actualTime}, #{actualDosage}, #{status}, #{confirmType},
#{notes}, #{remindStatus}, #{remindTime}, #{createBy}, #{createTime}, #{remark}, 0
)
@@ -69,11 +69,11 @@
<insert id="batchInsert" parameterType="java.util.List">
insert into medication_task (
plan_id, member_id, medicine_name, planned_date, planned_time,
plan_id, person_id, medicine_name, planned_date, planned_time,
planned_dosage, status, remind_status, create_time, del_flag
) values
<foreach collection="list" item="item" separator=",">
(#{item.planId}, #{item.memberId}, #{item.medicineName}, #{item.plannedDate}, #{item.plannedTime},
(#{item.planId}, #{item.personId}, #{item.medicineName}, #{item.plannedDate}, #{item.plannedTime},
#{item.plannedDosage}, #{item.status}, #{item.remindStatus}, #{item.createTime}, 0)
</foreach>
</insert>
@@ -152,7 +152,7 @@
then 1 else 0 end) as ontime_tasks
from medication_task
where del_flag = 0
<if test="memberId != null"> and member_id = #{memberId}</if>
<if test="personId != null"> and person_id = #{personId}</if>
<if test="startDate != null"> and planned_date &gt;= #{startDate}</if>
<if test="endDate != null"> and planned_date &lt;= #{endDate}</if>
</select>
@@ -169,7 +169,7 @@
then 1 else 0 end) as ontime_tasks
from medication_task
where del_flag = 0
<if test="memberId != null"> and member_id = #{memberId}</if>
<if test="personId != null"> and person_id = #{personId}</if>
<if test="startDate != null"> and planned_date &gt;= #{startDate}</if>
<if test="endDate != null"> and planned_date &lt;= #{endDate}</if>
group by planned_date
@@ -187,7 +187,7 @@
then 1 else 0 end) as ontime_tasks
from medication_task
where del_flag = 0
<if test="memberId != null"> and member_id = #{memberId}</if>
<if test="personId != null"> and person_id = #{personId}</if>
<if test="startDate != null"> and planned_date &gt;= #{startDate}</if>
<if test="endDate != null"> and planned_date &lt;= #{endDate}</if>
group by extract(hour from planned_time)