From 6a53d35b5d56e2f6bc64bbfe41579f6f32039c90 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 24 三月 2026 15:24:33 +0800
Subject: [PATCH] 【丽水】随访增加 人工随访超时状态
---
smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java | 463 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 430 insertions(+), 33 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
index 537374f..6d833d5 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
@@ -1,23 +1,26 @@
package com.smartor.service.impl;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import com.ruoyi.common.core.domain.entity.SysDept;
-import com.ruoyi.common.core.domain.entity.SysUserDept;
import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.SecurityUtils;
-import com.smartor.domain.PatMedReq;
-import com.smartor.domain.PatMedRes;
-import com.smartor.mapper.SysUserDeptMapper;
+import com.ruoyi.common.utils.DtoConversionUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.smartor.domain.*;
+import com.smartor.domain.entity.ServiceSubtaskEntity;
+import com.smartor.mapper.*;
+import com.smartor.service.IPatMedOuthospService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import com.smartor.mapper.PatMedOuthospMapper;
-import com.smartor.domain.PatMedOuthosp;
-import com.smartor.service.IPatMedOuthospService;
import org.springframework.util.CollectionUtils;
+
+import javax.sql.DataSource;
+import java.sql.Connection;
+import java.sql.Statement;
+import java.time.LocalDate;
+import java.time.Period;
+import java.time.ZoneId;
+import java.time.temporal.ChronoUnit;
+import java.util.*;
/**
* 鎮h�呴棬璇婅褰昐ervice涓氬姟灞傚鐞�
@@ -25,13 +28,29 @@
* @author smartor
* @date 2023-03-04
*/
+@Slf4j
@Service
public class PatMedOuthospServiceImpl implements IPatMedOuthospService {
@Autowired
private PatMedOuthospMapper patMedOuthospMapper;
@Autowired
- private SysUserDeptMapper sysUserDeptMapper;
+ private DataSource dataSource;
+
+ @Autowired
+ private ServiceSubtaskMapper serviceSubtaskMapper;
+
+ @Autowired
+ private ServiceTaskMapper serviceTaskMapper;
+
+ @Autowired
+ private ServiceTaskdiagMapper serviceTaskdiagMapper;
+
+ @Autowired
+ private ServiceTaskdeptMapper serviceTaskdeptMapper;
+
+ @Autowired
+ private PatArchiveMapper patArchiveMapper;
/**
@@ -42,7 +61,8 @@
*/
@Override
public PatMedOuthosp selectPatMedOuthospById(Long id) {
- return patMedOuthospMapper.selectPatMedOuthospById(id);
+// return patMedOuthospMapper.selectPatMedOuthospById(id);
+ return null;
}
/**
@@ -53,32 +73,195 @@
*/
@Override
public List<PatMedOuthosp> selectPatMedOuthospList(PatMedOuthosp patMedOuthosp) {
- return patMedOuthospMapper.selectPatMedOuthospList(patMedOuthosp);
+ PatMedOuthospQueryReq patMedOuthospQueryReq = DtoConversionUtils.sourceToTarget(patMedOuthosp, PatMedOuthospQueryReq.class);
+ List<PatMedOuthosp> patMedOuthospQueryResps = patMedOuthospMapper.callSpQueryOuthosp(patMedOuthospQueryReq);
+ if (patMedOuthosp.getPageNum() != null) {
+ for (PatMedOuthosp patMedOuthosp1 : patMedOuthospQueryResps) {
+ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosp1.getPatid());
+ if (patArchive.getBirthdate() != null) {
+ Map<String, String> map = calculateAge(patArchive.getBirthdate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now());
+ patArchive.setAge(ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
+ patArchive.setAgeUnit(map.get("ageUnit"));
+ patArchive.setAge2(ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
+ patArchive.setAgeUnit2(map.get("ageUnit2"));
+
+ patMedOuthosp1.setAge(patArchive.getAge() + patArchive.getAgeUnit() + patArchive.getAge2() + patArchive.getAgeUnit2());
+ patMedOuthosp1.setSex(patArchive.getSex());
+ patMedOuthosp1.setTelcode(patArchive.getTelcode());
+ patMedOuthosp1.setIdcardno(patArchive.getIdcardno());
+ }
+ ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
+ serviceSubtaskVO.setPatid(patMedOuthosp1.getPatid());
+ List<Long> sendstates = new ArrayList<>();
+ sendstates.add(1L);
+ sendstates.add(2L);
+ sendstates.add(3L);
+ serviceSubtaskVO.setSendstates(sendstates);
+ serviceSubtaskVO.setServiceType("3");
+ List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskBySendstate(serviceSubtaskVO);
+ if (!CollectionUtils.isEmpty(serviceSubtaskList)) patMedOuthosp1.setServerState("1");
+ }
+ }
+ return patMedOuthospQueryResps;
+ }
+
+ public Map<String, String> calculateAge(LocalDate birthdate, LocalDate today) {
+ if (birthdate == null || today.isBefore(birthdate)) {
+ return null;
+ }
+ Map<String, String> ageMap = new HashMap<>();
+
+ Period period = Period.between(birthdate, today);
+ long totalDays = ChronoUnit.DAYS.between(birthdate, today);
+ long totalMonths = ChronoUnit.MONTHS.between(birthdate, today);
+
+ int years = period.getYears();
+ int months = period.getMonths();
+ int days = period.getDays();
+
+ String ageUnit;
+ Integer age;
+ String ageUnit2 = null;
+ Integer age2 = null;
+
+ if (totalDays < 30) {
+ // 灏忎簬 1 涓湀锛屾寜澶╄绠�
+ ageUnit = "澶�";
+ age = (int) totalDays;
+ ageMap.put("age", age != null ? age.toString() : null);
+ ageMap.put("ageUnit", ageUnit);
+ ageMap.put("age2", null);
+ ageMap.put("ageUnit2", null);
+ } else if (totalMonths < 12) {
+ // 灏忎簬 涓�骞达紝鎸夋湀 + 澶╄绠�
+ ageUnit = "鏈�";
+ age = (int) totalMonths;
+ ageUnit2 = "澶�";
+ age2 = days;
+ ageMap.put("age", age != null ? age.toString() : null);
+ ageMap.put("ageUnit", ageUnit);
+ ageMap.put("age2", age2 != null ? age2.toString() : null);
+ ageMap.put("ageUnit2", ageUnit2);
+ } else {
+ // 澶т簬绛変簬 涓�骞达紝鎸夊勾 + 鏈堣绠�
+ ageUnit = "宀�";
+ age = years;
+ ageUnit2 = "鏈�";
+ age2 = months;
+ ageMap.put("age", age != null ? age.toString() : null);
+ ageMap.put("ageUnit", ageUnit);
+ ageMap.put("age2", age2 != null ? age2.toString() : null);
+ ageMap.put("ageUnit2", ageUnit2);
+ }
+
+ return ageMap;
}
/**
* 鏂板鎮h�呴棬璇婅褰�
+ * 鏍规嵁 admitdate 璺敱鍒板搴斿垎琛紱鑻ュ垎琛ㄤ笉瀛樺湪鍒欏啓鍏ヤ富琛�
*
* @param patMedOuthosp 鎮h�呴棬璇婅褰�
* @return 缁撴灉
*/
@Override
public int insertPatMedOuthosp(PatMedOuthosp patMedOuthosp) {
+ if (patMedOuthosp.getAdmitdate() != null) {
+ log.error("闂ㄦ�ュ氨璇婃椂闂翠笉鑳戒负绌�");
+ return 0;
+ }
patMedOuthosp.setCreateTime(DateUtils.getNowDate());
patMedOuthosp.setUpdateTime(DateUtils.getNowDate());
- return patMedOuthospMapper.insertPatMedOuthosp(patMedOuthosp);
+ patMedOuthosp.setGuid(UUID.randomUUID().toString());
+ //闇�瑕佹彃鍏ュ埌鍝釜琛紝鏍规嵁灏辫瘖鏃堕棿鐨勬棩鏈熸潵瀹氾紝濡傛灉鏍规嵁灏辫瘖鏃堕棿鏉ョ‘瀹氱殑琛ㄤ笉瀛樺湪锛屽垯瀛樺湪pat_med_outhosp琛ㄤ腑
+ String targetTable = resolveTargetTable(patMedOuthosp.getAdmitdate());
+ if (targetTable != null) {
+ log.info("[insert] 璺敱鍒板垎琛�: {}", targetTable);
+ return patMedOuthospMapper.insertIntoTable(targetTable, patMedOuthosp);
+ }
+ return 0;
}
/**
* 淇敼鎮h�呴棬璇婅褰�
+ * 鏍规嵁 admitdate 璺敱鍒板搴斿垎琛紱鑻ュ垎琛ㄤ笉瀛樺湪鍒欐敼涓昏〃
*
* @param patMedOuthosp 鎮h�呴棬璇婅褰�
* @return 缁撴灉
*/
@Override
public int updatePatMedOuthosp(PatMedOuthosp patMedOuthosp) {
- patMedOuthosp.setUpdateTime(DateUtils.getNowDate());
- return patMedOuthospMapper.updatePatMedOuthosp(patMedOuthosp);
+ if (patMedOuthosp.getSerialnum() == null) {
+ log.error("娴佹按鍙蜂笉鑳戒负绌�");
+ return 0;
+ }
+ PatMedOuthospQueryReq patMedOuthospQueryReq = new PatMedOuthospQueryReq();
+ patMedOuthospQueryReq.setSerialnum(patMedOuthosp.getSerialnum());
+ patMedOuthospQueryReq.setGuid(patMedOuthosp.getGuid());
+ patMedOuthospQueryReq.setOuthospno(patMedOuthosp.getOuthospno());
+ List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.callSpQueryOuthosp(patMedOuthospQueryReq);
+
+ if (patMedOuthosps == null || patMedOuthosps.size() == 0) {
+ insertPatMedOuthosp(patMedOuthosp);
+ } else {
+ patMedOuthosp.setUpdateTime(DateUtils.getNowDate());
+ String targetTable = resolveTargetTable(patMedOuthosp.getAdmitdate());
+ if (targetTable != null) {
+ log.info("[update] 璺敱鍒板垎琛�: {}", targetTable);
+ return patMedOuthospMapper.updateInTable(targetTable, patMedOuthosp);
+ }
+ }
+ return 0;
+ }
+
+ /**
+ * 鏍规嵁 create_time 鎺ㄧ畻鐩爣鍒嗚〃鍚嶏紝涓庡缓琛ㄧ瓥鐣ヤ繚鎸佷竴鑷�
+ * <ul>
+ * <li>6浣嶅悗缂�锛圷YYYMM锛夆啋 鎸夋湀鍒嗚〃</li>
+ * <li>8浣嶅悗缂�锛圷YYYMMdd锛夆啋 鎸夊搴﹀垎琛紝瀛e害鍚庣紑鍥哄畾涓� 0103/0406/0709/1012</li>
+ * <li>4浣嶅悗缂�锛圷YYY锛� 鈫� 鎸夊勾鍒嗚〃</li>
+ * </ul>
+ * 鎺ㄧ畻鍑鸿〃鍚嶅悗鏍¢獙琛ㄦ槸鍚﹀瓨鍦紝涓嶅瓨鍦ㄨ繑鍥� null锛堝洖钀戒富琛級
+ *
+ * @param createTime 鍒涘缓鏃堕棿锛屼负 null 鏃惰繑鍥� null
+ * @return 鐩爣鍒嗚〃鍚嶏紝鎴� null
+ */
+ private String resolveTargetTable(java.util.Date createTime) {
+ if (createTime == null) return null;
+ List<String> allTables = patMedOuthospMapper.getAllOuthospTableNames();
+ if (allTables == null || allTables.isEmpty()) return null;
+
+ // 鍒ゆ柇褰撳墠鍒嗚〃鍚庣紑闀垮害锛堜互绗竴寮犺〃涓哄噯锛�
+ String sample = allTables.get(0);
+ String suffix = sample.replaceFirst("pat_med_outhosp_", "");
+ int suffixLen = suffix.length();
+
+ java.util.Calendar cal = java.util.Calendar.getInstance();
+ cal.setTime(createTime);
+ int year = cal.get(java.util.Calendar.YEAR);
+ int month = cal.get(java.util.Calendar.MONTH) + 1; // 1-based
+
+ String targetTable;
+ if (suffixLen == 4) {
+ // 鎸夊勾
+ targetTable = "pat_med_outhosp_" + year;
+ } else if (suffixLen == 6) {
+ // 鎸夋湀
+ targetTable = String.format("pat_med_outhosp_%d%02d", year, month);
+ } else {
+ // 鎸夊搴︼紙8浣嶅悗缂�锛屽 20260103锛�
+ String quarterSuffix;
+ if (month <= 3) quarterSuffix = "0103";
+ else if (month <= 6) quarterSuffix = "0406";
+ else if (month <= 9) quarterSuffix = "0709";
+ else quarterSuffix = "1012";
+ targetTable = "pat_med_outhosp_" + year + quarterSuffix;
+ }
+
+ boolean exists = allTables.contains(targetTable);
+
+ log.info("[璺敱] createTime={} 鈫� 鐩爣琛�={} exists={}", createTime, targetTable, exists);
+ return exists ? targetTable : "pat_med_outhosp";
}
/**
@@ -89,7 +272,8 @@
*/
@Override
public int deletePatMedOuthospByIds(Long[] ids) {
- return patMedOuthospMapper.deletePatMedOuthospByIds(ids);
+// return patMedOuthospMapper.deletePatMedOuthospByIds(ids);
+ return 0;
}
/**
@@ -100,22 +284,26 @@
*/
@Override
public int deletePatMedOuthospById(Long id) {
- return patMedOuthospMapper.deletePatMedOuthospById(id);
+// return patMedOuthospMapper.deletePatMedOuthospById(id);
+ return 0;
}
@Override
public PatMedRes selectPatMedOuthospCount(PatMedReq patMedReq) {
- // 鑾峰彇褰撳墠鐧婚檰浜虹殑閮ㄩ棬鏉冮檺
- if (CollectionUtils.isEmpty(patMedReq.getDeptcodeList())) {
- Long userId = SecurityUtils.getUserId();
- List<SysDept> sysDepts = sysUserDeptMapper.selectDeptListByUserId(userId);
- List<String> deptCode = new ArrayList<>();
- for (SysDept sysDept : sysDepts) {
- deptCode.add(sysDept.getDeptId().toString());
- }
- patMedReq.setDeptcodeList(deptCode);
- }
- return patMedOuthospMapper.selectPatMedOuthospCount(patMedReq);
+ //鑾峰彇闂ㄨ瘖鐥呬汉淇℃伅锛屽苟缁熻浜烘暟鍜屼汉娆�
+ PatMedOuthospQueryReq req = new PatMedOuthospQueryReq();
+ String deptcodes = CollectionUtils.isEmpty(patMedReq.getDeptcodeList()) ? null : String.join(",", patMedReq.getDeptcodeList());
+ req.setBeginAdmitdate(patMedReq.getStartDate());
+ req.setEndAdmitdate(patMedReq.getEndDate());
+ req.setDeptcode(deptcodes);
+ req.setOrgid(patMedReq.getOrgid());
+// req.setCampusid(patMedReq.getCampusid());
+ Long count = patMedOuthospMapper.callSpQueryOuthospCount(req);
+
+ //鏌ヨ闅忚浜烘鍜屼汉鏁�
+ PatMedRes patMedRes = serviceSubtaskMapper.selectVisitCount(patMedReq);
+ patMedRes.setRc(count == null ? 0 : count.intValue());
+ return patMedRes;
}
@Override
@@ -126,4 +314,213 @@
}
return patMedOuthosps.get(0);
}
+
+ /**
+ * 闂ㄨ瘖鐥呬汉淇℃伅澶勭悊
+ *
+ * @return
+ */
+ @Override
+ public Integer dealOutpatientInfo() {
+ PatMedOuthosp patMedOuthosp = new PatMedOuthosp();
+ patMedOuthosp.setDiagcheckFlag("0");
+ List<PatMedOuthosp> patMedOuthosps = selectPatMedOuthospList(patMedOuthosp);
+ for (PatMedOuthosp patMedOuthosp1 : patMedOuthosps) {
+ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosp1.getPatid());
+
+ //鏍规嵁鎮h�呯瀹わ紝鑾峰彇璇ョ柧鐥呯殑闀挎湡浠诲姟
+ ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
+ serviceTaskdept.setLongtask(1L);
+ serviceTaskdept.setDeptCode(patMedOuthosp1.getDeptcode());
+ serviceTaskdept.setServiceType("3");
+ List<ServiceTaskdept> serviceTaskdeptList = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept);
+ if (org.apache.commons.collections4.CollectionUtils.isEmpty(serviceTaskdeptList) || serviceTaskdeptList.size() == 0) {
+ patMedOuthosp1.setDeptcheckFlag("2");
+ patMedOuthosp1.setRemark("閫氳繃閮ㄩ棬,娌℃湁鎵惧埌闂ㄨ瘖闅忚浠诲姟ID");
+ updatePatMedOuthosp(patMedOuthosp1);
+ } else {
+ for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) {
+ writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedOuthosp1, patArchive, 1);
+ }
+ }
+
+ // 鏍规嵁鎮h�呯殑鐤剧梾锛岃幏鍙栬鐤剧梾鐨勯暱鏈熶换鍔�
+ ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag();
+ serviceTaskdiag.setLongtask(1L);
+ serviceTaskdiag.setIcd10code(patMedOuthosp1.getIcd10code());
+ List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagMapper.selectServiceTaskdiagList(serviceTaskdiag);
+ //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
+ if (org.apache.commons.collections4.CollectionUtils.isEmpty(serviceTaskdiags) || serviceTaskdiags.size() == 0) {
+ patMedOuthosp1.setDiagcheckFlag("2");
+ patMedOuthosp1.setRemark("閫氳繃icd10,娌℃湁鎵惧埌闂ㄨ瘖闅忚浠诲姟ID");
+ updatePatMedOuthosp(patMedOuthosp1);
+ } else {
+ for (ServiceTaskdiag serviceTaskdept1 : serviceTaskdiags) {
+ writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedOuthosp1, patArchive, 2);
+ }
+ }
+
+ }
+ return 1;
+ }
+
+ /**
+ * @param taskid
+ * @param check
+ * @param patMedOuthosp
+ * @param patArchive
+ * @param type 1 绉戝 2 鐤剧梾
+ */
+ private void writeInSubTask(Long taskid, Boolean check, PatMedOuthosp patMedOuthosp, PatArchive patArchive, Integer type) {
+
+ ServiceTask st = new ServiceTask();
+ st.setTaskid(taskid);
+ st.setSendState(2L);
+ List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st);
+ if (org.apache.commons.collections4.CollectionUtils.isEmpty(serviceTasks)) {
+ log.info("璇ユ偅鑰呯柧鐥呴殢璁块暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓猴細{}", taskid);
+ if (type == 1) patMedOuthosp.setDiagcheckFlag("2");
+ if (type == 2) patMedOuthosp.setDeptcheckFlag("2");
+ patMedOuthosp.setRemark("璇ユ偅鑰呴棬璇婇殢璁块暱鏈熶换鍔′笉瀛樺湪,浠诲姟ID涓�:" + taskid);
+ updatePatMedOuthosp(patMedOuthosp);
+ return;
+ }
+ ServiceTask serviceTask = serviceTasks.get(0);
+ //灏佽serviceSubtask
+ ServiceSubtask serviceSubtask = boxedServiceSubtask(serviceTask, patMedOuthosp, patArchive);
+ Integer i = 0;
+ //鍏堝垽鏂竴涓嬶紝鏄惁闇�瑕佹牎楠�
+ if (check) {
+ //鍦ㄦ柊澧炰箣鍓嶏紝鍏堥�氳繃鎮h�匢D锛宻endstate=2鏌ヨ涓�涓嬶紝鍦ㄦ墍鏈夐暱鏈熶换鍔′腑锛屾槸涓嶆槸杩樻湁璇ユ偅鑰呭緟鎵ц鐨勪换鍔★紝鏈夌殑璇�,姣旇緝涔嬪墠鐨別ndtime鏄惁灏忎簬褰撳墠鐨別ndtaime,濡傛灉涔嬪墠鐨勫皬浜庣幇鍦ㄧ殑锛屽垯鐩存帴灏嗕箣鍓嶇殑鍋滄帀锛堝師鍥犲啀鍏ラ櫌锛�
+ ServiceSubtaskEntity subtask = new ServiceSubtaskEntity();
+ subtask.setPatid(patArchive.getId());
+ subtask.setSendstate(2L);
+ subtask.setTaskid(taskid);
+ List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(subtask);
+ log.info("璇ユ偅鑰呭緟鎵ц鐨勪换鍔�:{}", CollectionUtils.isEmpty(selectServiceSubtaskList) ? null : selectServiceSubtaskList.size());
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(selectServiceSubtaskList) && selectServiceSubtaskList.size() > 0) {
+ for (ServiceSubtask serviceSubtask1 : selectServiceSubtaskList) {
+ if (Objects.isNull(serviceSubtask1.getLongSendTime())) {
+ //涓嶆槸闀挎湡浠诲姟锛屼笉澶勭悊
+ continue;
+ }
+
+ //灏嗕箣鍓嶇殑鍋滄帀
+ serviceSubtask1.setSendstate(6L);
+ serviceSubtask1.setRemark("鎮h�呭凡缁忓洖闄㈠璇�");
+ serviceSubtask1.setResult("success");
+ serviceSubtask1.setFinishtime(new Date());
+ serviceSubtask1.setUpdateBy(serviceTask.getUpdateBy());
+ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
+ //閲嶆柊鏂板瀛愪换鍔�
+ i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
+ }
+ } else {
+ if (StringUtils.isEmpty(serviceSubtask.getPhone())) {
+ serviceSubtask.setRemark("鎵嬫満鍙蜂负绌�");
+ serviceSubtask.setSendstate(4L);
+ serviceSubtask.setResult("error");
+// serviceSubtask.setFinishtime(new Date());
+ }
+ serviceSubtask.setCreateBy(serviceTask.getCreateBy());
+ serviceSubtask.setCreateTime(new Date());
+ i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
+ }
+ } else {
+ if (StringUtils.isEmpty(serviceSubtask.getPhone())) {
+ serviceSubtask.setRemark("鎵嬫満鍙蜂负绌�");
+ serviceSubtask.setSendstate(4L);
+ serviceSubtask.setResult("error");
+// serviceSubtask.setFinishtime(new Date());
+
+ }
+ serviceSubtask.setCreateBy(serviceTask.getCreateBy());
+ serviceSubtask.setCreateTime(new Date());
+ i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
+ }
+ if (i == 1) {
+ //灏哻heck_flag鏀规垚1锛堝凡澶勭悊锛�
+ PatMedOuthosp patMedOuthosp1 = new PatMedOuthosp();
+ patMedOuthosp1.setId(patMedOuthosp.getId());
+ if (type == 1) patMedOuthosp1.setDiagcheckFlag("2");
+ if (type == 2) patMedOuthosp1.setDeptcheckFlag("2");
+ updatePatMedOuthosp(patMedOuthosp1);
+ } else {
+ //鐢熸垚瀛愪换鍔″け璐ワ紝
+ log.info("鐢熸垚瀛愪换鍔″け璐erviceSubtask鐨則askid涓猴細{},patid涓猴細{}", serviceSubtask.getTaskid(), serviceSubtask.getPatid());
+ PatMedOuthosp pmo = new PatMedOuthosp();
+ pmo.setGuid(patMedOuthosp.getGuid());
+ pmo.setSerialnum(patMedOuthosp.getSerialnum());
+ if (type == 1) pmo.setDiagcheckFlag("2");
+ if (type == 2) pmo.setDeptcheckFlag("2");
+ pmo.setRemark("鐢熸垚瀛愪换鍔″け璐�");
+ updatePatMedOuthosp(pmo);
+ }
+ }
+
+ //灏佽serviceSubtask
+ private ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOuthosp patMedOuthosp, PatArchive patArchive) {
+ ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
+ serviceSubtask.setTaskid(serviceTask.getTaskid());
+ if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid()))
+ serviceSubtask.setLibtemplateid(Long.valueOf(serviceTask.getLibtemplateid()));
+ serviceSubtask.setDrcode(patMedOuthosp.getDrcode());
+ serviceSubtask.setDrname(patMedOuthosp.getDrname());
+ serviceSubtask.setDeptcode(patMedOuthosp.getDeptcode());
+ serviceSubtask.setInhospid(patMedOuthosp.getId());
+ serviceSubtask.setHospno(patMedOuthosp.getOuthospno());
+ serviceSubtask.setDeptname(patMedOuthosp.getDeptname());
+ serviceSubtask.setTemplateid(serviceTask.getTemplateid());
+ serviceSubtask.setTemplatename(serviceTask.getTemplatename());
+ serviceSubtask.setPatid(patArchive.getId());
+ serviceSubtask.setSendname(patArchive.getName());
+ serviceSubtask.setSfzh(patArchive.getIdcardno());
+ serviceSubtask.setLeavediagname(patMedOuthosp.getDiagname());
+ serviceSubtask.setLeaveicd10code(patMedOuthosp.getIcd10code());
+ serviceSubtask.setSfzh(patArchive.getIdcardno());
+ serviceSubtask.setPhone(patArchive.getTelcode());
+ if (StringUtils.isBlank(patArchive.getTelcode())) serviceSubtask.setPhone(patArchive.getRelativetelcode());
+ serviceSubtask.setSex(patArchive.getSex());
+ serviceSubtask.setAge(patArchive.getAge());
+ serviceSubtask.setSendstate(2L);
+ serviceSubtask.setServiceType(serviceTask.getServiceType());
+ serviceSubtask.setPreachform(serviceTask.getPreachform());
+ serviceSubtask.setHospType("1");
+ serviceSubtask.setCreateTime(new Date());
+ serviceSubtask.setUpdateTime(new Date());
+ serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
+ serviceSubtask.setUpdateTime(new Date());
+ serviceSubtask.setVisitDeptCode(patMedOuthosp.getDeptcode());
+ serviceSubtask.setVisitDeptName(patMedOuthosp.getDeptname());
+ serviceSubtask.setUpdateTime(new Date());
+ //璁剧疆鍙戦�佹椂闂�
+ if (serviceTask.getSendDay() == null) serviceTask.setSendDay(1L);
+ Date newDate = addDays(patMedOuthosp.getAdmitdate(), serviceTask.getSendDay().intValue());
+ if (patMedOuthosp.getFudate() != null) {
+ //濡傛灉闂ㄨ瘖琛ㄦ湁鎸囧畾闅忚鏃堕棿锛岄偅灏辩敤鎸囧畾鐨�
+ newDate = patMedOuthosp.getFudate();
+ }
+ serviceSubtask.setLongSendTime(newDate);
+ serviceSubtask.setVisitTime(newDate);
+ //鎮h�呭彂閫佹椂闂�
+ if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) {
+ String remark = patArchive.getNotrequiredreason();
+ serviceSubtask.setRemark(remark);
+ serviceSubtask.setResult("error");
+// serviceSubtask.setFinishtime(new Date());
+ //涓嶆墽琛�
+ serviceSubtask.setSendstate(4L);
+ }
+ return serviceSubtask;
+ }
+
+ private Date addDays(Date date, Integer days) {
+ if (days == null) {
+ days = 1;
+ }
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+ calendar.add(Calendar.DAY_OF_MONTH, days);
+ return calendar.getTime();
+ }
}
--
Gitblit v1.9.3