问题修改。

This commit is contained in:
haown 2024-08-13 09:45:16 +08:00
parent 643c1c998a
commit 85cc8e9cc9
11 changed files with 574 additions and 16 deletions

View File

@ -0,0 +1,24 @@
package com.xinelu.common.constant;
/**
* @description: 任务统计类型字段常量
* @author: haown
* @create: 2024-08-12 16:58
**/
public class TaskStatisticsTypeConstants {
/**
* 任务总数
*/
public static final String TASK_NUM = "TASK_NUM";
/**
* 任务执行数
*/
public static final String TASK_EXECUTE_NUM = "TASK_EXECUTE_NUM";
/**
* 任务完成
*/
public static final String TASK_FINISH_NUM = "TASK_FINISH_NUM";
}

View File

@ -0,0 +1,55 @@
package com.xinelu.manage.domain.patienttaskstatistics;
import com.xinelu.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
* 患者任务统计对象 patient_task_statistics
*
* @author haown
* @date 2024-08-09
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "患者任务统计对象", description = "patient_task_statistics")
public class PatientTaskStatistics extends BaseEntity {
private static final long serialVersionUID=1L;
/** 患者主键 */
@ApiModelProperty(value = "患者主键")
private Long patientId;
/** 患者签约记录表主键 */
private Long signPatientRecordId;
/** 服务状态意向签约INTENTIONAL_SIGNING服务中SERVICE_CENTER服务结束SERVICE_END */
@ApiModelProperty(value = "服务状态意向签约INTENTIONAL_SIGNING服务中SERVICE_CENTER服务结束SERVICE_END")
private String serviceStatus;
/** 专病路径审核状态同意AGREE不同意DISAGREE */
@ApiModelProperty(value = "专病路径审核状态同意AGREE不同意DISAGREE")
private String routeCheckStatus;
/** 任务数量 */
@ApiModelProperty(value = "任务数量")
private BigDecimal taskNum;
/** 任务执行数量 */
@ApiModelProperty(value = "任务执行数量")
private BigDecimal taskExecuteNum;
/** 任务完成数量 */
@ApiModelProperty(value = "任务完成数量")
private BigDecimal taskFinishNum;
}

View File

@ -0,0 +1,60 @@
package com.xinelu.manage.mapper.patienttaskstatistics;
import com.xinelu.manage.domain.patienttaskstatistics.PatientTaskStatistics;
import java.util.List;
/**
* 患者任务统计Mapper接口
*
* @author haown
* @date 2024-08-09
*/
public interface PatientTaskStatisticsMapper {
/**
* 查询患者任务统计
*
* @param patientId 患者主键
* @return 患者任务统计
*/
PatientTaskStatistics selectPatientTaskStatisticsByPatientId(Long patientId);
/**
* 查询患者任务统计列表
*
* @param patientTaskStatistics 患者任务统计
* @return 患者任务统计集合
*/
List<PatientTaskStatistics> selectPatientTaskStatisticsList(PatientTaskStatistics patientTaskStatistics);
/**
* 新增患者任务统计
*
* @param patientTaskStatistics 患者任务统计
* @return 结果
*/
int insertPatientTaskStatistics(PatientTaskStatistics patientTaskStatistics);
/**
* 修改患者任务统计
*
* @param patientTaskStatistics 患者任务统计
* @return 结果
*/
int updatePatientTaskStatistics(PatientTaskStatistics patientTaskStatistics);
/**
* 删除患者任务统计
*
* @param patientId 患者主键
* @return 结果
*/
int deletePatientTaskStatisticsByPatientId(Long patientId);
/**
* 批量删除患者任务统计
*
* @param patientIds 需要删除的数据主键集合
* @return 结果
*/
int deletePatientTaskStatisticsByPatientIds(Long[] patientIds);
}

View File

@ -1,12 +1,14 @@
package com.xinelu.manage.service.patienttaskexecuterecord.impl;
import com.xinelu.common.annotation.DataScope;
import com.xinelu.common.constant.TaskStatisticsTypeConstants;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.utils.AgeUtil;
import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecord;
import com.xinelu.manage.mapper.patientquestionsubmitresult.PatientQuestionSubmitResultMapper;
import com.xinelu.manage.mapper.patienttaskexecuterecord.PatientTaskExecuteRecordMapper;
import com.xinelu.manage.service.patienttaskexecuterecord.IPatientTaskExecuteRecordService;
import com.xinelu.manage.service.patienttaskstatistics.IPatientTaskStatisticsService;
import com.xinelu.manage.vo.patienttaskexecuterecord.PatientTaskExecuteRecordVO;
import org.springframework.stereotype.Service;
@ -27,6 +29,8 @@ public class PatientTaskExecuteRecordServiceImpl implements IPatientTaskExecuteR
private PatientTaskExecuteRecordMapper patientTaskExecuteRecordMapper;
@Resource
private PatientQuestionSubmitResultMapper submitResultMapper;
@Resource
private IPatientTaskStatisticsService patientTaskStatisticsService;
/**
* 查询患者管理任务执行记录
@ -60,7 +64,10 @@ public class PatientTaskExecuteRecordServiceImpl implements IPatientTaskExecuteR
@Override
public int insertPatientTaskExecuteRecord(PatientTaskExecuteRecord patientTaskExecuteRecord) {
patientTaskExecuteRecord.setCreateTime(LocalDateTime.now());
return patientTaskExecuteRecordMapper.insertPatientTaskExecuteRecord(patientTaskExecuteRecord);
int flag = patientTaskExecuteRecordMapper.insertPatientTaskExecuteRecord(patientTaskExecuteRecord);
// 任务统计表修改
patientTaskStatisticsService.updateNum(patientTaskExecuteRecord.getPatientId(), TaskStatisticsTypeConstants.TASK_EXECUTE_NUM, 1);
return flag;
}
/**

View File

@ -0,0 +1,89 @@
package com.xinelu.manage.service.patienttaskstatistics;
import com.xinelu.manage.domain.patienttaskstatistics.PatientTaskStatistics;
import java.util.List;
/**
* 患者任务统计Service接口
*
* @author haown
* @date 2024-08-09
*/
public interface IPatientTaskStatisticsService {
/**
* 查询患者任务统计
*
* @param patientId 患者任务统计主键
* @return 患者任务统计
*/
PatientTaskStatistics selectPatientTaskStatisticsByPatientId(Long patientId);
/**
* 查询患者任务统计列表
*
* @param patientTaskStatistics 患者任务统计
* @return 患者任务统计集合
*/
List<PatientTaskStatistics> selectPatientTaskStatisticsList(PatientTaskStatistics patientTaskStatistics);
/**
* 新增患者任务统计
*
* @param patientTaskStatistics 患者任务统计
* @return 结果
*/
int insertPatientTaskStatistics(PatientTaskStatistics patientTaskStatistics);
/**
* 修改患者任务统计
*
* @param patientTaskStatistics 患者任务统计
* @return 结果
*/
int updatePatientTaskStatistics(PatientTaskStatistics patientTaskStatistics);
/**
* 批量删除患者任务统计
*
* @param patientIds 需要删除的患者任务统计主键集合
* @return 结果
*/
int deletePatientTaskStatisticsBySignPatientRecordIds(Long[] patientIds);
/**
* 删除患者任务统计信息
*
* @param patientId 患者任务统计主键
* @return 结果
*/
int deletePatientTaskStatisticsBySignPatientRecordId(Long patientId);
/**
* 新增或修改患者任务统计
*
* @param patientTaskStatistics 患者任务统计
* @return 结果
*/
int insertOrUpdate(PatientTaskStatistics patientTaskStatistics);
/**
* @description 修改任务总数执行数完成数
* @param patientId 签约记录主键
* @param type 字段种类TASK_NUM任务总数TASK_EXECUTE_NUM: 任务执行数TASK_FINISH_NUM任务完成数
* @param count 数量
* @return 结果
* @Author haown
* @Date 2024-08-09 17:43
*/
int updateNum(Long patientId, String type, Integer count);
/**
* @description 根据任务表主键列表修改任务总数执行数完成数
* @param signManageRouteNodeIds 任务表主键列表
* @param type 字段种类TASK_NUM任务总数TASK_EXECUTE_NUM: 任务执行数TASK_FINISH_NUM任务完成数
* @return 结果
* @Author haown
* @Date 2024-8-12 17:19
*/
int updateNumByManageRouteNodeIds(List<Long> signManageRouteNodeIds, String type);
}

View File

@ -0,0 +1,145 @@
package com.xinelu.manage.service.patienttaskstatistics.impl;
import com.xinelu.common.constant.TaskStatisticsTypeConstants;
import com.xinelu.manage.domain.patienttaskstatistics.PatientTaskStatistics;
import com.xinelu.manage.domain.signpatientrecord.SignPatientRecord;
import com.xinelu.manage.mapper.patienttaskstatistics.PatientTaskStatisticsMapper;
import com.xinelu.manage.mapper.signpatientrecord.SignPatientRecordMapper;
import com.xinelu.manage.service.patienttaskstatistics.IPatientTaskStatisticsService;
import java.math.BigDecimal;
import java.util.List;
import javax.annotation.Resource;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service;
/**
* 患者任务统计Service业务层处理
*
* @author haown
* @date 2024-08-09
*/
@Service
public class PatientTaskStatisticsServiceImpl implements IPatientTaskStatisticsService {
@Resource
private PatientTaskStatisticsMapper patientTaskStatisticsMapper;
@Resource
private SignPatientRecordMapper signPatientRecordMapper;
/**
* 查询患者任务统计
*
* @param patientId 患者任务统计主键
* @return 患者任务统计
*/
@Override
public PatientTaskStatistics selectPatientTaskStatisticsByPatientId(Long patientId) {
return patientTaskStatisticsMapper.selectPatientTaskStatisticsByPatientId(patientId);
}
/**
* 查询患者任务统计列表
*
* @param patientTaskStatistics 患者任务统计
* @return 患者任务统计
*/
@Override
public List<PatientTaskStatistics> selectPatientTaskStatisticsList(PatientTaskStatistics patientTaskStatistics) {
return patientTaskStatisticsMapper.selectPatientTaskStatisticsList(patientTaskStatistics);
}
/**
* 新增患者任务统计
*
* @param patientTaskStatistics 患者任务统计
* @return 结果
*/
@Override
public int insertPatientTaskStatistics(PatientTaskStatistics patientTaskStatistics) {
return patientTaskStatisticsMapper.insertPatientTaskStatistics(patientTaskStatistics);
}
/**
* 修改患者任务统计
*
* @param patientTaskStatistics 患者任务统计
* @return 结果
*/
@Override
public int updatePatientTaskStatistics(PatientTaskStatistics patientTaskStatistics) {
return patientTaskStatisticsMapper.updatePatientTaskStatistics(patientTaskStatistics);
}
/**
* 批量删除患者任务统计
*
* @param signPatientRecordIds 需要删除的患者任务统计主键
* @return 结果
*/
@Override
public int deletePatientTaskStatisticsBySignPatientRecordIds(Long[] signPatientRecordIds) {
return patientTaskStatisticsMapper.deletePatientTaskStatisticsByPatientIds(signPatientRecordIds);
}
/**
* 删除患者任务统计信息
*
* @param signPatientRecordId 患者任务统计主键
* @return 结果
*/
@Override
public int deletePatientTaskStatisticsBySignPatientRecordId(Long signPatientRecordId) {
return patientTaskStatisticsMapper.deletePatientTaskStatisticsByPatientId(signPatientRecordId);
}
@Override public int insertOrUpdate(PatientTaskStatistics patientTaskStatistics) {
SignPatientRecord signPatientRecord = signPatientRecordMapper.selectByPrimaryKey(patientTaskStatistics.getSignPatientRecordId());
if (ObjectUtils.isNotEmpty(signPatientRecord)) {
PatientTaskStatistics patientTask = patientTaskStatisticsMapper.selectPatientTaskStatisticsByPatientId(patientTaskStatistics.getPatientId());
if (ObjectUtils.isEmpty(patientTask)) {
// 插入数据
patientTaskStatisticsMapper.insertPatientTaskStatistics(patientTaskStatistics);
} else {
// 修改数据
patientTask.setServiceStatus(signPatientRecord.getServiceStatus());
patientTask.setRouteCheckStatus(signPatientRecord.getRouteCheckStatus());
patientTask.setTaskNum(patientTask.getTaskNum().add(patientTaskStatistics.getTaskNum()));
patientTask.setTaskExecuteNum(patientTask.getTaskExecuteNum().add(patientTaskStatistics.getTaskExecuteNum()));
patientTask.setTaskFinishNum(patientTask.getTaskFinishNum().add(patientTaskStatistics.getTaskFinishNum()));
patientTaskStatisticsMapper.updatePatientTaskStatistics(patientTask);
}
}
return 0;
}
/**
* @description 修改任务总数执行数完成数
* @param patientId 签约记录主键
* @param type 字段种类TASK_NUM任务总数TASK_EXECUTE_NUM: 任务执行数TASK_FINISH_NUM任务完成数
* @param count 数量
* @return 结果
* @Author haown
* @Date 2024-08-09 17:43
*/
@Override
public int updateNum(Long patientId, String type, Integer count) {
PatientTaskStatistics patientTaskStatistics = patientTaskStatisticsMapper.selectPatientTaskStatisticsByPatientId(patientId);
switch (type) {
case TaskStatisticsTypeConstants.TASK_NUM:
patientTaskStatistics.setTaskNum(patientTaskStatistics.getTaskNum().add(BigDecimal.valueOf(count)));
break;
case TaskStatisticsTypeConstants.TASK_EXECUTE_NUM:
patientTaskStatistics.setTaskExecuteNum(patientTaskStatistics.getTaskExecuteNum().add(BigDecimal.valueOf(count)));
break;
case TaskStatisticsTypeConstants.TASK_FINISH_NUM:
patientTaskStatistics.setTaskFinishNum(patientTaskStatistics.getTaskFinishNum().add(BigDecimal.valueOf(count)));
break;
}
return patientTaskStatisticsMapper.updatePatientTaskStatistics(patientTaskStatistics);
}
@Override public int updateNumByManageRouteNodeIds(List<Long> signManageRouteNodeIds, String type) {
return 0;
}
}

View File

@ -13,9 +13,21 @@ import com.xinelu.common.config.AliYunSmsTwoConfig;
import com.xinelu.common.constant.TaskContentConstants;
import com.xinelu.common.constant.TaskCreateTypeConstant;
import com.xinelu.common.constant.TaskNodeTypeConstants;
import com.xinelu.common.constant.TaskStatisticsTypeConstants;
import com.xinelu.common.constant.TemplateTypeConstants;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.enums.*;
import com.xinelu.common.enums.ErrorStatusEnum;
import com.xinelu.common.enums.NodeExecuteResultStatusEnum;
import com.xinelu.common.enums.NodeExecuteStatusEnum;
import com.xinelu.common.enums.PhoneConnectStatusEnum;
import com.xinelu.common.enums.PhoneMessageRemindEnum;
import com.xinelu.common.enums.PhoneRedialTimesEnum;
import com.xinelu.common.enums.RouteNodeNameEnum;
import com.xinelu.common.enums.ShortMessageTypeEnum;
import com.xinelu.common.enums.SmsErrorCodeEnum;
import com.xinelu.common.enums.TaskContentEnum;
import com.xinelu.common.enums.TaskCreateTypeEnum;
import com.xinelu.common.enums.TaskNodeTypeEnum;
import com.xinelu.common.exception.ServiceException;
import com.xinelu.common.utils.AgeUtil;
import com.xinelu.common.utils.SecurityUtils;
@ -50,6 +62,7 @@ import com.xinelu.manage.mapper.signpatientmanageroute.SignPatientManageRouteMap
import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper;
import com.xinelu.manage.mapper.signpatientrecord.SignPatientRecordMapper;
import com.xinelu.manage.mapper.signroutetriggercondition.SignRouteTriggerConditionMapper;
import com.xinelu.manage.service.patienttaskstatistics.IPatientTaskStatisticsService;
import com.xinelu.manage.service.propagandainfo.IPropagandaInfoService;
import com.xinelu.manage.service.questioninfo.IQuestionInfoService;
import com.xinelu.manage.service.signpatientmanageroute.ISignPatientManageRouteService;
@ -71,6 +84,16 @@ import com.xinelu.manage.vo.specialdiseasenode.RouteTaskAuditVo;
import com.xinelu.manage.vo.specialdiseasenode.SpecialDiseaseNodeAuditVo;
import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseChildRouteAuditVo;
import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteAuditVo;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
@ -78,13 +101,6 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
/**
* 签约患者管理任务路径Service业务层处理
@ -135,6 +151,8 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout
private PhoneDialRecordMapper phoneDialRecordMapper;
@Resource
private ShortMessageSendRecordMapper shortMessageSendRecordMapper;
@Resource
private IPatientTaskStatisticsService patientTaskStatisticsService;
private static final String SUCCESS = "OK";
@ -877,6 +895,8 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout
patientTaskExecuteRecord.setCreateBy(routeHandlePerson);
patientTaskExecuteRecord.setCreateTime(time);
if (patientTaskExecuteRecordMapper.insertPatientTaskExecuteRecord(patientTaskExecuteRecord) > 0) {
// 任务统计表修改
patientTaskStatisticsService.updateNum(dto.getPatientId(), TaskStatisticsTypeConstants.TASK_EXECUTE_NUM, 1);
return patientTaskExecuteRecord.getId();
} else {
throw new ServiceException("新增患者管理任务记录失败");

View File

@ -24,6 +24,7 @@ import com.xinelu.manage.domain.patientinfo.PatientAllInfoViewUppercase;
import com.xinelu.manage.domain.patientinfo.PatientInfo;
import com.xinelu.manage.domain.patientnodeparamscurrent.PatientNodeParamsCurrent;
import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecord;
import com.xinelu.manage.domain.patienttaskstatistics.PatientTaskStatistics;
import com.xinelu.manage.domain.patientvisitrecord.PatientVisitRecord;
import com.xinelu.manage.domain.propagandainfo.PropagandaInfo;
import com.xinelu.manage.domain.scriptInfo.ScriptInfo;
@ -57,6 +58,7 @@ import com.xinelu.manage.mapper.specialdiseaseroute.SpecialDiseaseRouteMapper;
import com.xinelu.manage.mapper.specialdiseasetriggercondition.SpecialDiseaseTriggerConditionMapper;
import com.xinelu.manage.mapper.textmessage.TextMessageMapper;
import com.xinelu.manage.mapper.wechattemplate.WechatTemplateMapper;
import com.xinelu.manage.service.patienttaskstatistics.IPatientTaskStatisticsService;
import com.xinelu.manage.service.propagandainfo.IPropagandaInfoService;
import com.xinelu.manage.service.questioninfo.IQuestionInfoService;
import com.xinelu.manage.service.signpatientmanageroutenode.ISignPatientManageRouteNodeService;
@ -146,6 +148,8 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage
private PatientQuestionSubmitResultMapper patientQuestionSubmitResultMapper;
@Resource
private PatientTaskExecuteRecordMapper patientTaskExecuteRecordMapper;
@Resource
private IPatientTaskStatisticsService patientTaskStatisticsService;
/**
* 查询签约患者管理任务路径节点
@ -777,6 +781,17 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage
manageNode.setRouteCheckPerson(SecurityUtils.getLoginUser().getUser().getNickName());
signPatientManageRouteNodeMapper.updateSignPatientManageRouteNode(manageNode);
});
// 任务统计表中插入数据
if (CollectionUtils.isNotEmpty(manageNodeList)) {
patientTaskStatisticsService.insertOrUpdate(PatientTaskStatistics.builder()
.signPatientRecordId(signRecordId)
.patientId(manageRouteList.get(0).getPatientId())
.taskNum(BigDecimal.valueOf(manageNodeList.size()))
.taskExecuteNum(BigDecimal.ZERO)
.taskFinishNum(BigDecimal.ZERO)
.build());
}
}
}
@ -1158,6 +1173,15 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage
// 保存
if(CollectionUtils.isNotEmpty(nodeSaveList)) {
signPatientManageRouteNodeMapper.insertBatch(nodeSaveList);
// 任务统计表中插入数据
patientTaskStatisticsService.insertOrUpdate(PatientTaskStatistics.builder()
.signPatientRecordId(signPatientManageRoute.getSignPatientRecordId())
.patientId(patientId)
.taskNum(BigDecimal.valueOf(nodeSaveList.size()))
.taskExecuteNum(BigDecimal.ZERO)
.taskFinishNum(BigDecimal.ZERO)
.build());
}
}

View File

@ -0,0 +1,125 @@
<?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.xinelu.manage.mapper.patienttaskstatistics.PatientTaskStatisticsMapper">
<resultMap type="PatientTaskStatistics" id="PatientTaskStatisticsResult">
<result property="patientId" column="patient_id"/>
<result property="signPatientRecordId" column="sign_patient_record_id"/>
<result property="serviceStatus" column="service_status"/>
<result property="routeCheckStatus" column="route_check_status"/>
<result property="taskNum" column="task_num"/>
<result property="taskExecuteNum" column="task_execute_num"/>
<result property="taskFinishNum" column="task_finish_num"/>
</resultMap>
<sql id="selectPatientTaskStatisticsVo">
select patient_id, sign_patient_record_id, service_status, route_check_status, task_num, task_execute_num, task_finish_num from patient_task_statistics
</sql>
<select id="selectPatientTaskStatisticsList" parameterType="PatientTaskStatistics" resultMap="PatientTaskStatisticsResult">
<include refid="selectPatientTaskStatisticsVo"/>
<where>
<if test="patientId != null ">
and patient_id = #{patientId}
</if>
<if test="signPatientRecordId != null ">
and sign_patient_record_id = #{signPatientRecordId}
</if>
<if test="serviceStatus != null and serviceStatus != ''">
and service_status = #{serviceStatus}
</if>
<if test="routeCheckStatus != null and routeCheckStatus != ''">
and route_check_status = #{routeCheckStatus}
</if>
<if test="taskNum != null ">
and task_num = #{taskNum}
</if>
<if test="taskExecuteNum != null ">
and task_execute_num = #{taskExecuteNum}
</if>
<if test="taskFinishNum != null ">
and task_finish_num = #{taskFinishNum}
</if>
</where>
</select>
<select id="selectPatientTaskStatisticsByPatientId" parameterType="Long"
resultMap="PatientTaskStatisticsResult">
<include refid="selectPatientTaskStatisticsVo"/>
where patient_id = #{patientId}
</select>
<insert id="insertPatientTaskStatistics" parameterType="PatientTaskStatistics">
insert into patient_task_statistics
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="signPatientRecordId != null">sign_patient_record_id,
</if>
<if test="patientId != null">patient_id,
</if>
<if test="serviceStatus != null">service_status,
</if>
<if test="routeCheckStatus != null">route_check_status,
</if>
<if test="taskNum != null">task_num,
</if>
<if test="taskExecuteNum != null">task_execute_num,
</if>
<if test="taskFinishNum != null">task_finish_num,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="signPatientRecordId != null">#{signPatientRecordId},
</if>
<if test="patientId != null">#{patientId},
</if>
<if test="serviceStatus != null">#{serviceStatus},
</if>
<if test="routeCheckStatus != null">#{routeCheckStatus},
</if>
<if test="taskNum != null">#{taskNum},
</if>
<if test="taskExecuteNum != null">#{taskExecuteNum},
</if>
<if test="taskFinishNum != null">#{taskFinishNum},
</if>
</trim>
</insert>
<update id="updatePatientTaskStatistics" parameterType="PatientTaskStatistics">
update patient_task_statistics
<trim prefix="SET" suffixOverrides=",">
<if test="signPatientRecordId != null">sign_patient_record_id =
#{signPatientRecordId},
</if>
<if test="serviceStatus != null">service_status =
#{serviceStatus},
</if>
<if test="routeCheckStatus != null">route_check_status =
#{routeCheckStatus},
</if>
<if test="taskNum != null">task_num =
#{taskNum},
</if>
<if test="taskExecuteNum != null">task_execute_num =
#{taskExecuteNum},
</if>
<if test="taskFinishNum != null">task_finish_num =
#{taskFinishNum},
</if>
</trim>
where patient_id = #{patientId}
</update>
<delete id="deletePatientTaskStatisticsByPatientId" parameterType="Long">
delete from patient_task_statistics where patient_id = #{patientId}
</delete>
<delete id="deletePatientTaskStatisticsByPatientIds" parameterType="String">
delete from patient_task_statistics where patient_id in
<foreach item="patientId" collection="array" open="(" separator="," close=")">
#{patientId}
</foreach>
</delete>
</mapper>

View File

@ -452,10 +452,14 @@
dt.department_code,
( SELECT COUNT(1)
FROM special_disease_route a
left join special_disease_route_package sdrp ON a.id = sdrp.route_id
WHERE a.department_id = dt.id and (a.parent_route_id = 0 or a.parent_route_id is null)
<if test="releaseStatus != null and releaseStatus != ''">
AND a.release_status= #{releaseStatus}
</if>
<if test="servicePackageId != null and servicePackageId != ''">
AND sdrp.service_package_id= #{servicePackageId}
</if>
) AS countNum
from department dt left join special_disease_route sdr on dt.id = sdr.department_id
left join special_disease_route_package sdrp ON sdr.id = sdrp.route_id

View File

@ -2,21 +2,20 @@ package com.xinelu.quartz.service.impl;
import com.xinelu.common.config.PushMessageRestrictions;
import com.xinelu.common.config.WeChatAppletChatConfig;
import com.xinelu.common.enums.*;
import com.xinelu.common.utils.SecurityUtils;
import com.xinelu.common.enums.ErrorStatusEnum;
import com.xinelu.common.enums.NodeExecuteResultStatusEnum;
import com.xinelu.common.enums.NodeExecuteStatusEnum;
import com.xinelu.common.enums.RouteNodeNameEnum;
import com.xinelu.common.enums.SubscribeStatusEnum;
import com.xinelu.manage.domain.subscribemessagesendrecord.SubscribeMessageSendRecord;
import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper;
import com.xinelu.manage.mapper.subscribemessagesendrecord.SubscribeMessageSendRecordMapper;
import com.xinelu.manage.service.patienttaskstatistics.IPatientTaskStatisticsService;
import com.xinelu.manage.vo.subscribemessagesendrecord.RecordNum;
import com.xinelu.mobile.mapper.homepage.HomePageMapper;
import com.xinelu.mobile.utils.WeChatOfficialAccountUtils;
import com.xinelu.mobile.vo.wechatofficialaccountcallback.PatientVO;
import com.xinelu.quartz.service.SubscribeTaskService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
@ -24,6 +23,10 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
/**
* @Description 消息推送定时任务业务层
@ -46,6 +49,8 @@ public class subscribeTaskServiceImpl implements SubscribeTaskService {
private PushMessageRestrictions pushMessageRestrictions;
@Resource
private SignPatientManageRouteNodeMapper signPatientManageRouteNodeMapper;
@Resource
private IPatientTaskStatisticsService patientTaskStatisticsService;
/**
* 推送任务组装数据