|
|
@@ -0,0 +1,76 @@
|
|
|
+package com.lc.ibps.platform.plan.job;
|
|
|
+
|
|
|
+import com.lc.ibps.base.core.util.AppUtil;
|
|
|
+import com.lc.ibps.base.core.util.BeanUtils;
|
|
|
+import com.lc.ibps.base.framework.table.ICommonDao;
|
|
|
+import com.lc.ibps.cloud.message.util.MessageQueueProductorUtil;
|
|
|
+import org.quartz.JobExecutionContext;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+public class SampleDisposalJob extends AbstractJob {
|
|
|
+
|
|
|
+ private static final Logger logger = LoggerFactory.getLogger(SampleDisposalJob.class);
|
|
|
+ private ICommonDao<?> commonDao = AppUtil.getBean(ICommonDao.class);
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void executeJob(JobExecutionContext context) throws Exception {
|
|
|
+ //获取接收人及地点
|
|
|
+ List<Map<String, Object>> recipient = recipient();
|
|
|
+ if(BeanUtils.isNotEmpty(recipient)){
|
|
|
+ //step1: 查询出所有需要发消息的数据
|
|
|
+ String diDian = recipient.get(0).get("di_dian_").toString();
|
|
|
+ String jieShouRenYuan = recipient.get(0).get("jie_shou_ren_yuan").toString();
|
|
|
+ List<Map<String, Object>> queryParam = queryData(diDian);
|
|
|
+ //开始发送消息
|
|
|
+ sendMessage(queryParam,jieShouRenYuan);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<Map<String, Object>> queryData(String diDian) {
|
|
|
+ String querySql = " select id_,qi_ta_,chu_li_shu_liang_,di_dian_,shi_fou_guo_shen_,nao_ji_ye_ from t_jyhypjlb where shi_fou_guo_shen_ = '待弃置' and di_dian_ = '%s'";
|
|
|
+ querySql = String.format(querySql, diDian);
|
|
|
+ List<Map<String, Object>> list = (List<Map<String, Object>>) commonDao.query(querySql);
|
|
|
+ LocalDate currentDate = LocalDate.now(); //获取当前时间不含时间
|
|
|
+ ArrayList<Map<String, Object>> resList = new ArrayList<>();
|
|
|
+ for (Map<String, Object> item:list) {
|
|
|
+ String xiaoQi = item.get("nao_ji_ye_").toString();
|
|
|
+ String jieZhiRiQi = xiaoQi.substring(0, 10);
|
|
|
+ LocalDate expiryDate = LocalDate.parse(jieZhiRiQi, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
+ if(currentDate.isAfter(expiryDate)){
|
|
|
+ resList.add(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return resList;
|
|
|
+ }
|
|
|
+ private void sendMessage(List<Map<String, Object>> list,String userIDs){
|
|
|
+ if(BeanUtils.isNotEmpty(list) && BeanUtils.isNotEmpty(userIDs)){
|
|
|
+ //转换接收人
|
|
|
+ List<String> receiver = Arrays.asList(userIDs.split(","));
|
|
|
+ String title = "【检验后标本的保存和弃置记录表】中存在已到期的标本,请及时处理";
|
|
|
+ String neiRong ="以下样本即将过期:<br>";
|
|
|
+ for (Map<String,Object> item : list) {
|
|
|
+ //拼接内容
|
|
|
+ if(neiRong.equals("以下样本即将过期:<br>")){
|
|
|
+ neiRong = neiRong + "样品类别:" + item.get("qi_ta_").toString() + "-截止日期:" + item.get("nao_ji_ye_").toString();
|
|
|
+ }else{
|
|
|
+ neiRong = neiRong + "<br>" + "样品类别:" + item.get("qi_ta_").toString() + "-截止日期:" + item.get("nao_ji_ye_").toString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ MessageQueueProductorUtil.send("SampleDisposalJob", "system" , "inner", receiver,null , title, neiRong, null, null, null);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<Map<String, Object>> recipient(){
|
|
|
+ String querySql = "select di_dian_ ,jie_shou_ren_yuan FROM t_jyhbbbchqzjsry LIMIT 1";
|
|
|
+ List<Map<String, Object>> list = (List<Map<String, Object>>) commonDao.query(querySql);
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+}
|