dadacca0 张雷

refactor(sk-module): 优化多个模块的代码结构和功能

- 移除了 EquipmentInfoDuration 类中未使用的导入
- 优化了 InspectionAnalysisServiceImpl 中的任务查询逻辑- 更新了 InspectionPlanMapper.xml 中的 SQL 查询
- 增加了 WebSocket 类中的 AI 消息发送功能
1 个父辈 08331463
package com.skua.modules.statistics.entity;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
......@@ -12,9 +10,6 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import netscape.javascript.JSUtil;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
/**
......
......@@ -3,7 +3,13 @@
<mapper namespace="com.skua.modules.inspection.mapper.InspectionPlanMapper">
<select id="getPage" resultType="com.skua.modules.inspection.entity.InspectionPlan">
select * from inspection_plan p
select p.*,ifnull(e.equip_count,0) as equip_count from inspection_plan p
LEFT join
(select n.inspection_plan_id,count(g.equip_info_id) equip_count
from inspection_plan_point n
left join inspection_point_fill_group g on n.inspection_point_id = g.inspection_point_id
where g.equip_info_id != '' GROUP BY n.inspection_plan_id
) e on p.id = e.inspection_plan_id
where p.del_flag = '0'
<if test="departId!=null and departId!=''">
AND p.depart_id = #{departId}
......
package com.skua.modules.inspection.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.skua.core.context.BaseContextHandler;
import com.skua.core.util.ConvertUtils;
import com.skua.core.util.DateUtils;
......@@ -369,12 +370,18 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
inspectionTaskIndicatorsVO.setAbnormalRate("0");
inspectionTaskIndicatorsVO.setProcessedAbnormalRate("0");
//查询时间内巡检任务信息
InspectionTaskVO inspectionTaskVO = new InspectionTaskVO();
QueryWrapper<InspectionTask> inspectionTaskQueryWrapper = new QueryWrapper();
if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) {
inspectionTaskQueryWrapper.ge("inspection_cycle_start_date", startDate + " 00:00:00");
inspectionTaskQueryWrapper.le("inspection_cycle_start_date", endDate + " 23:59:59");
inspectionTaskVO.setStartTime(inspectionTaskVO.getStartTime() + " 00:00:00");
inspectionTaskVO.setEndTime(inspectionTaskVO.getEndTime() + " 23:59:59");
}
List<InspectionTask> inspectionTaskList = inspectionTaskService.list(inspectionTaskQueryWrapper);
// List<InspectionTask> inspectionTaskList = inspectionTaskService.list(inspectionTaskQueryWrapper);
IPage<InspectionTask> pageList = inspectionTaskService.getPage(null, inspectionTaskVO);
List<InspectionTask> inspectionTaskList = pageList.getRecords();
//各状态的数量
Map<String, List<InspectionTask>> taskStateMap = new HashMap<>();
List<InspectionTask> inspectionTasks;
......@@ -393,13 +400,13 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
//未检任务
List<InspectionTask> notCheckedInspectionTaskList = taskStateMap.get("3") == null ? new ArrayList<>() : taskStateMap.get("3");
//进行中任务
List<InspectionTask> inProgressInspectionTaskList = taskStateMap.get("1") == null ? new ArrayList<>() : taskStateMap.get("1");
// List<InspectionTask> inProgressInspectionTaskList = taskStateMap.get("1") == null ? new ArrayList<>() : taskStateMap.get("1");
//已检任务数
int checkedInspectionTaskCount = checkedInspectionTaskList.size();
//未检任务数
int notCheckedInspectionTaskCount = notCheckedInspectionTaskList.size();
//进行中任务数
int inProgressInspectionTaskCount = inProgressInspectionTaskList.size();
// int inProgressInspectionTaskCount = inProgressInspectionTaskList.size();
//已检任务ID集合
List<String> checkedInspectionTaskIdList = checkedInspectionTaskList.stream().map(InspectionTask::getId).collect(Collectors.toList());
if (checkedInspectionTaskIdList.size() > 0) {
......@@ -442,12 +449,12 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
processInstanceStateMap.put(state, tempProcessInstanceIdList);
}
//异常项数量(问题上报)
Integer abnormalItemsCount = problemReportPlanList.size();
// Integer abnormalItemsCount = problemReportPlanList.size();
//已处理异常项数量(问题上报)
Integer processedAbnormalItemsCount = 0;
if (processInstanceStateMap != null && processInstanceStateMap.get(FlowEngineConstant.STATUS_FINISHED) != null) {
processedAbnormalItemsCount = processInstanceStateMap.get(FlowEngineConstant.STATUS_FINISHED).size();
}
// Integer processedAbnormalItemsCount = 0;
// if (processInstanceStateMap != null && processInstanceStateMap.get(FlowEngineConstant.STATUS_FINISHED) != null) {
// processedAbnormalItemsCount = processInstanceStateMap.get(FlowEngineConstant.STATUS_FINISHED).size();
// }
//完成率
String completionRate = "0";
if (totalInspectionTaskCount != 0) {
......@@ -464,14 +471,14 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
abnormalRate = numberFormat.format(abnormalInspectionTaskCount / (double) checkedInspectionTaskCount * 100);
}
//异常项处理率
String processedAbnormalRate = "0";
if (abnormalItemsCount != 0) {
processedAbnormalRate = numberFormat.format(processedAbnormalItemsCount / (double)abnormalItemsCount * 100);
}
// String processedAbnormalRate = "0";
// if (abnormalItemsCount != 0) {
// processedAbnormalRate = numberFormat.format(processedAbnormalItemsCount / (double)abnormalItemsCount * 100);
// }
inspectionTaskIndicatorsVO.setCompletionRate(completionRate);
inspectionTaskIndicatorsVO.setUnCompletionRate(unCompletionRate);
inspectionTaskIndicatorsVO.setAbnormalRate(abnormalRate);
inspectionTaskIndicatorsVO.setProcessedAbnormalRate(processedAbnormalRate);
// inspectionTaskIndicatorsVO.setProcessedAbnormalRate(processedAbnormalRate);
}
return inspectionTaskIndicatorsVO;
}
......@@ -940,7 +947,7 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
}
inspectionAbnormalItemsTrendVO.setInspectionTaskDate(date);
if(totalCheckeItemsCount - checkedItemsCount < 0){
inspectionAbnormalItemsTrendVO.setNotCheckedItemsCount(0);
inspectionAbnormalItemsTrendVO.setNotCheckedItemsCount(checkedItemsCount - totalCheckeItemsCount);
}else{
inspectionAbnormalItemsTrendVO.setNotCheckedItemsCount(totalCheckeItemsCount - checkedItemsCount);
}
......
......@@ -49,13 +49,29 @@ public class WebSocket {
@OnMessage
public void onMessage(String message) {
//log.info("【websocket消息】收到客户端消息:"+message);
log.info("【websocket消息】收到客户端消息:"+message);
sendAiMessage(message);//发送消息给AI
JSONObject obj = new JSONObject();
obj.put("cmd", "heartcheck");//业务类型
obj.put("msgTxt", "心跳响应");//消息内容
session.getAsyncRemote().sendText(obj.toJSONString());
}
public void sendAiMessage(String message) {
//message中是否包含“AiMessage”
if(message.contains("AiMessage")){
//以:分割message
String[] str = message.split(":");
if(str.length>1){
JSONObject obj = new JSONObject();
obj.put("cmd", "ai");
obj.put("type", "menu");
obj.put("questen", str[1]);
sendOneMessage("e9ca23d68d884d4ebb19d07889727dae", obj.toJSONString());
}
}
}
// 此为广播消息
public void sendAllMessage(String message) {
log.info("【websocket消息】广播消息:"+message);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!