判断 提醒时间是否小于 当前时间

// 添加备忘信息
public void add(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=GBK");
StringUtils su = new StringUtils();
MemoForm f = new MemoForm();
f.setTitle(su.StringtoSql(su.toGBK(request.getParameter("title")))); // 获取标题
f.setRemindTime(request.getParameter("remindTime")); // 获取提醒时间
f.setContent(su.StringtoSql(su.toGBK(request.getParameter("content")))); // 获取内容
int remindMode = Integer.parseInt(request.getParameter("remindMode"));
f.setRemindMode(remindMode); // 获取提醒方式
boolean over = false; // 是否过期
// 根据提醒方式获取标记信息
switch (remindMode) {
case 0:
String time = request.getParameter("flag");
time=time.substring(0,time.indexOf("-")+1)+String.valueOf(Integer.parseInt(time.substring(time.indexOf("-")+1,time.lastIndexOf("-"))))+"-"+String.valueOf(Integer.parseInt(time.substring(time.lastIndexOf("-")+1,time.length())));
f.setFlag(time);
time += " " + request.getParameter("remindTime")+":00";
try {
Date dateR = java.text.DateFormat.getDateTimeInstance().parse(
time); // 获取提醒时间
Date dateC = new Date(); // 获取当前时间
if (dateR.getTime() < dateC.getTime()) {
over = true; // 表示已经过期
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("判断是否过期时产生的错误:"+e.getMessage());
}
break;
case 2:
case 3:
String flag[] = request.getParameterValues("flag");
String temp = "";
for (int i = 0; i < flag.length; i++) {
temp = temp + flag[i] + ",";
}
//temp = temp.substring(0, temp.length() - 1);
f.setFlag(temp);
break;
case 4:
f.setFlag(request.getParameter("flag_m") + "-"
+ request.getParameter("flag_d"));
break;
}
if (over) {
request.setAttribute("error", "该备忘信息已经过期,不能进行创建!");
request.getRequestDispatcher("error.jsp")
.forward(request, response);
} else {
HttpSession session = request.getSession();
if (null == session.getAttribute("userName")) {
request.setAttribute("error", "您的账户已经过期,请重新登录!");
request.getRequestDispatcher("error.jsp").forward(request,
response);
} else {
f.setCreator(su.toGBK(session.getAttribute("userName")
.toString())); // 获取并保存创建者

int r = memoDAO.insert(f);
//int r=1;
if (r == 1) {
request.setAttribute("messages", 1);
request.getRequestDispatcher("memo_ok.jsp").forward(
request, response);
} else if (r == 2) {
request.setAttribute("error", "该备忘信息已经存在!");
request.getRequestDispatcher("error.jsp").forward(request,
response);
} else {
request.setAttribute("error", "添加备忘信息失败!");
request.getRequestDispatcher("error.jsp").forward(request,
response);
}
}
}
}
这个需求可以通过编写一个Java程序来实现。大致思路如下: 1. 读取每种料号的最低库存数据,并存储到一个数据结构中,如Map。 2. 每月10日,遍历所有料号,判断当前库存是否小于最低库存。 3. 如果小于最低库存,则通过Java Mail API发送提醒邮件到指定的收件邮箱。 下面是一个简单的Java代码示例: ```java import java.util.*; import javax.mail.*; import javax.mail.internet.*; public class InventoryChecker { // 存储每种料号的最低库存数据 private Map<String, Integer> minInventoryMap; public InventoryChecker() { // 在构造函数中初始化最低库存数据 minInventoryMap = new HashMap<String, Integer>(); minInventoryMap.put("料号1", 100); minInventoryMap.put("料号2", 200); // ... } public void checkInventory() { // 获取当前日期 Calendar calendar = Calendar.getInstance(); int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); // 如果当前日期不是10日,则直接返回 if (dayOfMonth != 10) { return; } // 遍历所有料号,判断当前库存是否小于最低库存 for (String materialNo : minInventoryMap.keySet()) { int currentInventory = getInventory(materialNo); int minInventory = minInventoryMap.get(materialNo); if (currentInventory < minInventory) { // 发送提醒邮件 sendEmail(materialNo); } } } // 获取指定料号的当前库存 private int getInventory(String materialNo) { // TODO: 实现获取库存的逻辑 return 0; } // 发送提醒邮件 private void sendEmail(String materialNo) { // 收件人邮箱 String to = "收件人邮箱地址"; // 发件人邮箱 String from = "发件人邮箱地址"; // 邮件服务器的主机名和端口号 String host = "smtp.163.com"; int port = 25; // 邮件的主题和内容 String subject = "库存不足提醒"; String text = "料号 " + materialNo + " 的库存低于最低库存,请及时补充。"; // 发送邮件 Properties props = new Properties(); props.put("mail.smtp.host", host); props.put("mail.smtp.port", port); Session session = Session.getInstance(props); try { Message message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); message.setSubject(subject); message.setText(text); Transport.send(message); System.out.println("邮件已发送至 " + to); } catch (MessagingException e) { e.printStackTrace(); } } } ``` 在上面的代码中,我们先在构造函数中初始化了每种料号的最低库存数据,并在checkInventory()方法中判断当前日期是否为10日,如果是则遍历所有料号,判断库存是否低于最低库存,如果是则发送提醒邮件。发送邮件的逻辑在sendEmail()方法中实现,这里使用了Java Mail API来发送邮件。注意,需要替换代码中的收件人邮箱地址和发件人邮箱地址为实际的邮箱地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值