问题修改。
This commit is contained in:
parent
643c1c998a
commit
85cc8e9cc9
@ -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";
|
||||
}
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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);
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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("新增患者管理任务记录失败");
|
||||
|
||||
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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>
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
/**
|
||||
* 推送任务组装数据
|
||||
|
||||
Loading…
Reference in New Issue
Block a user