Parcourir la source

发送短信和pda模块优化

sunxianglong il y a 3 mois
Parent
commit
9972ec542a

+ 7 - 0
pom.xml

@@ -212,6 +212,13 @@
 			<version>5.8.26</version>
 		</dependency>
 
+		<!-- 腾讯云短信 SDK -->
+		<dependency>
+			<groupId>com.tencentcloudapi</groupId>
+			<artifactId>tencentcloud-sdk-java-sms</artifactId>
+			<version>3.1.1179</version>
+		</dependency>
+
 		<dependency>
 			<groupId>com.intelligt.modbus</groupId>
 			<artifactId>jlibmodbus</artifactId>

+ 2 - 2
src/main/java/com/jeesite/modules/mes/api/MesProductOrderControllerApi.java

@@ -31,10 +31,10 @@ public class MesProductOrderControllerApi {
     @ResponseBody
     public CommonResp save(@Validated MesProductOrder mesProductOrder, HttpServletRequest request, HttpServletResponse response) {
         CommonResp<List<MesProductOrder> > resp = new CommonResp<>();
-        String lineSn = request.getParameter("lineSn");
+//        String lineSn = request.getParameter("lineSn");
         //展示所有未结束的订单
         mesProductOrder.setState("1");//0=草稿 1=下发 2=完成
-        mesProductOrder.setLineSn(lineSn);
+//        mesProductOrder.setLineSn(lineSn);
         List<MesProductOrder> list = mesProductOrderService.findList(mesProductOrder);
         resp.setData(list);
         resp.setResult(Global.TRUE);

+ 26 - 5
src/main/java/com/jeesite/modules/mes/entity/MesMaterialCheckRecord.java

@@ -22,6 +22,8 @@ import java.util.Date;
 		@Column(name="fa_date", attrName="faDate", label="发货日期"),
 		@Column(name="fa_nums", attrName="faNums", label="发货数量", isUpdateForce=true),
 		@Column(name="nums", attrName="nums", label="实际数量", isUpdateForce=true),
+		@Column(name="hg_qty", attrName="hgQty", label="合格数量", isUpdateForce=true),
+		@Column(name="bhg_qty", attrName="bhgQty", label="不合格数量", isUpdateForce=true),
 		@Column(name="state", attrName="state", label="状态"),
 		@Column(name="create_by", attrName="createBy", label="create_by", isUpdate=false, isQuery=false),
 		@Column(name="create_date", attrName="createDate", label="create_date", isUpdate=false, isUpdateForce=true),
@@ -38,25 +40,44 @@ import java.util.Date;
 		orderBy="a.update_date DESC"
 )
 public class MesMaterialCheckRecord extends DataEntity<MesMaterialCheckRecord> {
-	
+
 	private static final long serialVersionUID = 1L;
 	private String materialId;		// 物料
 	private String faDate;		// 发货日期
 	private Long faNums;		// 发货数量
 	private Long nums;		// 实际数量
+
+	private String hgQty;   //合格数量
+	private String bhgQty;  //不合格数量
 	private String materialTitle;
 	private String state;
 	private Date createDate;
 	private String sn;
 
+	public String getHgQty() {
+		return hgQty;
+	}
+
+	public void setHgQty(String hgQty) {
+		this.hgQty = hgQty;
+	}
+
+	public String getBhgQty() {
+		return bhgQty;
+	}
+
+	public void setBhgQty(String bhgQty) {
+		this.bhgQty = bhgQty;
+	}
+
 	public MesMaterialCheckRecord() {
 		this(null);
 	}
-	
+
 	public MesMaterialCheckRecord(String id){
 		super(id);
 	}
-	
+
 	@Size(min=0, max=64, message="物料长度不能超过 64 个字符")
 	public String getMaterialId() {
 		return materialId;
@@ -65,7 +86,7 @@ public class MesMaterialCheckRecord extends DataEntity<MesMaterialCheckRecord> {
 	public void setMaterialId(String materialId) {
 		this.materialId = materialId;
 	}
-	
+
 	@Size(min=0, max=100, message="发货日期长度不能超过 100 个字符")
 	public String getFaDate() {
 		return faDate;
@@ -130,4 +151,4 @@ public class MesMaterialCheckRecord extends DataEntity<MesMaterialCheckRecord> {
 	public void setSn(String sn) {
 		this.sn = sn;
 	}
-}
+}

+ 38 - 12
src/main/java/com/jeesite/modules/mes/entity/MesMaterialReport.java

@@ -26,6 +26,8 @@ import java.util.Date;
 		@Column(name="fa_date", attrName="faDate", label="发货日期"),
 		@Column(name="fa_nums", attrName="faNums", label="发货数量", isUpdateForce=true),
 		@Column(name="nums", attrName="nums", label="实际数量", isUpdateForce=true),
+		@Column(name="hg_qty", attrName="hgQty", label="合格数量", isUpdateForce=true),
+		@Column(name="bhg_qty", attrName="bhgQty", label="不合格数量", isUpdateForce=true),
 		@Column(name="state", attrName="state", label="状态"),
 		@Column(name="remark", attrName="remark", label="备注"),
 		@Column(name="create_by", attrName="createBy", label="报检人"),
@@ -52,19 +54,25 @@ import java.util.Date;
 },orderBy="a.update_date DESC"
 )
 public class MesMaterialReport extends DataEntity<MesMaterialReport> {
-	
+
 	private static final long serialVersionUID = 1L;
 	private String materialId;		// 物料id
 	private String sn;		// 来料码
 	private String faDate;		// 发货日期
 	private Long faNums;		// 发货数量
 	private Long nums;		// 实际数量
+	private String hgQty;   //合格数量
+	private String bhgQty;  //不合格数量
 	private String state;		// 状态
 	private String remark;		// 备注
 
 	private String title;  //物料名称
 	private String checkResult;  //检查结果
 	private String productName;  //产品名称
+
+
+
+
 	@ExcelFields({
 //		@ExcelField(title="id", attrName="id", align=Align.CENTER, sort=10),
 //		@ExcelField(title="物料id", attrName="materialId", align=Align.CENTER, sort=20),
@@ -80,14 +88,32 @@ public class MesMaterialReport extends DataEntity<MesMaterialReport> {
 //		@ExcelField(title="update_by", attrName="updateBy", align=Align.CENTER, sort=100),
 //		@ExcelField(title="update_date", attrName="updateDate", align=Align.CENTER, sort=110),
 	})
+
+
+
+	public String getHgQty() {
+		return hgQty;
+	}
+
+	public void setHgQty(String hgQty) {
+		this.hgQty = hgQty;
+	}
+
+	public String getBhgQty() {
+		return bhgQty;
+	}
+
+	public void setBhgQty(String bhgQty) {
+		this.bhgQty = bhgQty;
+	}
 	public MesMaterialReport() {
 		this(null);
 	}
-	
+
 	public MesMaterialReport(String id){
 		super(id);
 	}
-	
+
 	@Size(min=0, max=64, message="物料id长度不能超过 64 个字符")
 	public String getMaterialId() {
 		return materialId;
@@ -96,7 +122,7 @@ public class MesMaterialReport extends DataEntity<MesMaterialReport> {
 	public void setMaterialId(String materialId) {
 		this.materialId = materialId;
 	}
-	
+
 	@Size(min=0, max=150, message="来料码长度不能超过 150 个字符")
 	public String getSn() {
 		return sn;
@@ -105,7 +131,7 @@ public class MesMaterialReport extends DataEntity<MesMaterialReport> {
 	public void setSn(String sn) {
 		this.sn = sn;
 	}
-	
+
 	@Size(min=0, max=100, message="发货日期长度不能超过 100 个字符")
 	public String getFaDate() {
 		return faDate;
@@ -130,7 +156,7 @@ public class MesMaterialReport extends DataEntity<MesMaterialReport> {
 	public void setNums(Long nums) {
 		this.nums = nums;
 	}
-	
+
 	@NotBlank(message="状态不能为空")
 	@Size(min=0, max=1, message="状态长度不能超过 1 个字符")
 	public String getState() {
@@ -140,7 +166,7 @@ public class MesMaterialReport extends DataEntity<MesMaterialReport> {
 	public void setState(String state) {
 		this.state = state;
 	}
-	
+
 	@Size(min=0, max=255, message="备注长度不能超过 255 个字符")
 	public String getRemark() {
 		return remark;
@@ -149,7 +175,7 @@ public class MesMaterialReport extends DataEntity<MesMaterialReport> {
 	public void setRemark(String remark) {
 		this.remark = remark;
 	}
-	
+
 	public String getFaDate_gte() {
 		return sqlMap.getWhere().getValue("fa_date", QueryType.GTE);
 	}
@@ -157,7 +183,7 @@ public class MesMaterialReport extends DataEntity<MesMaterialReport> {
 	public void setFaDate_gte(String faDate) {
 		sqlMap.getWhere().and("fa_date", QueryType.GTE, faDate);
 	}
-	
+
 	public String getFaDate_lte() {
 		return sqlMap.getWhere().getValue("fa_date", QueryType.LTE);
 	}
@@ -165,7 +191,7 @@ public class MesMaterialReport extends DataEntity<MesMaterialReport> {
 	public void setFaDate_lte(String faDate) {
 		sqlMap.getWhere().and("fa_date", QueryType.LTE, faDate);
 	}
-	
+
 	public Date getCreateDate_gte() {
 		return sqlMap.getWhere().getValue("create_date", QueryType.GTE);
 	}
@@ -173,7 +199,7 @@ public class MesMaterialReport extends DataEntity<MesMaterialReport> {
 	public void setCreateDate_gte(Date createDate) {
 		sqlMap.getWhere().and("create_date", QueryType.GTE, createDate);
 	}
-	
+
 	public Date getCreateDate_lte() {
 		return sqlMap.getWhere().getValue("create_date", QueryType.LTE);
 	}
@@ -205,4 +231,4 @@ public class MesMaterialReport extends DataEntity<MesMaterialReport> {
 	public void setProductName(String productName) {
 		this.productName = productName;
 	}
-}
+}

+ 26 - 15
src/main/java/com/jeesite/modules/mes/entity/MesMaterialRk.java

@@ -20,6 +20,7 @@ import com.jeesite.common.mybatis.mapper.query.QueryType;
  */
 @Table(name="mes_material_rk", alias="a", label="采购入库单信息", columns={
 		@Column(name="id", attrName="id", label="id", isPK=true),
+		@Column(name="sn", attrName="sn", label="来料码"),
 		@Column(name="other_id", attrName="otherId", label="第三方数据标识"),
 		@Column(name="doc_type_code", attrName="docTypeCode", label="单据类型编码"),
 		@Column(name="businese_date", attrName="busineseDate", label="单据日期"),
@@ -39,8 +40,9 @@ import com.jeesite.common.mybatis.mapper.query.QueryType;
 	}, orderBy="a.update_date DESC"
 )
 public class MesMaterialRk extends DataEntity<MesMaterialRk> {
-	
+
 	private static final long serialVersionUID = 1L;
+	private String  sn;      //来料码
 	private String otherId;		// 第三方数据标识
 	private String docTypeCode;		// 单据类型编码
 	private Date busineseDate;		// 单据日期
@@ -53,14 +55,23 @@ public class MesMaterialRk extends DataEntity<MesMaterialRk> {
 	private Long rtnDeductQty;		// 退补数量
 	private Long rtnFillQty;		// 退扣数量
 
+
+	public String getSn() {
+		return sn;
+	}
+
+	public void setSn(String sn) {
+		this.sn = sn;
+	}
+
 	public MesMaterialRk() {
 		this(null);
 	}
-	
+
 	public MesMaterialRk(String id){
 		super(id);
 	}
-	
+
 	@Size(min=0, max=64, message="第三方数据标识长度不能超过 64 个字符")
 	public String getOtherId() {
 		return otherId;
@@ -69,7 +80,7 @@ public class MesMaterialRk extends DataEntity<MesMaterialRk> {
 	public void setOtherId(String otherId) {
 		this.otherId = otherId;
 	}
-	
+
 	@NotBlank(message="单据类型编码不能为空")
 	@Size(min=0, max=255, message="单据类型编码长度不能超过 255 个字符")
 	public String getDocTypeCode() {
@@ -79,7 +90,7 @@ public class MesMaterialRk extends DataEntity<MesMaterialRk> {
 	public void setDocTypeCode(String docTypeCode) {
 		this.docTypeCode = docTypeCode;
 	}
-	
+
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	@NotNull(message="单据日期不能为空")
 	public Date getBusineseDate() {
@@ -89,7 +100,7 @@ public class MesMaterialRk extends DataEntity<MesMaterialRk> {
 	public void setBusineseDate(Date busineseDate) {
 		this.busineseDate = busineseDate;
 	}
-	
+
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	@NotNull(message="入库确认时间不能为空")
 	public Date getConfirmDate() {
@@ -99,7 +110,7 @@ public class MesMaterialRk extends DataEntity<MesMaterialRk> {
 	public void setConfirmDate(Date confirmDate) {
 		this.confirmDate = confirmDate;
 	}
-	
+
 	@NotNull(message="行号不能为空")
 	public Long getDocLineNo() {
 		return docLineNo;
@@ -108,7 +119,7 @@ public class MesMaterialRk extends DataEntity<MesMaterialRk> {
 	public void setDocLineNo(Long docLineNo) {
 		this.docLineNo = docLineNo;
 	}
-	
+
 	@NotBlank(message="采购订单号不能为空")
 	@Size(min=0, max=255, message="采购订单号长度不能超过 255 个字符")
 	public String getSrcDocNo() {
@@ -118,7 +129,7 @@ public class MesMaterialRk extends DataEntity<MesMaterialRk> {
 	public void setSrcDocNo(String srcDocNo) {
 		this.srcDocNo = srcDocNo;
 	}
-	
+
 	@NotNull(message="采购订单行号不能为空")
 	public Long getSrcDocLineNo() {
 		return srcDocLineNo;
@@ -127,7 +138,7 @@ public class MesMaterialRk extends DataEntity<MesMaterialRk> {
 	public void setSrcDocLineNo(Long srcDocLineNo) {
 		this.srcDocLineNo = srcDocLineNo;
 	}
-	
+
 	@NotBlank(message="批号不能为空")
 	@Size(min=0, max=255, message="批号长度不能超过 255 个字符")
 	public String getLotCode() {
@@ -137,7 +148,7 @@ public class MesMaterialRk extends DataEntity<MesMaterialRk> {
 	public void setLotCode(String lotCode) {
 		this.lotCode = lotCode;
 	}
-	
+
 	public Long getQty() {
 		return qty;
 	}
@@ -145,7 +156,7 @@ public class MesMaterialRk extends DataEntity<MesMaterialRk> {
 	public void setQty(Long qty) {
 		this.qty = qty;
 	}
-	
+
 	public Long getRtnDeductQty() {
 		return rtnDeductQty;
 	}
@@ -153,7 +164,7 @@ public class MesMaterialRk extends DataEntity<MesMaterialRk> {
 	public void setRtnDeductQty(Long rtnDeductQty) {
 		this.rtnDeductQty = rtnDeductQty;
 	}
-	
+
 	public Long getRtnFillQty() {
 		return rtnFillQty;
 	}
@@ -161,5 +172,5 @@ public class MesMaterialRk extends DataEntity<MesMaterialRk> {
 	public void setRtnFillQty(Long rtnFillQty) {
 		this.rtnFillQty = rtnFillQty;
 	}
-	
-}
+
+}

+ 123 - 0
src/main/java/com/jeesite/modules/mes/util/TencentSmsUtil.java

@@ -0,0 +1,123 @@
+package com.jeesite.modules.mes.util;
+
+import com.jeesite.common.config.Global;
+import com.jeesite.common.lang.StringUtils;
+import com.tencentcloudapi.common.AbstractModel;
+import com.tencentcloudapi.common.Credential;
+import com.tencentcloudapi.common.exception.TencentCloudSDKException;
+import com.tencentcloudapi.common.profile.ClientProfile;
+import com.tencentcloudapi.common.profile.HttpProfile;
+import com.tencentcloudapi.sms.v20210111.SmsClient;
+import com.tencentcloudapi.sms.v20210111.models.SendSmsRequest;
+import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 腾讯云短信工具类
+ */
+public class TencentSmsUtil {
+
+	private static final Logger log = LoggerFactory.getLogger(TencentSmsUtil.class);
+
+	private static final String ENDPOINT = "sms.tencentcloudapi.com";
+	private static final String DEFAULT_REGION = "ap-beijing";
+	private static final String DEFAULT_SECRET_ID = "AKIDxlKfngJgogHciX0EBsJTO2QXOzKPEn69";
+	private static final String DEFAULT_SECRET_KEY = "oNgjW5P7dtuhEVWHm21kCOK9j37xc2EB";
+	private static final String DEFAULT_SMS_SDK_APP_ID = "1401151057";
+	private static final String DEFAULT_TEMPLATE_ID = "2680295";
+	private static final String DEFAULT_SIGN_NAME = "山东鲁匠人新能源科技";
+
+	private TencentSmsUtil() {
+	}
+
+	/**
+	 * 发送短信(使用默认模板,无模板参数)
+	 *
+	 * @param phoneNumber 手机号,如 18461071125
+	 * @return 发送响应
+	 */
+	public static SendSmsResponse sendSms(String phoneNumber) throws TencentCloudSDKException {
+		return sendSms(new String[]{phoneNumber}, null);
+	}
+
+	/**
+	 * 发送短信(使用默认 AppId、模板、签名)
+	 *
+	 * @param phoneNumbers    手机号数组
+	 * @param templateParamSet 模板参数,无参数传 null
+	 * @return 发送响应
+	 */
+	public static SendSmsResponse sendSms(String[] phoneNumbers, String[] templateParamSet)
+			throws TencentCloudSDKException {
+		return sendSms(phoneNumbers, templateParamSet, DEFAULT_SMS_SDK_APP_ID, DEFAULT_TEMPLATE_ID, DEFAULT_SIGN_NAME);
+	}
+
+	/**
+	 * 发送短信
+	 *
+	 * @param phoneNumbers    手机号数组
+	 * @param templateParamSet 模板参数,无参数传 null
+	 * @param smsSdkAppId      短信应用 ID
+	 * @param templateId       模板 ID
+	 * @param signName         签名
+	 * @return 发送响应
+	 */
+	public static SendSmsResponse sendSms(String[] phoneNumbers, String[] templateParamSet,
+			String smsSdkAppId, String templateId, String signName) throws TencentCloudSDKException {
+		if (phoneNumbers == null || phoneNumbers.length == 0) {
+			throw new IllegalArgumentException("手机号不能为空");
+		}
+
+		Credential cred = buildCredential();
+		HttpProfile httpProfile = new HttpProfile();
+		httpProfile.setEndpoint(ENDPOINT);
+
+		ClientProfile clientProfile = new ClientProfile();
+		clientProfile.setHttpProfile(httpProfile);
+
+		String region = getConfig("tencent.sms.region", DEFAULT_REGION);
+		SmsClient client = new SmsClient(cred, region, clientProfile);
+
+		SendSmsRequest req = new SendSmsRequest();
+		req.setPhoneNumberSet(phoneNumbers);
+		req.setSmsSdkAppId(blankToDefault(smsSdkAppId, DEFAULT_SMS_SDK_APP_ID));
+		req.setTemplateId(blankToDefault(templateId, DEFAULT_TEMPLATE_ID));
+		req.setSignName(blankToDefault(signName, DEFAULT_SIGN_NAME));
+		if (templateParamSet != null && templateParamSet.length > 0) {
+			req.setTemplateParamSet(templateParamSet);
+		}
+
+		SendSmsResponse resp = client.SendSms(req);
+		log.info("腾讯云短信发送完成: phones={}, response={}", String.join(",", phoneNumbers),
+				AbstractModel.toJsonString(resp));
+		return resp;
+	}
+
+	private static Credential buildCredential() {
+		String secretId = firstNonBlank(
+				System.getenv("TENCENTCLOUD_SECRET_ID"),
+				getConfig("tencent.sms.secretId", DEFAULT_SECRET_ID));
+		String secretKey = firstNonBlank(
+				System.getenv("TENCENTCLOUD_SECRET_KEY"),
+				getConfig("tencent.sms.secretKey", DEFAULT_SECRET_KEY));
+		if (StringUtils.isBlank(secretId) || StringUtils.isBlank(secretKey)) {
+			throw new IllegalStateException("未配置腾讯云密钥");
+		}
+		return new Credential(secretId, secretKey);
+	}
+
+	private static String getConfig(String key, String defaultValue) {
+		String value = Global.getConfig(key);
+		return StringUtils.isNotBlank(value) ? value : defaultValue;
+	}
+
+	private static String firstNonBlank(String first, String second) {
+		return StringUtils.isNotBlank(first) ? first : second;
+	}
+
+	private static String blankToDefault(String value, String defaultValue) {
+		return StringUtils.isNotBlank(value) ? value : defaultValue;
+	}
+
+}

+ 11 - 0
src/main/java/com/jeesite/modules/mes/web/MesProductReportController.java

@@ -11,6 +11,8 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.jeesite.common.lang.DateUtils;
+import com.jeesite.modules.erp.entity.MesProductOrder;
+import com.jeesite.modules.erp.service.MesProductOrderService;
 import com.jeesite.modules.mes.util.U9cAuthUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -42,6 +44,8 @@ public class MesProductReportController extends BaseController {
 
 	@Autowired
 	private MesProductReportService mesProductReportService;
+	@Autowired
+	private MesProductOrderService mesProductOrderService;
 
 	/**
 	 * 获取数据
@@ -147,6 +151,13 @@ public class MesProductReportController extends BaseController {
 		}
 		mesProductReport.setDocNo(code);
 		mesProductReportService.update(mesProductReport);
+		//更新生产订单表
+		MesProductOrder mesProductOrder = new MesProductOrder();
+		mesProductOrder.setSn(mesProductReport.getMoDocNo());
+		List<MesProductOrder> list = mesProductOrderService.findList(mesProductOrder);
+		mesProductOrder=list.get(0);
+		mesProductOrder.setNowNums(Integer.parseInt(mesProductReport.getCompleteQty()));
+		mesProductOrderService.update(mesProductOrder);
 
 		String docId = data.getString("ID");
 		StringBuilder successMsg = new StringBuilder(text("同步ERP成功!"));

+ 2 - 0
src/main/resources/views/modules/mes/mesMaterialCheckRecordList.html

@@ -66,6 +66,8 @@ $('#dataGrid').dataGrid({
 		// {header:'${text("发货日期")}', name:'faDate', index:'a.fa_date', width:120, align:"center"},
 		// {header:'${text("发货数量")}', name:'faNums', index:'a.fa_nums', width:100, align:"center"},
 		{header:'${text("实际确认数量")}', name:'nums', index:'a.nums', width:100, align:"center"},
+		{header:'${text("合格数量")}', name:'hgQty', index:'a.hg_qty', width:100, align:"center"},
+		{header:'${text("不合格数量")}', name:'bhgQty', index:'a.bhg_qty', width:100, align:"center"},
 		{header:'${text("结果")}', name:'state', index:'a.state', width:100, align:"center", formatter: function(val, obj, row, act){
 				return js.getDictLabel(${@DictUtils.getDictListJson('mes_material_check_record_state')}, val, '${text("未知")}', true);
 			}},

+ 2 - 0
src/main/resources/views/modules/mes/mesMaterialReportList.html

@@ -79,6 +79,8 @@ $('#dataGrid').dataGrid({
 		{header:'${text("到货日期")}', name:'faDate', index:'a.fa_date', width:120, align:"center"},
 		{header:'${text("到货数量")}', name:'faNums', index:'a.fa_nums', width:100, align:"center"},
 		{header:'${text("实际确认数量")}', name:'nums', index:'a.nums', width:100, align:"center"},
+		{header:'${text("合格数量")}', name:'hgQty', index:'a.hg_qty', width:100, align:"center"},
+		{header:'${text("不合格数量")}', name:'bhgQty', index:'a.bhg_qty', width:100, align:"center"},
 		{header:'${text("状态")}', name:'state', index:'a.state', width:100, align:"center", formatter: function(val, obj, row, act){
 			return js.getDictLabel(${@DictUtils.getDictListJson('material_report_state')}, val, '${text("未知")}', true);
 		}},

+ 41 - 0
src/test/java/com/jeesite/test/TencentSmsUtilTest.java

@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) 2013-Now http://jeesite.com All rights reserved.
+ */
+package com.jeesite.test;
+
+import com.jeesite.common.lang.StringUtils;
+import com.jeesite.common.tests.BaseSpringContextTests;
+import com.jeesite.modules.Application;
+import com.jeesite.modules.mes.util.TencentSmsUtil;
+import com.tencentcloudapi.common.AbstractModel;
+import com.tencentcloudapi.common.exception.TencentCloudSDKException;
+import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;
+import com.tencentcloudapi.sms.v20210111.models.SendStatus;
+import org.junit.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.ActiveProfiles;
+
+/**
+ * 腾讯云短信工具类测试
+ */
+@ActiveProfiles("test")
+@SpringBootTest(classes = Application.class)
+public class TencentSmsUtilTest extends BaseSpringContextTests {
+
+	@Test
+	public void testSendSms() throws TencentCloudSDKException {
+		String phone = System.getenv("TENCENT_SMS_TEST_PHONE");
+		if (StringUtils.isBlank(phone)) {
+			phone = "19863431582";
+		}
+
+		SendSmsResponse resp = TencentSmsUtil.sendSms(phone);
+		System.out.println(AbstractModel.toJsonString(resp));
+
+		SendStatus[] statusSet = resp.getSendStatusSet();
+		if (statusSet != null && statusSet.length > 0) {
+			System.out.println("发送结果: Code=" + statusSet[0].getCode() + ", Message=" + statusSet[0].getMessage());
+		}
+	}
+
+}