From ecc7b295a495014621de2cd9601659f5cdf26fbe Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 22 八月 2024 18:26:21 +0800
Subject: [PATCH] 点位导入优化
---
ycl-server/src/main/resources/application.yml | 2
ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml | 13 ++++--
ycl-server/src/main/resources/application-prod.yml | 2
ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java | 4 +-
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 39 ++++++++++++++-----
ycl-server/src/main/resources/application-dev.yml | 2
ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java | 39 +++----------------
7 files changed, 48 insertions(+), 53 deletions(-)
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java
index 3f8d0ba..a0b9e9d 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java
@@ -55,7 +55,7 @@
/**
* 鏇存柊鐐逛綅淇℃伅
*
- * @param point
+ * @param pointList
*/
- int updatePoint(@Param("point") YwPoint point);
+ int updatePoint(List<YwPoint> pointList);
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index 6e8b5db..1231123 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -28,7 +28,10 @@
import com.ycl.platform.wvp.WVPResult;
import com.ycl.system.Result;
import com.ycl.system.domain.SysConfig;
+import com.ycl.system.entity.SysDictData;
import com.ycl.system.mapper.SysConfigMapper;
+import com.ycl.system.mapper.SysDictDataMapper;
+import com.ycl.system.mapper.SysDictTypeMapper;
import com.ycl.system.model.LoginUser;
import com.ycl.system.page.PageUtil;
import com.ycl.utils.DateUtils;
@@ -84,6 +87,7 @@
private final SysConfigMapper configMapper;
private final ServerConfig serverConfig;
private final ReportMapper reportMapper;
+ private final SysDictDataMapper dictDataMapper;
@Value("${rtsp.server:http://127.0.0.1:7788}")
private String rtspServer;
@@ -118,16 +122,31 @@
for (WorkOrder workOrder : workOrderList) {
WorkOrder databaseWorkOrder = mapping.get(workOrder.getSerialNumber());
if (Objects.nonNull(databaseWorkOrder)) {
+ List<WorkOrderErrorType> workOrderErrorTypeList = new LambdaQueryChainWrapper<>(workOrderErrorTypeMapper)
+ .select(WorkOrderErrorType::getErrorName)
+ .eq(WorkOrderErrorType::getWorkOrderNo, workOrder.getWorkOrderNo())
+ .list();
+ List<String> errorNameList = workOrderErrorTypeList.stream().map(WorkOrderErrorType::getErrorName).collect(Collectors.toList());
String errorType = databaseWorkOrder.getErrorType();
- if (workOrder.getErrorType().equals(errorType)) {
+ if (errorNameList.contains(errorType)) {
// 濡傛灉锛屽浗鏍囩爜銆佹晠闅滅被鍨嬮兘涓�鏍凤紝鍒欒烦杩囦笉澶勭悊
continue;
} else {
- // 閿欒绫诲瀷涓嶄竴鏍凤紝灏辨洿鏂伴敊璇被鍨嬶紝骞朵笖閲嶇疆宸ュ崟鐘舵�佷负寰呭鐞�
- errorType = errorType + "," + workOrder.getErrorType();
- databaseWorkOrder.setErrorType(errorType);
- databaseWorkOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
+ // 閿欒绫诲瀷涓嶄竴鏍凤紝灏辨柊澧炰竴涓敊璇被鍨嬶紝骞朵笖閲嶇疆宸ュ崟鐘舵�佷负寰呭鐞�
+ List<SysDictData> errorTypeDictList = dictDataMapper.selectDictDataByType("error_type");
+ String finalErrorType = errorType;
+ List<SysDictData> targetErrorTypes = errorTypeDictList.stream().filter(item -> finalErrorType.equals(item.getDictValue())).collect(Collectors.toList());
+ if (! CollectionUtils.isEmpty(targetErrorTypes)) {
+ errorType = targetErrorTypes.get(0).getDictValue();
+ }
+ WorkOrderErrorType workOrderErrorType = new WorkOrderErrorType();
+ workOrderErrorType.setWorkOrderNo(databaseWorkOrder.getWorkOrderNo());
Date now = new Date();
+ workOrderErrorType.setCreateTime(now);
+ workOrderErrorType.setUpdateTime(now);
+ workOrderErrorTypeMapper.insert(workOrderErrorType);
+
+ databaseWorkOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
databaseWorkOrder.setUpdateTime(now);
baseMapper.updateById(databaseWorkOrder);
updateNum++;
@@ -142,11 +161,11 @@
} else {
workOrder.setCreateTime(new Date());
workOrder.setUpdateTime(new Date());
- // 濡傛灉鎶ュ杩囷紝浣跨敤鏈�鏂版姤澶囩殑閿欒绫诲瀷
- Report report = reportMapper.checkPointReported(workOrder.getSerialNumber());
- if (Objects.nonNull(report)) {
- workOrder.setErrorType(report.getErrorType());
- }
+// // 濡傛灉鎶ュ杩囷紝浣跨敤鏈�鏂版姤澶囩殑閿欒绫诲瀷
+// Report report = reportMapper.checkPointReported(workOrder.getSerialNumber());
+// if (Objects.nonNull(report)) {
+// workOrder.setErrorType(report.getErrorType());
+// }
waitAddList.add(workOrder);
}
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
index d5c04a7..0cdb6d0 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
@@ -287,17 +287,6 @@
return point;
}).collect(Collectors.toList());
this.waitAllFinishAndGetResult(pointList);
-// for (PointExport pointExport : dataList) {
-// YwPoint point = new YwPoint();
-// point.setImportantCommandImageTag("鏄�".equals(pointExport.getImportantCommandImageTagString()));
-// point.setProvinceTag("鏄�".equals(pointExport.getProvinceTagString()));
-// point.setUnitId(Long.valueOf(unitId));
-// point.setStartTime(startTime);
-// point.setEndTime(endTime);
-// point.setPointName(pointExport.getPointName());
-// point.setSerialNumber(pointExport.getSerialNumber());
-// this.baseMapper.updatePoint(point);
-// }
}
public void waitAllFinishAndGetResult(List<YwPoint> dataList) throws InterruptedException, ExecutionException {
@@ -306,34 +295,18 @@
int start = 0;
Date startTime = new Date();
while (true) {
- if (dataList.size() < start + 50) {
+ if (dataList.size() < start + 100) {
List<YwPoint> list = dataList.subList(start, dataList.size() - 1);
- Callable<Boolean> callable = new PointImportCallable(list, this.baseMapper);
- FutureTask<Boolean> futureTask = new FutureTask(callable);
- Thread thread = new Thread(futureTask);
- thread.start();
- // 涓嶈兘鐩存帴璋冪敤Future鐨刧et鏂规硶锛屽惁鍒欏氨鍙樻垚涓茶鎵ц浜嗭紝澶卞幓澶氱嚎绋嬫剰涔�
- resultList.add(futureTask);
+ this.baseMapper.updatePoint(list);
break;
} else {
- List<YwPoint> list = dataList.subList(start, start + 50);
- Callable<Boolean> callable = new PointImportCallable(list, this.baseMapper);
- FutureTask<Boolean> futureTask = new FutureTask(callable);
- Thread thread = new Thread(futureTask);
- thread.start();
- // 涓嶈兘鐩存帴璋冪敤Future鐨刧et鏂规硶锛屽惁鍒欏氨鍙樻垚涓茶鎵ц浜嗭紝澶卞幓澶氱嚎绋嬫剰涔�
- resultList.add(futureTask);
- start += 50;
+ List<YwPoint> list = dataList.subList(start, start + 100);
+ this.baseMapper.updatePoint(list);
+ start += 100;
}
}
- for (FutureTask<Boolean> futureTask : resultList) {
- data.add(futureTask.get());
- }
Date endTime = new Date();
- log.error("鎬诲叡鑰楁椂锛�" + (endTime.getTime() - startTime.getTime()) / 1000);
- if (data.stream().allMatch(item -> item == Boolean.TRUE)) {
- System.out.println("鎵ц鎴愬姛");
- }
+ log.error("鎬诲叡鑰楁椂锛�" + (endTime.getTime() - startTime.getTime()));
}
}
diff --git a/ycl-server/src/main/resources/application-dev.yml b/ycl-server/src/main/resources/application-dev.yml
index a2a11c7..7f977fe 100644
--- a/ycl-server/src/main/resources/application-dev.yml
+++ b/ycl-server/src/main/resources/application-dev.yml
@@ -36,7 +36,7 @@
spring:
# 鏁版嵁婧愰厤缃�
datasource:
- url: jdbc:mysql://101.35.247.188/zgyw?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true
+ url: jdbc:mysql://101.35.247.188/zgyw?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowMultiQueries=true
username: root
password: ycl@202466
type: com.alibaba.druid.pool.DruidDataSource
diff --git a/ycl-server/src/main/resources/application-prod.yml b/ycl-server/src/main/resources/application-prod.yml
index e154de5..690ddd5 100644
--- a/ycl-server/src/main/resources/application-prod.yml
+++ b/ycl-server/src/main/resources/application-prod.yml
@@ -36,7 +36,7 @@
spring:
# 鏁版嵁婧愰厤缃�
datasource:
- url: jdbc:mysql://51.92.65.72:3306/zgyw?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true
+ url: jdbc:mysql://51.92.65.72:3306/zgyw?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowMultiQueries=true
username: root
password: zgyw@202488
type: com.alibaba.druid.pool.DruidDataSource
diff --git a/ycl-server/src/main/resources/application.yml b/ycl-server/src/main/resources/application.yml
index 7473044..245f275 100644
--- a/ycl-server/src/main/resources/application.yml
+++ b/ycl-server/src/main/resources/application.yml
@@ -68,7 +68,7 @@
logging:
level:
org.springframework: warn
- com.ycl : debug
+ com.ycl : error
# security閰嶇疆
security:
diff --git a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
index 0702c36..3578040 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
@@ -109,15 +109,18 @@
</delete>
<update id="updatePoint">
- update t_yw_point
- <set>
- <if test="point.pointName != null and point.pointName != ''">point_name = #{point.pointName},</if>
+ <foreach collection="pointList" separator=";" item="point">
+ UPDATE t_yw_point
+ SET
+ <if test="point.pointName != null and point.pointName != ''">
+ point_name = #{point.pointName},
+ </if>
unit_id = #{point.unitId},
start_time = #{point.startTime},
end_time = #{point.endTime},
province_tag = #{point.provinceTag},
- important_command_image_tag = #{point.importantCommandImageTag},
- </set>
+ important_command_image_tag = #{point.importantCommandImageTag}
WHERE serial_number = #{point.serialNumber}
+ </foreach>
</update>
</mapper>
--
Gitblit v1.8.0