diff --git a/.idea/libraries/Maven__com_aliyun_alibabacloud_gateway_spi_0_0_1.xml b/.idea/libraries/Maven__com_aliyun_alibabacloud_gateway_spi_0_0_1.xml
new file mode 100644
index 000000000..a0ba707d8
--- /dev/null
+++ b/.idea/libraries/Maven__com_aliyun_alibabacloud_gateway_spi_0_0_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_aliyun_credentials_java_0_2_4.xml b/.idea/libraries/Maven__com_aliyun_credentials_java_0_2_4.xml
new file mode 100644
index 000000000..6ff722e4c
--- /dev/null
+++ b/.idea/libraries/Maven__com_aliyun_credentials_java_0_2_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_aliyun_dysmsapi20170525_2_0_22.xml b/.idea/libraries/Maven__com_aliyun_dysmsapi20170525_2_0_22.xml
new file mode 100644
index 000000000..b0b7ec33b
--- /dev/null
+++ b/.idea/libraries/Maven__com_aliyun_dysmsapi20170525_2_0_22.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_aliyun_endpoint_util_0_0_7.xml b/.idea/libraries/Maven__com_aliyun_endpoint_util_0_0_7.xml
new file mode 100644
index 000000000..66d2291a6
--- /dev/null
+++ b/.idea/libraries/Maven__com_aliyun_endpoint_util_0_0_7.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_aliyun_openapiutil_0_1_14.xml b/.idea/libraries/Maven__com_aliyun_openapiutil_0_1_14.xml
new file mode 100644
index 000000000..ecff150cf
--- /dev/null
+++ b/.idea/libraries/Maven__com_aliyun_openapiutil_0_1_14.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_aliyun_tea_1_1_14.xml b/.idea/libraries/Maven__com_aliyun_tea_1_1_14.xml
new file mode 100644
index 000000000..f0f19244d
--- /dev/null
+++ b/.idea/libraries/Maven__com_aliyun_tea_1_1_14.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_aliyun_tea_console_0_0_1.xml b/.idea/libraries/Maven__com_aliyun_tea_console_0_0_1.xml
new file mode 100644
index 000000000..69ab5e796
--- /dev/null
+++ b/.idea/libraries/Maven__com_aliyun_tea_console_0_0_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_aliyun_tea_openapi_0_2_6.xml b/.idea/libraries/Maven__com_aliyun_tea_openapi_0_2_6.xml
new file mode 100644
index 000000000..f8cb4eb06
--- /dev/null
+++ b/.idea/libraries/Maven__com_aliyun_tea_openapi_0_2_6.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_aliyun_tea_util_0_2_14.xml b/.idea/libraries/Maven__com_aliyun_tea_util_0_2_14.xml
new file mode 100644
index 000000000..cdcc418a8
--- /dev/null
+++ b/.idea/libraries/Maven__com_aliyun_tea_util_0_2_14.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_aliyun_tea_xml_0_1_5.xml b/.idea/libraries/Maven__com_aliyun_tea_xml_0_1_5.xml
new file mode 100644
index 000000000..51215c03d
--- /dev/null
+++ b/.idea/libraries/Maven__com_aliyun_tea_xml_0_1_5.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_sun_xml_bind_jaxb_core_2_3_0.xml b/.idea/libraries/Maven__com_sun_xml_bind_jaxb_core_2_3_0.xml
new file mode 100644
index 000000000..7e58f9645
--- /dev/null
+++ b/.idea/libraries/Maven__com_sun_xml_bind_jaxb_core_2_3_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_sun_xml_bind_jaxb_impl_2_3_0.xml b/.idea/libraries/Maven__com_sun_xml_bind_jaxb_impl_2_3_0.xml
new file mode 100644
index 000000000..70b2b05c0
--- /dev/null
+++ b/.idea/libraries/Maven__com_sun_xml_bind_jaxb_impl_2_3_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk15on_1_65.xml b/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk15on_1_65.xml
new file mode 100644
index 000000000..cd5071415
--- /dev/null
+++ b/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk15on_1_65.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_dom4j_dom4j_2_0_3.xml b/.idea/libraries/Maven__org_dom4j_dom4j_2_0_3.xml
new file mode 100644
index 000000000..015b98b4c
--- /dev/null
+++ b/.idea/libraries/Maven__org_dom4j_dom4j_2_0_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_ini4j_ini4j_0_5_4.xml b/.idea/libraries/Maven__org_ini4j_ini4j_0_5_4.xml
new file mode 100644
index 000000000..9e114a8ef
--- /dev/null
+++ b/.idea/libraries/Maven__org_ini4j_ini4j_0_5_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_4.xml b/.idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_4.xml
new file mode 100644
index 000000000..b7f6c9ae6
--- /dev/null
+++ b/.idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/emis-biz-web/emis-biz-web.iml b/emis-biz-web/emis-biz-web.iml
index a276c5fb4..b5034d571 100644
--- a/emis-biz-web/emis-biz-web.iml
+++ b/emis-biz-web/emis-biz-web.iml
@@ -169,7 +169,6 @@
-
@@ -250,5 +249,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java
index c02ce7923..1262dd652 100644
--- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java
+++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java
@@ -35,6 +35,7 @@ import com.xdadan.erp.emis.domain.vo.WaybillOrder;
import com.xdadan.erp.emis.service.*;
import com.xdadan.erp.emis.utils.WaybillHelper;
import com.xdadan.erp.system.service.ISysConfigService;
+import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -51,6 +52,7 @@ import java.util.*;
* @author linfso
* @date 2023-12-14 13:02:48
*/
+@Slf4j
@RestController
@RequestMapping("/emis/common")
public class EmisCommonController extends EmisBaseController
@@ -422,4 +424,25 @@ public class EmisCommonController extends EmisBaseController
return AjaxResult.success("成功",rstList);
}
+
+ @RequestMapping("/autoDoSendSmsTest")
+ public AjaxResult autoDoSendSmsTest(){
+ String lockKey="autoDoSendSmsTest";
+ log.error("autoDoSendSmsTest start");
+
+ // 加锁查询
+ redissonService.lock(lockKey,300);
+ try{
+ emisBaseService.autoDoSmsSend();
+ }catch(Exception ex){
+ ex.printStackTrace();
+ log.error("autoDoSendSmsTest exception:"+ex.getMessage());
+ }
+ log.error("autoDoSendSmsTest end");
+
+ redissonService.unlock(lockKey);
+ return AjaxResult.success("发送成功");
+
+ }
+
}
diff --git a/emis-biz/emis-biz.iml b/emis-biz/emis-biz.iml
index 9ada56a33..a33e6214c 100644
--- a/emis-biz/emis-biz.iml
+++ b/emis-biz/emis-biz.iml
@@ -127,7 +127,6 @@
-
@@ -209,5 +208,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/emis-biz/pom.xml b/emis-biz/pom.xml
index 5bbd0fb8f..162e95cd0 100644
--- a/emis-biz/pom.xml
+++ b/emis-biz/pom.xml
@@ -77,7 +77,36 @@
0.4.11
-
+
+
+
+ com.aliyun
+ dysmsapi20170525
+ 2.0.22
+
+
+ com.aliyun
+ tea-openapi
+ 0.2.6
+
+
+ com.aliyun
+ tea-console
+ 0.0.1
+
+
+ com.aliyun
+ tea-util
+ 0.2.14
+
+
+ com.aliyun
+ tea
+ 1.1.14
+
+
+
+
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java
index 5c9e54553..d6f2f9830 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java
@@ -22,10 +22,13 @@ package com.xdadan.erp.emis.service;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.serializer.ValueFilter;
import com.fasterxml.jackson.annotation.JsonFormat;
+ import com.xdadan.erp.common.core.domain.AjaxResult;
import com.xdadan.erp.common.core.domain.entity.SysUser;
import com.xdadan.erp.common.utils.DateUtils;
import com.xdadan.erp.common.utils.DictUtils;
+ import com.xdadan.erp.common.utils.HTTPHelper;
import com.xdadan.erp.common.utils.SecurityUtils;
+ import com.xdadan.erp.common.utils.sign.MD5;
import com.xdadan.erp.emis.domain.*;
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
import com.xdadan.erp.emis.domain.enumtype.PaymentStatus;
@@ -39,10 +42,13 @@ package com.xdadan.erp.emis.service;
import com.xdadan.erp.emis.service.IEmisWaybillCargoService;
import com.xdadan.erp.emis.service.IEmisWaybillFeeitemService;
import com.xdadan.erp.emis.service.IEmisWaybillService;
+ import com.xdadan.erp.emis.service.sms.AliyunSMSService;
+ import com.xdadan.erp.emis.utils.HTTPHelperV3;
import com.xdadan.erp.emis.utils.Kd100Helper;
import com.xdadan.erp.emis.utils.WaybillHelper;
import com.xdadan.erp.emis.utils.sensitive.Convert;
import com.xdadan.erp.system.mapper.SysUserMapper;
+ import com.xdadan.erp.system.service.ISysConfigService;
import jdk.nashorn.internal.runtime.Undefined;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -64,6 +70,10 @@ package com.xdadan.erp.emis.service;
@Service
@Slf4j
public class EmisBaseService {
+
+ @Autowired
+ private ISysConfigService configService;
+
@Autowired
protected EmisWaybillMapper emisWaybillMapper;
@@ -134,6 +144,10 @@ public class EmisBaseService {
@Autowired
private EmisSmsSendRecordMapper emisSmsSendRecordMapper;
+ @Autowired
+ private AliyunSMSService aliyunSMSService;
+
+
/**
* 获取客户完整手机号 国家+电话 eg: 0086-1381861188
@@ -486,6 +500,9 @@ public class EmisBaseService {
return null;
}
+ /**
+ * 获取国际物流信息
+ */
public void doTransferTraceUpdate() {
EmisTmsTransferTrace emisTmsTransferTrace = new EmisTmsTransferTrace();
emisTmsTransferTrace.getParams().put("needTrace", "1");
@@ -547,6 +564,52 @@ public class EmisBaseService {
}
+
+ /**
+ * 短信发送
+ */
+ public void autoDoSmsSend() {
+
+ EmisSmsSendRecord emisSmsSendRecord = new EmisSmsSendRecord();
+ emisSmsSendRecord.getParams().put("needSend", "1");
+ List list = emisSmsSendRecordMapper.selectEmisSmsSendRecordList(emisSmsSendRecord);
+ if(!CollectionUtil.isEmpty(list)){
+ for(EmisSmsSendRecord dt:list){
+ log.error("===>Start 发送短信:"+dt.getBillCode()+","+dt.getPhone()+" :smsType:"+dt.getSmsType());
+
+ try {
+ if ("1".equals(dt.getSmsType())) {
+ aliyunSMSService.sendMessage("探路速运", "SMS_465316363", dt.getPhone(), dt.getContent());
+
+ }
+ else if ("2".equals(dt.getSmsType())) {
+ aliyunSMSService.sendMessage("探路速运", "SMS_465341331", dt.getPhone(), dt.getContent());
+
+ }
+ else if ("3".equals(dt.getSmsType())) {
+ aliyunSMSService.sendMessage("探路速运", "SMS_465386407", dt.getPhone(), dt.getContent());
+ }
+ else{
+ continue;
+ }
+
+ dt.setSendStatus("1");
+ dt.setErrMsg("短信发送成功");
+ }catch (Exception ex){
+ dt.setSendStatus("-1");
+ }
+
+ dt.setFee("0");
+ dt.setSmsChannel("aliyun");
+ emisSmsSendRecordMapper.updateEmisSmsSendRecord(dt);
+ log.error("===>End 发送短信");
+
+ }
+ }
+
+ }
+
+
/**
* 更新签收状态
* @param billCode
@@ -664,13 +727,15 @@ public class EmisBaseService {
String content="尊敬的用户:您的运单${name}从${Sendingcountry}寄往${Receivingcountry}因${Problemtype}的问题导致货物时效延误预计送达时间${time},详询400-025-7080感谢您对探路速运的支持!";
String sendingcountry=oldEmisWaybill.getSendCountryName();
String receivingcountry=oldEmisWaybill.getReceiveCountryName();
- content = content.replace("${Sendingcountry}",receivingcountry);
- content = content.replace("${Receivingcountry}",sendingcountry);
+ content = content.replace("${Sendingcountry}",sendingcountry);
+ content = content.replace("${Receivingcountry}",receivingcountry);
content = content.replace("${name}",mainBillCode);
+ content = content.replace("${Problemtype}",emisProblemType.getTypeName());
+ content = content.replace("${time}",DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD,newEstDate));
EmisSmsSendRecord emisSmsSendRecord = new EmisSmsSendRecord();
emisSmsSendRecord.setBillCode(mainBillCode);
- emisSmsSendRecord.setSmsType("2"); // 签收短信
+ emisSmsSendRecord.setSmsType("3"); // 问题件
emisSmsSendRecord.setPhone(waybill.getReceiveMobile());
emisSmsSendRecord.setContent(content);
emisSmsSendRecord.setSendSiteCode(waybillProblemInfo.getRegisterSiteCode());
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/sms/AliyunSMSService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/sms/AliyunSMSService.java
new file mode 100644
index 000000000..22b02b51f
--- /dev/null
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/sms/AliyunSMSService.java
@@ -0,0 +1,97 @@
+package com.xdadan.erp.emis.service.sms;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.aliyun.dysmsapi20170525.Client;
+import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
+import com.aliyun.tea.TeaModel;
+import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
+import com.xdadan.erp.emis.domain.exception.EmisBizError;
+import com.xdadan.erp.system.service.ISysConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service("AliyunSMSService")
+public class AliyunSMSService {
+
+ @Autowired
+ private ISysConfigService configService;
+
+ /**
+ * 发送短信
+ * @param signName 签名
+ * @param templateCode 模板
+ * @param phone 手机号
+ * @param param 参数
+ */
+ public int sendMessage(String signName, String templateCode, String phone, String param) throws EmisBizError {
+
+ String jsonParamStr=configService.selectConfigByKey("sys.aliyun.sms");
+ JSONObject jObjParam=JSONObject.parseObject(jsonParamStr);
+ String accessKeyId=jObjParam.getString("accessKeyId");
+ String accessKeySecret=jObjParam.getString("accessKeySecret");
+
+ return innerSendMessage(accessKeyId,accessKeySecret,signName,templateCode,phone,param);
+
+ }
+
+ /**
+ * 使用AK&SK初始化账号Client
+ * @param accessKeyId
+ * @param accessKeySecret
+ * @return Client
+ * @throws Exception
+ */
+ public static Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
+ com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
+ .setAccessKeyId(accessKeyId)
+ .setAccessKeySecret(accessKeySecret);
+ // 访问的域名
+ config.endpoint = "dysmsapi.aliyuncs.com";
+ return new Client(config);
+ }
+
+ public static int innerSendMessage(String accessKeyId,String accessKeySecret,String signName, String templateCode, String phoneNumbers, String param) throws EmisBizError {
+ try {
+ Client client = createClient(accessKeyId, accessKeySecret);
+ com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest();
+ sendSmsRequest.setPhoneNumbers(phoneNumbers);
+ sendSmsRequest.setSignName(signName);
+ sendSmsRequest.setTemplateCode(templateCode);
+ sendSmsRequest.setTemplateParam("{\"code\":\""+param+"\"}");
+ com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
+ com.aliyun.dysmsapi20170525.models.SendSmsResponse response = client.sendSmsWithOptions(sendSmsRequest, runtime);
+ String jsonStr=com.aliyun.teautil.Common.toJSONString(TeaModel.buildMap(response));
+
+ if(response.getStatusCode()==200) {
+ if ("OK".equals(response.getBody().getCode())) {
+ return 1;
+ } else {
+ throw new EmisBizError(EmisBizErrorType.FAIL,response.getBody().getMessage());
+ }
+ }else{
+ throw new EmisBizError(EmisBizErrorType.FAIL,"短信渠道发送错误");
+ }
+ }catch (Exception e) {
+ e.printStackTrace();
+ throw new EmisBizError(EmisBizErrorType.FAIL,"短信渠道异常");
+ }
+ }
+
+ public static void main(String[] args) {
+
+ String accessKeyId="LTAI5tA1yz1QK6BVhzg3ne5D";
+ String accessKeySecret="bFbFle1hFsy1zeyTeN79FXopPx9yRS";
+ String signName="跨境助手";
+ String templateCode="SMS_179215861";
+ String phoneNumbers="13764645922";
+ String param="1234";
+ try {
+ int ret = innerSendMessage(accessKeyId,accessKeySecret,signName,templateCode,phoneNumbers,param);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/task/LogisticTask.java b/emis-biz/src/main/java/com/xdadan/erp/emis/task/LogisticTask.java
index 949b8df4d..1996683b7 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/task/LogisticTask.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/task/LogisticTask.java
@@ -37,9 +37,9 @@ public class LogisticTask {
*/
@Async
@Scheduled(fixedRate = 1000L * 60 * 5)
- public void autoQueryTransferInfo() {
- String lockKey="autoQueryTransferInfo";
- log.error("autoQueryTransferInfo start");
+ public void autoDoQueryTransferInfo() {
+ String lockKey="autoDoQueryTransferInfo";
+ log.error("autoDoQueryTransferInfo start");
// 加锁查询
redissonService.lock(lockKey,300);
@@ -47,14 +47,36 @@ public class LogisticTask {
emisBaseService.doTransferTraceUpdate();
}catch(Exception ex){
ex.printStackTrace();
- log.error("autoQueryTransferInfo exception:"+ex.getMessage());
+ log.error("autoDoQueryTransferInfo exception:"+ex.getMessage());
}
- log.error("autoQueryTransferInfo end");
+ log.error("autoDoQueryTransferInfo end");
redissonService.unlock(lockKey);
}
+ /**
+ * 自动发送短信
+ */
+// @Async
+// @Scheduled(fixedRate = 1000L * 60 * 5)
+// public void autoDoSendSms() {
+// String lockKey="autoDoSendSms";
+// log.error("autoDoSendSms start");
+//
+// // 加锁查询
+// redissonService.lock(lockKey,300);
+// try{
+// emisBaseService.autoDoSmsSend();
+// }catch(Exception ex){
+// ex.printStackTrace();
+// log.error("autoDoSendSms exception:"+ex.getMessage());
+// }
+// log.error("autoDoSendSms end");
+//
+// redissonService.unlock(lockKey);
+// }
+
}
diff --git a/emis-biz/src/main/resources/mapper/EmisSmsSendRecordMapper.xml b/emis-biz/src/main/resources/mapper/EmisSmsSendRecordMapper.xml
index 12f6797ab..4323def65 100644
--- a/emis-biz/src/main/resources/mapper/EmisSmsSendRecordMapper.xml
+++ b/emis-biz/src/main/resources/mapper/EmisSmsSendRecordMapper.xml
@@ -72,6 +72,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and create_time #{params.endCreateTime}
+
+
+ and send_status = '0'
+
+
and (
a.send_site_code in (