ソースを参照

川北样品弃置保存消息提醒

wy 10 ヶ月 前
コミット
0b676db3fc

+ 76 - 0
ibps-provider-root/modules/provider-platform/src/main/java/com/lc/ibps/platform/plan/job/SampleDisposalJob.java

@@ -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;
+    }
+}