diff --git a/platform-biz-service/src/main/resources/mainOrm/master/MatDeliverPushRecordMapper.xml b/platform-biz-service/src/main/resources/mainOrm/master/MatDeliverPushRecordMapper.xml
index e6fbe38..bbca983 100644
--- a/platform-biz-service/src/main/resources/mainOrm/master/MatDeliverPushRecordMapper.xml
+++ b/platform-biz-service/src/main/resources/mainOrm/master/MatDeliverPushRecordMapper.xml
@@ -17,8 +17,8 @@
- INSERT INTO mat_deliver_push_record(weekType,parentId)
- VALUES (#{week_type},#{parent_id})
+ INSERT INTO mat_deliver_push_record(week_type,parent_id)
+ VALUES (#{weekType},#{parentId})
diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/controller/MsgGenerateController.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/controller/MsgGenerateController.java
index 5f397f4..22de7ed 100644
--- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/controller/MsgGenerateController.java
+++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/controller/MsgGenerateController.java
@@ -148,4 +148,11 @@ public class MsgGenerateController extends BaseController {
return "";
}
+ @RequestMapping(method = RequestMethod.GET, value = "/generateChanKangAmsMsg")
+ @ResponseBody
+ public String generateChanKangAmsMsg(){
+ msgGenerateService.generateChanKangAmsMsg(null);
+ return "";
+ }
+
}
diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/remote/AmsMessageService.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/remote/AmsMessageService.java
index cabdc95..1bd3d09 100644
--- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/remote/AmsMessageService.java
+++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/remote/AmsMessageService.java
@@ -10,6 +10,7 @@ import com.lyms.platform.msg.constants.ConfigInterface;
import com.lyms.platform.msg.model.MessageContent;
import com.lyms.platform.msg.model.MessageResponseEntity;
import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -34,6 +35,21 @@ public class AmsMessageService {
public static final String DATA_URL= ConfigInterface.DATA_URL;
private static final String AUTHORIZATION = "healthbaby2015";
+
+ public static JSONObject getArticleList(Map params){
+ Map headers = new HashMap();
+ headers.put("Authorization", AUTHORIZATION);
+ String str = HttpRequest.sendGet("http://ams.api.healthbaby.com.cn/v1/articleList",
+ params, headers);
+ try {
+ return JSONObject.fromObject(str);
+ } catch (Exception e) {
+ ExceptionUtils.catchException(e,"getArticleList exception");
+ }
+ return null;
+ }
+
+
public static Map> getMessageTemplateMap(String hospitalId,AmsServiceTypeEnum serviceType) {
System.out.println("ams > hospitalId=" + hospitalId + ";serviceType=" + serviceType);
diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/IBaseService.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/IBaseService.java
index 2b26455..36333bf 100644
--- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/IBaseService.java
+++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/IBaseService.java
@@ -1,5 +1,8 @@
package com.lyms.platform.msg.service;
+import com.lyms.platform.msg.model.HighScoreResult;
+import com.lyms.platform.permission.model.MatDeliverPushRecord;
+import com.lyms.platform.pojo.MaternalDeliverModel;
import com.lyms.platform.pojo.SmsConfigModel;
import com.lyms.platform.pojo.SmsTemplateModel;
@@ -42,4 +45,11 @@ public interface IBaseService {
public String getPregnantSmsPrefix(SmsConfigModel config,String pid,String mainPrefix,SmsTemplateModel template);
public String getDoctorName(String doctorId);
+
+ public MaternalDeliverModel getModelByPid(String pid);
+
+ public HighScoreResult queryRiskList(List ids);
+
+ public Integer selectByWeek(String parentId,Integer weeks);
+ void addWeek(MatDeliverPushRecord matDeliverPushRecord);
}
diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/IMsgGenerateService.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/IMsgGenerateService.java
index e749dae..3d1f8c8 100644
--- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/IMsgGenerateService.java
+++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/IMsgGenerateService.java
@@ -30,6 +30,11 @@ public interface IMsgGenerateService {
*/
void generateChanAmsMsg(String generateHospitalId);
+ /**
+ * 生成产后康复ams推送消息
+ * @param generateHospitalId
+ */
+ void generateChanKangAmsMsg(String generateHospitalId);
/**
* 生成 课程推送
diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/BaseServiceImpl.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/BaseServiceImpl.java
index a21ff1b..e48cd84 100644
--- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/BaseServiceImpl.java
+++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/BaseServiceImpl.java
@@ -10,6 +10,7 @@ import com.lyms.platform.msg.model.HighScoreResult;
import com.lyms.platform.msg.service.IBaseService;
import com.lyms.platform.msg.utils.DateUtils;
import com.lyms.platform.permission.model.*;
+import com.lyms.platform.permission.service.MatDeliverPushRecordService;
import com.lyms.platform.permission.service.OrganizationService;
import com.lyms.platform.permission.service.PatientServiceService;
import com.lyms.platform.permission.service.UsersService;
@@ -68,6 +69,8 @@ public class BaseServiceImpl implements IBaseService {
@Autowired
private BasicConfigService basicConfigService;
+ @Autowired
+ private MatDeliverPushRecordService matDeliverPushRecordService;
/**
* 查询出对应周几要发送的的医院配置
@@ -540,6 +543,28 @@ public class BaseServiceImpl implements IBaseService {
}
}
+ @Override
+ public MaternalDeliverModel getModelByPid(String pid) {
+ Query query = new Query();
+ query.addCriteria(Criteria.where("parentId").is(pid).and("yn").is(1));
+ List modelList = mongoTemplate.find(query, MaternalDeliverModel.class);
+ return modelList.get(0);
+ }
+
+ @Override
+ public HighScoreResult queryRiskList(List ids) {
+ return queryRisk(ids);
+ }
+
+ @Override
+ public Integer selectByWeek(String parentId, Integer weeks) {
+ return matDeliverPushRecordService.selectByWeek(parentId,weeks);
+ }
+
+ @Override
+ public void addWeek(MatDeliverPushRecord matDeliverPushRecord) {
+ matDeliverPushRecordService.add(matDeliverPushRecord);
+ }
/**
diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/MsgGenerateServiceImpl.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/MsgGenerateServiceImpl.java
index 50be0e2..db47fe6 100644
--- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/MsgGenerateServiceImpl.java
+++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/MsgGenerateServiceImpl.java
@@ -247,6 +247,26 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService {
}
}
+ @Override
+ public void generateChanKangAmsMsg(String generateHospitalId) {
+ List configModels = baseService.getHospitalConfigsByWeek(generateHospitalId);
+ logger.info("The generateChanKangAmsMsg configs hospital size is {}", configModels.size());
+ if (CollectionUtils.isNotEmpty(configModels))
+ {
+ int end = 0;
+ for (int i = 0; i < configModels.size(); i += DEFAULT_BATCH_SIZE) {
+ end = (end + DEFAULT_BATCH_SIZE);
+ if (end > configModels.size()) {
+ end = configModels.size();
+ }
+ ChanKangAmsMsgGenerateWorker checkPointCountWorker = new ChanKangAmsMsgGenerateWorker(configModels.subList(i,end),
+ baseService,yunBookbuildingService);
+ pool.execute(checkPointCountWorker);
+ }
+
+ }
+ }
+
/**
* 生成模板消息
* @param generateHospitalId
@@ -348,6 +368,7 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService {
generatePatAmsMsg(null);
generateBabyAmsMsg(null);
generateChanAmsMsg(null);
+ generateChanKangAmsMsg(null);
generateBabyDiseaseAmsMsg(null);
generateResidentAmsMsg(null);
}
diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/utils/DateUtils.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/utils/DateUtils.java
index e477ddd..31d7503 100644
--- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/utils/DateUtils.java
+++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/utils/DateUtils.java
@@ -236,7 +236,7 @@ public class DateUtils {
Date endDate = DateUtils.getNewDate(new Date(), -13, "周", 1);
System.out.println(DateUtils.getDateStr(DateUtils.formatDate(startDate, DateUtils.Y_M_D),DateUtils.Y_M_D));
System.out.println(DateUtils.getDateStr(DateUtils.formatDate(endDate, DateUtils.Y_M_D),DateUtils.Y_M_D));*/
-
- System.out.println(DateUtils.getNewDate(DateUtils.preaseDate("2023-09-26 8:00:00",DateUtils.Y_M_D_H_M_S),13, "周", -1));
+ System.out.println(getWeekOfDate(new Date()));
+ //System.out.println(DateUtils.getNewDate(DateUtils.preaseDate("2023-09-26 8:00:00",DateUtils.Y_M_D_H_M_S),13, "周", -1));
}
}
diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/ChanKangAmsMsgGenerateWorker.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/ChanKangAmsMsgGenerateWorker.java
new file mode 100644
index 0000000..1371f55
--- /dev/null
+++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/ChanKangAmsMsgGenerateWorker.java
@@ -0,0 +1,211 @@
+package com.lyms.platform.msg.worker;
+
+import com.lyms.platform.beans.MsgListRequest;
+import com.lyms.platform.beans.MsgRequest;
+import com.lyms.platform.biz.service.YunBookbuildingService;
+import com.lyms.platform.common.enums.*;
+import com.lyms.platform.common.utils.JsonUtil;
+import com.lyms.platform.common.utils.StringUtils;
+import com.lyms.platform.msg.model.HighScoreResult;
+import com.lyms.platform.msg.remote.AmsMessageService;
+import com.lyms.platform.msg.service.IBaseService;
+import com.lyms.platform.msg.utils.DateUtils;
+import com.lyms.platform.msg.utils.HelperUtils;
+import com.lyms.platform.permission.model.MatDeliverPushRecord;
+import com.lyms.platform.pojo.MaternalDeliverModel;
+import com.lyms.platform.pojo.Patients;
+import com.lyms.platform.pojo.SmsConfigModel;
+import com.lyms.platform.query.PatientsQuery;
+import org.apache.commons.collections.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.*;
+
+/**
+ * 产后康复
+ */
+public class ChanKangAmsMsgGenerateWorker implements Runnable {
+ private static final Logger logger = LoggerFactory.getLogger(ChanKangAmsMsgGenerateWorker.class);
+
+ private List configs;
+
+ private IBaseService baseService;
+
+ private YunBookbuildingService yunBookbuildingService;
+
+
+ public ChanKangAmsMsgGenerateWorker(List configs, IBaseService baseService,
+ YunBookbuildingService yunBookbuildingService) {
+ this.configs = configs;
+ this.baseService = baseService;
+ this.yunBookbuildingService = yunBookbuildingService;
+
+ }
+
+ @Override
+ public void run() {
+ if (CollectionUtils.isNotEmpty(configs)) {
+ for (SmsConfigModel config : configs) {
+
+ String hospitalId = config.getHospitalId();
+ if (StringUtils.isEmpty(hospitalId)) {
+ continue;
+ }
+
+ //判断医院是否运行
+ if (!baseService.isRunning(hospitalId)) {
+ continue;
+ }
+
+ String serviceStr = config.getSmsService();
+ String serviceType = config.getServiceType();
+
+ //判断消息服务是否启动
+ int service = baseService.isStartService(SmsServiceEnums.CHKFTX.getId(), serviceStr, serviceType);
+ if (service == 0) {
+ continue;
+ }
+
+
+ logger.info("The ChanKangAmsMsgGenerateWorker hospital id is " + hospitalId);
+
+ PatientsQuery patientsQuery = new PatientsQuery();
+ patientsQuery.setYn(YnEnums.YES.getId());
+ patientsQuery.setHospitalId(hospitalId);
+ //1孕妇 3 产妇
+ patientsQuery.setType(3);
+ patientsQuery.setDueStatus(0);
+
+ List buildType = new ArrayList();
+ buildType.add(0);
+ buildType.add(2);
+ patientsQuery.setSmsBuildTypeList(buildType);
+
+
+ //健康指导短信 只能是类型为 增值服务 开通状态 才发送
+ patientsQuery.setServiceType(ServiceTypeEnums.ADD_MAT_DELIVER_SERVICE.getId());
+ patientsQuery.setServiceStatus(ServiceStatusEnums.STANDARD_OPEN.getId());
+
+
+ //查询符合条件的产妇
+ List patients = yunBookbuildingService.queryPregnantWithQuery(patientsQuery);
+ System.out.println("amsSmses--->"+patients);
+ if (CollectionUtils.isNotEmpty(patients)) {
+
+ //发送短信集合
+ MsgListRequest list = new MsgListRequest();
+ List messages = new ArrayList<>();
+ for (Patients pat : patients) {
+ if (pat == null || pat.getFmDate() == null) {
+ continue;
+ }
+
+ MaternalDeliverModel maternalDeliverModel = baseService.getModelByPid(pat.getId());
+
+ System.out.println("maternalDeliverModel--->"+maternalDeliverModel);
+ //分娩类型
+ String deliveryMode = getDelivery(maternalDeliverModel);
+ //计算产后多少周 按分娩日期计算
+ int weeks = (DateUtils.daysBetween(pat.getFmDate(), new Date()) / 7)>12?12:DateUtils.daysBetween(pat.getFmDate(), new Date()) / 7;
+
+ String parentId =maternalDeliverModel.getParentId();
+
+ Integer id = baseService.selectByWeek(parentId, weeks);
+ if (id != null) {
+ continue;
+ }
+
+
+ List riskId = pat.getRiskFactorId();
+ StringBuffer sb = new StringBuffer();
+ if (CollectionUtils.isNotEmpty(riskId)) {
+ HighScoreResult highScoreResult = baseService.queryRiskList(riskId);
+ List