From 94714af765326bc0567a336952b0811667b7be92 Mon Sep 17 00:00:00 2001
From: lyfO_o <764716047@qq.com>
Date: 星期三, 27 十月 2021 16:59:27 +0800
Subject: [PATCH] 货柜预警接口:alarm 字典:alarm_type 01 主电掉电,备电工作 显示:名称+地点+柜号+内容
---
src/main/java/com/nanometer/smartlab/email/EmailSendSchedule.java | 128 +++++++++++++++++++++++++++++++++++++++++-
1 files changed, 124 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/nanometer/smartlab/email/EmailSendSchedule.java b/src/main/java/com/nanometer/smartlab/email/EmailSendSchedule.java
index b257899..5bbf6b0 100644
--- a/src/main/java/com/nanometer/smartlab/email/EmailSendSchedule.java
+++ b/src/main/java/com/nanometer/smartlab/email/EmailSendSchedule.java
@@ -1,20 +1,31 @@
package com.nanometer.smartlab.email;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
import com.nanometer.smartlab.entity.EmailStatus;
import com.nanometer.smartlab.entity.OpeWarehouseReserve;
import com.nanometer.smartlab.entity.SysReagent;
+import com.nanometer.smartlab.entity.SysUser;
import com.nanometer.smartlab.entity.enumtype.EmailSendStatus;
import com.nanometer.smartlab.exception.BusinessException;
+import com.nanometer.smartlab.exception.ExceptionEnumCode;
import com.nanometer.smartlab.service.*;
import com.nanometer.smartlab.util.EmailSend;
+import com.nanometer.smartlab.util.HttpUtil;
+import net.sf.cglib.asm.$ByteVector;
+import org.apache.commons.lang.StringUtils;
+import org.apache.http.message.BasicNameValuePair;
import org.apache.log4j.Logger;
+import org.omg.CORBA.NameValuePair;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.List;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.*;
/**
* Created by wjd on 18/6/18.
@@ -33,6 +44,8 @@
private OpeWarehouseReserveService opeWarehouseReserveService;
@Resource
private SysUserService userService;
+ @Resource
+ private SysSupplierService sysSupplierService;
@Scheduled(fixedDelayString = "${emailSend.schedule.delay}")
public void EmailSendSchedule(){
@@ -86,7 +99,7 @@
}
}
}
- if(sysReagentList.size() > 0){
+ if(sysReagentList.size() > 0 && revicerList.size() > 0 ){
StringBuffer content = new StringBuffer("<html><body>");
content.append("<div style=\"line-height:1.7;color:#000000;font-size:14px;font-family:Arial\">");
content.append("<table border=\"1\">");
@@ -125,7 +138,7 @@
content.append("</body></html>");
try {
- EmailSend.sendArrivalEmail(revicerList,content.toString());
+ EmailSend.sendArrivalEmail(revicerList,content.toString(),"-待补货试剂");
// 发送成功,更新邮件发送状态为:已发送
} catch (BusinessException e) {
// 发送失败,更新邮件发送状态为:发送失败
@@ -136,4 +149,111 @@
}
}
+
+
+ @Value("${reagent.detail.price.api}")
+ private String reagentApi;
+
+ private final static String send_supplier_name = "国药集团化学试剂苏州有限公司";
+ private final static BigDecimal SALE_85 = BigDecimal.valueOf(0.85);
+ private final static Map discountMap = new HashMap<BigDecimal,String>(){{
+ put(SALE_85, "85折价格");
+ }};
+
+ /**
+ * @Description: 姑苏实验室 发给admin管理员邮箱 国药试剂(价格不同的)信息 执行时间 :每天早上2点
+ * @date 2021/8/19 9:06
+ */
+ @Scheduled(cron = "0 0 2 * * ?")
+// @Scheduled(cron = "0/5 * * * * ?") //每隔5秒执行一次
+ public void ReagentPriceSend(){
+ //0.限制在姑苏实验室
+ if (StringUtils.isBlank(reagentApi) || reagentApi.length() == 0) return;
+
+ try {
+ //1.获取管理员邮箱
+ SysUser admin = userService.getSysUserByAccount("admin");
+ if (admin == null ||StringUtils.isBlank(admin.getEmail())) throw new BusinessException(ExceptionEnumCode.PARAM_NULL,"找不到管理员或者管理员邮箱信息");
+
+ //2.获取国药试剂
+ String supplierId = sysSupplierService.getSysSupplierIdByname(send_supplier_name);
+ if (StringUtils.isBlank(supplierId))
+ throw new BusinessException(ExceptionEnumCode.PARAM_NO_EXIST, "没有找到与(" + send_supplier_name + ")相关供应商,请检查最近信息更新");
+
+ List<SysReagent> guoyao_reagents = sysReagentService.getSysReagentListNew(null, null, supplierId, 1, null, null, null);
+ if (guoyao_reagents.size() < 1)
+ throw new BusinessException(ExceptionEnumCode.PARAM_NULL, "供应商:" + send_supplier_name + ",没有查询到相关试剂");
+
+ List<JSONObject> sendDataList = new ArrayList<>();
+ for (SysReagent reagent : guoyao_reagents) {
+ String productSn = reagent.getProductSn();
+ List params = new ArrayList<BasicNameValuePair>() {{
+ add(new BasicNameValuePair("goodsErpCode", productSn));
+ }};
+ String res = HttpUtil.doGet(reagentApi, params);
+ JSONObject resJson = JSONObject.parseObject(res);
+ JSONArray data = resJson.getJSONArray("data");
+ JSONObject dataJson = data.getJSONObject(0);
+ Integer totalRows = dataJson.getInteger("totalRows");
+ if (totalRows != 1) continue;
+
+ JSONArray listApiGoods = dataJson.getJSONArray("listApiGoods");
+ if (listApiGoods.size() != 1) logger.info("产品编号:" + productSn + ",接口查询到多个数据,无法判断");
+
+ JSONObject goodJson = listApiGoods.getJSONObject(0);
+ String goodsName = goodJson.getString("goodsName");
+ BigDecimal goodsCostPrice = goodJson.getBigDecimal("goodsCostPrice");
+ BigDecimal price = reagent.getPrice();
+ //保留两位
+ BigDecimal price_afterDiscount = SALE_85.multiply(goodsCostPrice).setScale(2, RoundingMode.HALF_UP);
+ if (price_afterDiscount.compareTo(price) > 0) {
+ sendDataList.add(new JSONObject() {{
+ put("goodsName", goodsName);
+ put("goodsCostPrice", goodsCostPrice);
+ put("priceAfterDiscount", price_afterDiscount);
+ put("currentSystemPrice", price);
+ put("goodsCode", productSn);
+ }});
+ }
+ }
+ //制作表格
+ StringBuilder content = new StringBuilder("<html><body>");
+ content.append("<div style=\"line-height:1.7;color:#000000;font-size:14px;font-family:Arial\">");
+ content.append("<table border=\"1\">");
+ content.append("<tbody>");
+ content.append("<tr>");
+ content.append("<th>产品编号</th>");
+ content.append("<th>产品名称</th>");
+ content.append("<th>官网售价</th>");
+ content.append("<th>").append(discountMap.get(SALE_85)).append("</th>");
+ content.append("<th>当前系统价格</th>");
+ content.append("</tr>");
+ for (JSONObject goodJson : sendDataList){
+ content.append("<tr>")
+ .append("<td>").append(goodJson.getString("goodsCode")).append("</td>")
+ .append("<td>").append(goodJson.getString("goodsName")).append("</td>")
+ .append("<td>").append(goodJson.getBigDecimal("goodsCostPrice")).append("</td>")
+ .append("<td>").append(goodJson.getBigDecimal("priceAfterDiscount")).append("</td>")
+ .append("<td>").append(goodJson.getBigDecimal("currentSystemPrice")).append("</td>")
+ .append("</tr>");
+ }
+ content.append("</tbody></table></div>");
+ content.append("</body></html>");
+
+
+ //发送邮件
+ EmailSend.sendArrivalEmail(Collections.singletonList(admin.getEmail()),content.toString(),"-国药试剂价格变动");
+ // 发送成功,更新邮件发送状态为:已发送
+
+ } catch (BusinessException e) {
+ e.printStackTrace();
+ logger.warn(e.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ logger.warn("系统内部错误,请检查代码");
+ }
+
+
+ }
+
}
--
Gitblit v1.9.2