Commit faf4dc14 authored by 赵啸非's avatar 赵啸非

短信界面修改

parent 1a2832a2
...@@ -65,12 +65,19 @@ ...@@ -65,12 +65,19 @@
label: "发送状态", label: "发送状态",
fuzzy: true fuzzy: true
}, },
{ {
name: "sendTime", name: "sendTimeStart",
type: "date", type: "datetime",
label: "发送时间", label: "开始时间",
fuzzy: true },
},
{
name: "sendTimeEnd",
type: "datetime",
label: "结束时间",
placeholder:"结束时间"
},
], ],
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60},
......
...@@ -112,7 +112,7 @@ export default { ...@@ -112,7 +112,7 @@ export default {
], ],
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60,label:"全选"},
{ {
type: "index", type: "index",
label: "序号", label: "序号",
......
...@@ -3,48 +3,61 @@ ...@@ -3,48 +3,61 @@
<LayoutTable :data="tableData" :config="tableConfig"> <LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable> </LayoutTable>
<dialog-show ref="dialogform" @ok="getData" />
<drawer-show ref="drawerform" @ok="getData" />
</div> </div>
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import dialogShow from "./dialogshow";
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default { export default {
name: "Firm", name: "FirmList",
components: {dialogShow }, components: {
drawerShow
},
mixins: [table], mixins: [table],
created() { created() {
}, },
methods: { methods: {
/** 重写新增方法 */ /** 重写新增方法 */
toAdd(row) { toAdd(row) {
this.$refs.dialogform.add(row); this.$refs.drawerform.add(row);
}, },
/** 重写编辑方法 */ /** 重写编辑方法 */
toEdit(row) { toEdit(row) {
this.$refs.dialogform.edit(row); this.$refs.drawerform.edit(row);
}, },
/** 重写查看方法 */ /** 重写查看方法 */
// toView(row) { toView(row) {
// this.$refs.dialogform.view(row); this.$refs.drawerform.view(row);
// }, },
}, },
data() { data() {
return { return {
config: { config: {
search: [ search: [
{
name: "firmName",
type: "text",
label: "设备生产厂商名称",
fuzzy: true
},
], ],
columns: [ columns: [
{type: "selection", width: 60}, {type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{label: "设备生产厂商名称", prop: "firmName"}, {label: "设备生产厂商名称", prop: "firmName"},
{label: "设备生产商编码", prop: "firmCode"}, {label: "设备生产商编码", prop: "firmCode"},
{label: "备注", prop: "firmRemark"},
{label: "创建时间", prop: "createTime", formatter: this.formatterDate},
{ {
label: "操作", label: "操作",
width: 240, width: 240,
......
This diff is collapsed.
package com.mortals.xhx.base.framework.listener; package com.mortals.xhx.base.framework.listener;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.mortals.xhx.common.code.DeviceOnlineStatusEnum; import com.mortals.framework.util.UuidUtil;
import com.mortals.xhx.common.code.DeviceMethodEnum; import com.mortals.xhx.common.code.*;
import com.mortals.xhx.common.code.DeviceStatusEnum;
import com.mortals.xhx.common.key.RedisKey; import com.mortals.xhx.common.key.RedisKey;
import com.mortals.xhx.module.alarm.model.AlarmConfigEntity;
import com.mortals.xhx.module.alarm.model.AlarmConfigQuery;
import com.mortals.xhx.module.alarm.model.AlarmSmsSendEntity;
import com.mortals.xhx.module.alarm.service.AlarmConfigService;
import com.mortals.xhx.module.alarm.service.AlarmSmsSendService;
import com.mortals.xhx.module.device.model.DeviceAlarmInfoEntity;
import com.mortals.xhx.module.device.model.DeviceAlarmInfoQuery;
import com.mortals.xhx.module.device.model.DeviceEntity; import com.mortals.xhx.module.device.model.DeviceEntity;
import com.mortals.xhx.module.device.service.DeviceAlarmInfoService;
import com.mortals.xhx.module.device.service.DeviceService; import com.mortals.xhx.module.device.service.DeviceService;
import com.mortals.xhx.module.platform.model.PlatformEntity; import com.mortals.xhx.module.platform.model.PlatformEntity;
import com.mortals.xhx.module.platform.service.PlatformService; import com.mortals.xhx.module.platform.service.PlatformService;
...@@ -21,6 +30,8 @@ import org.springframework.util.ObjectUtils; ...@@ -21,6 +30,8 @@ import org.springframework.util.ObjectUtils;
import java.util.Date; import java.util.Date;
/** /**
* 离线通知
*
* @author: zxfei * @author: zxfei
* @date: 2022/6/22 16:40 * @date: 2022/6/22 16:40
* @description: * @description:
...@@ -35,6 +46,13 @@ public class CustomerKeyExpirationListener implements MessageListener { ...@@ -35,6 +46,13 @@ public class CustomerKeyExpirationListener implements MessageListener {
private ProductService productService; private ProductService productService;
@Autowired @Autowired
private PlatformService platformService; private PlatformService platformService;
@Autowired
private AlarmConfigService alarmConfigService;
@Autowired
private DeviceAlarmInfoService deviceAlarmInfoService;
@Autowired
private AlarmSmsSendService alarmSmsSendService;
@Override @Override
public void onMessage(Message message, byte[] bytes) { public void onMessage(Message message, byte[] bytes) {
...@@ -54,13 +72,26 @@ public class CustomerKeyExpirationListener implements MessageListener { ...@@ -54,13 +72,26 @@ public class CustomerKeyExpirationListener implements MessageListener {
//通知第三方平台 //通知第三方平台
deviceService.sendThirdParty(deviceEntity, productEntity, platformEntity, DeviceMethodEnum.OFFLINE); deviceService.sendThirdParty(deviceEntity, productEntity, platformEntity, DeviceMethodEnum.OFFLINE);
} }
}
// TODO: 2022/6/23 告警信息保存与发送 // TODO: 2022/6/23 告警信息保存与发送
AlarmConfigEntity alarmConfigEntity = alarmConfigService.selectOne(new AlarmConfigQuery().productId(productEntity.getId()));
if (!ObjectUtils.isEmpty(alarmConfigEntity)) {
if(alarmConfigEntity.getAlarmPusW1ay()== AlarmPusW1ayEnum.短信.getValue()){
// TODO: 2022/7/4 发送短信
DeviceAlarmInfoEntity deviceAlarmInfoEntity = deviceAlarmInfoService.selectOne(new DeviceAlarmInfoQuery().alarmDevice(deviceEntity.getId()));
AlarmSmsSendEntity alarmSmsSendEntity = new AlarmSmsSendEntity();
alarmSmsSendEntity.initAttrValue();
alarmSmsSendEntity.setId(IdUtil.getSnowflake().nextId());
alarmSmsSendEntity.setMobile(deviceAlarmInfoEntity.getReceivePersonnelTelephone());
alarmSmsSendEntity.setReceiver(deviceAlarmInfoEntity.getAlarmReceivePersonnel());
alarmSmsSendEntity.setSendMess(deviceAlarmInfoEntity.getAlarmContent());
alarmSmsSendEntity.setSendStatus(SendStatusEnum.未发送.getValue());
alarmSmsSendService.save(alarmSmsSendEntity,null);
}
}
}
} }
} }
log.info("监听到key:" + key + "过期"); log.info("监听到key:" + key + "过期");
} }
} }
\ No newline at end of file
package com.mortals.xhx.common.utils;
import com.alibaba.fastjson.JSON;
import com.mortals.framework.util.HttpUtil;
import com.mortals.xhx.busiz.req.ApiThirdPartyReq;
import com.mortals.xhx.common.code.MessageTypeEnum;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.module.alarm.model.AlarmSmsSendEntity;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import java.util.HashMap;
import java.util.Map;
import static com.mortals.framework.util.HttpUtil.HEADER_CONTENT_TYPE;
/**
* 短信发送任务
*
* @author: zxfei
* @date: 2022/4/28 10:56
* @description:
**/
@Slf4j
@AllArgsConstructor
public class SendSmsTask implements Runnable {
/**
* 短信消息
*/
private AlarmSmsSendEntity alarmSmsSendEntity;
/**
* 接口地址
*/
private String sendUrl;
@Override
public void run() {
// TODO: 2022/7/5 短信发送
String resp = null;
try {
Map<String, String> header = new HashMap<>();
header.put(HEADER_CONTENT_TYPE, "application/json");
// resp = HttpUtil.doPost(sendUrl, header, JSON.toJSONString(deviceReqApiReq));
//发送成功添加到响应队列,由线程批量更新
SmsQueueManager.offerRespQueue(alarmSmsSendEntity);
log.debug("resp:{}", resp);
} catch (Exception e) {
log.error("异常:", e);
}
}
}
package com.mortals.xhx.daemon.applicationservice; package com.mortals.xhx.daemon.applicationservice;
import com.mortals.framework.service.ICacheService; import com.alibaba.fastjson.JSON;
import com.mortals.xhx.base.framework.listener.CustomerKeyExpirationListener; import com.mortals.framework.springcloud.service.IApplicationService;
import com.mortals.xhx.common.utils.SendTaskThreadPool; import com.mortals.xhx.common.utils.SendTaskThreadPool;
import com.mortals.xhx.common.utils.SmsQueueManager;
import com.mortals.xhx.module.alarm.model.AlarmSmsSendEntity;
import com.mortals.xhx.queue.TbQueueMsg;
import com.mortals.xhx.utils.IotThreadFactory;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.connection.MessageListener;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import com.mortals.framework.springcloud.service.IApplicationService; import java.util.ArrayList;
import java.util.List;
import java.time.Duration; import java.util.Objects;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
@Component @Component
@Slf4j @Slf4j
...@@ -23,10 +25,35 @@ public class DeviceStartService implements IApplicationService { ...@@ -23,10 +25,35 @@ public class DeviceStartService implements IApplicationService {
@Autowired @Autowired
private SendTaskThreadPool sendTaskThreadPool; private SendTaskThreadPool sendTaskThreadPool;
protected Boolean stopped = false;
@Override @Override
public void start() { public void start() {
log.info("初始化发送线程数量"); log.info("初始化发送线程数量");
sendTaskThreadPool.init(20); sendTaskThreadPool.init(20);
//启动短信发送响应更新线程
sendTaskThreadPool.execute(() -> {
int waitTime = 1000;
while (!stopped) {
try {
AlarmSmsSendEntity message = SmsQueueManager.pollRespQueue();
if (!ObjectUtils.isEmpty(message)) {
// TODO: 2022/7/5 更新响应
}
} catch (Exception e) {
if (!stopped) {
try {
Thread.sleep(waitTime);
} catch (InterruptedException e2) {
}
}
}
}
});
log.info("开始服务..[配置已加载完成,但部分框架还未初始化,比如:Kafka]"); log.info("开始服务..[配置已加载完成,但部分框架还未初始化,比如:Kafka]");
} }
......
...@@ -49,6 +49,7 @@ public class SiteStatTaskImpl implements ITaskExcuteService { ...@@ -49,6 +49,7 @@ public class SiteStatTaskImpl implements ITaskExcuteService {
private ISiteFeign siteFeign; private ISiteFeign siteFeign;
@Override @Override
public void excuteTask(ITask task) throws AppException { public void excuteTask(ITask task) throws AppException {
String resp = siteFeign.list(new SitePdu()); String resp = siteFeign.list(new SitePdu());
......
...@@ -36,7 +36,6 @@ public class AlarmSmsSendEntity extends AlarmSmsSendVo { ...@@ -36,7 +36,6 @@ public class AlarmSmsSendEntity extends AlarmSmsSendVo {
/** /**
* 接收人 * 接收人
*/ */
@Excel(name = "接收人")
private String receiver; private String receiver;
......
package com.mortals.xhx.module.alarm.model.vo; package com.mortals.xhx.module.alarm.model.vo;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.alarm.model.AlarmSmsSendEntity; import com.mortals.xhx.module.alarm.model.AlarmSmsSendEntity;
import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -9,6 +11,7 @@ import java.util.List; ...@@ -9,6 +11,7 @@ import java.util.List;
* @author zxfei * @author zxfei
* @date 2022-07-01 * @date 2022-07-01
*/ */
@Data
public class AlarmSmsSendVo extends BaseEntityLong { public class AlarmSmsSendVo extends BaseEntityLong {
} }
\ No newline at end of file
package com.mortals.xhx.module.alarm.service; package com.mortals.xhx.module.alarm.service;
import com.mortals.framework.service.ICRUDService; import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.alarm.model.AlarmSmsSendEntity; import com.mortals.xhx.module.alarm.model.AlarmSmsSendEntity;
import java.util.Queue;
/** /**
* AlarmSmsSendService * AlarmSmsSendService
* *
...@@ -11,4 +14,7 @@ import com.mortals.xhx.module.alarm.model.AlarmSmsSendEntity; ...@@ -11,4 +14,7 @@ import com.mortals.xhx.module.alarm.model.AlarmSmsSendEntity;
*/ */
public interface AlarmSmsSendService extends ICRUDService<AlarmSmsSendEntity,Long>{ public interface AlarmSmsSendService extends ICRUDService<AlarmSmsSendEntity,Long>{
Queue getSmsRespQueue();
} }
\ No newline at end of file
package com.mortals.xhx.module.alarm.service.impl; package com.mortals.xhx.module.alarm.service.impl;
import com.mortals.xhx.queue.TbQueueMsg;
import lombok.Getter;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.alarm.dao.AlarmSmsSendDao; import com.mortals.xhx.module.alarm.dao.AlarmSmsSendDao;
import com.mortals.xhx.module.alarm.model.AlarmSmsSendEntity; import com.mortals.xhx.module.alarm.model.AlarmSmsSendEntity;
import com.mortals.xhx.module.alarm.service.AlarmSmsSendService; import com.mortals.xhx.module.alarm.service.AlarmSmsSendService;
import java.util.Queue;
import java.util.concurrent.LinkedBlockingQueue;
/** /**
* AlarmSmsSendService * AlarmSmsSendService
* 短信发送记录 service实现 * 短信发送记录 service实现
...@@ -13,5 +19,12 @@ import com.mortals.xhx.module.alarm.service.AlarmSmsSendService; ...@@ -13,5 +19,12 @@ import com.mortals.xhx.module.alarm.service.AlarmSmsSendService;
*/ */
@Service("alarmSmsSendService") @Service("alarmSmsSendService")
public class AlarmSmsSendServiceImpl extends AbstractCRUDServiceImpl<AlarmSmsSendDao, AlarmSmsSendEntity, Long> implements AlarmSmsSendService { public class AlarmSmsSendServiceImpl extends AbstractCRUDServiceImpl<AlarmSmsSendDao, AlarmSmsSendEntity, Long> implements AlarmSmsSendService {
private LinkedBlockingQueue<AlarmSmsSendEntity> smsRespQueue = new LinkedBlockingQueue<>();
@Override
public Queue getSmsRespQueue() {
return smsRespQueue;
}
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment