From 26196805b7b61b0caaace961e616ffd10fbbdf92 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 09 八月 2024 14:15:51 +0800
Subject: [PATCH] 阈值生成工单接口重构、点位标签调整
---
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java | 10 ++-
ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java | 8 +-
ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml | 8 +-
ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java | 14 ++--
ycl-common/src/main/java/enumeration/general/WorkOrderDistributeWayEnum.java | 1
ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java | 2
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java | 10 +--
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 83 ++++++++++++++++++++++++---
ycl-server/src/main/java/com/ycl/task/MonitorTask.java | 9 +--
ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java | 5 +
ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java | 4
11 files changed, 109 insertions(+), 45 deletions(-)
diff --git a/ycl-common/src/main/java/enumeration/general/WorkOrderDistributeWayEnum.java b/ycl-common/src/main/java/enumeration/general/WorkOrderDistributeWayEnum.java
index ee5796b..baa3da9 100644
--- a/ycl-common/src/main/java/enumeration/general/WorkOrderDistributeWayEnum.java
+++ b/ycl-common/src/main/java/enumeration/general/WorkOrderDistributeWayEnum.java
@@ -16,6 +16,7 @@
SELECTED_DISTRIBUTE("SELECTED_DISTRIBUTE", "閫夋嫨涓嬪彂"),
ALL_DISTRIBUTE("ALL_DISTRIBUTE", "鍏ㄩ儴涓嬪彂"),
FAST_DISTRIBUTE("FAST_DISTRIBUTE", "蹇嵎涓嬪彂"),
+ DIRECT_DISTRIBUTE("DIRECT_DISTRIBUTE", "瓒呴槇鍊艰嚜鍔ㄤ笅鍙�"),
;
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java
index e24e6d6..532eec7 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java
@@ -5,8 +5,6 @@
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycl.platform.base.AbsEntity;
-import enumeration.general.ImportantTagEnum;
-import enumeration.general.ProvinceTagEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -65,11 +63,15 @@
@ApiModelProperty("閲嶇偣鐐逛綅鏍囩")
@TableField("important_tag")
- private ImportantTagEnum importantTag;
+ private Boolean importantTag;
@ApiModelProperty("鐪佸巺鐐逛綅鏍囩")
@TableField("province_tag")
- private ProvinceTagEnum provinceTag;
+ private Boolean provinceTag;
+
+ @ApiModelProperty("閲嶇偣鎸囨尌鍥惧儚鏍囩")
+ @TableField("important_command_image_tag")
+ private Boolean importantCommandImageTag;
@TableField("serial_number")
private String serialNumber;
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java
index dd863ca..6137eef 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java
@@ -6,9 +6,6 @@
import com.ycl.system.domain.group.Add;
import com.ycl.platform.base.AbsForm;
import com.ycl.platform.domain.entity.YwPoint;
-import enumeration.general.ImportantTagEnum;
-import enumeration.general.ProvinceTagEnum;
-import jakarta.validation.constraints.NotEmpty;
import org.springframework.beans.BeanUtils;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
@@ -18,9 +15,7 @@
import lombok.Data;
import lombok.experimental.Accessors;
-import java.time.LocalDateTime;
import java.util.Date;
-import java.util.List;
/**
* 杩愮淮鐐逛綅琛ㄥ崟
@@ -46,9 +41,14 @@
private Long deptId;
@ApiModelProperty("鐪佸巺鐐逛綅鏍囩")
- private ProvinceTagEnum provinceTag;
+ private Boolean provinceTag;
+
@ApiModelProperty("閲嶇偣鐐逛綅鏍囩")
- private ImportantTagEnum importantTag;
+ private Boolean importantTag;
+
+ @ApiModelProperty("閲嶇偣鎸囨尌鍥惧儚鏍囩")
+ private Boolean importantCommandImageTag;
+
@ApiModelProperty("杩愮淮鐘舵��")
private String status;
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java
index 069ed5b..932bac4 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java
@@ -4,16 +4,12 @@
import com.ycl.platform.base.AbsVo;
import com.ycl.platform.domain.entity.YwPoint;
-import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
-import enumeration.general.ImportantTagEnum;
-import enumeration.general.ProvinceTagEnum;
import org.springframework.lang.NonNull;
import org.springframework.beans.BeanUtils;
import lombok.Data;
-import lombok.experimental.Accessors;
/**
* 杩愮淮鐐逛綅灞曠ず
@@ -53,9 +49,11 @@
private String deptName;
/** 閲嶇偣鐐逛綅鏍囩 */
- private ImportantTagEnum importantTag;
+ private Boolean importantTag;
/** 鐪佸巺鐐逛綅鏍囩 */
- private ProvinceTagEnum provinceTag;
+ private Boolean provinceTag;
+ /** 閲嶇偣鎸囨尌鍥惧儚鏍囩 */
+ private Boolean importantCommandImageTag;
public static YwPointVO getVoByEntity(@NonNull YwPoint entity, YwPointVO vo) {
if(vo == null) {
diff --git a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
index 1b36b5b..4a832e8 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
@@ -119,13 +119,13 @@
//杩斿洖鐪佸巺鍥芥爣鐮侀泦鍚�
public List<String> getProvince() {
- List<YwPoint> province = pointMapper.selectByTag(null, "province");
+ List<YwPoint> province = pointMapper.selectByTag(null, Boolean.TRUE);
return province.stream().map(YwPoint::getSerialNumber).collect(Collectors.toList());
}
//杩斿洖閲嶇偣鐐逛綅闆嗗悎
public List<String> getImportant() {
- List<YwPoint> important = pointMapper.selectByTag("important", null);
+ List<YwPoint> important = pointMapper.selectByTag(Boolean.TRUE, null);
return important.stream().map(YwPoint::getSerialNumber).collect(Collectors.toList());
}
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 c6b12d9..12756ed 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
@@ -40,7 +40,7 @@
/**
* 閫氳繃鏍囩鏌ラ噸鐐圭偣浣嶆垨鐪佸巺鐐逛綅
*/
- List<YwPoint> selectByTag(@Param("important")String important, @Param("province")String province);
+ List<YwPoint> selectByTag(@Param("important")Boolean important, @Param("province")Boolean province);
/**
* 瀵煎嚭鏁版嵁
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
index ba47fef..a6d00a6 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
@@ -21,12 +21,13 @@
public interface WorkOrderService extends IService<WorkOrder> {
/**
- * 绯荤粺鍐呴儴鐨勬坊鍔�
+ * 绯荤粺鍐呴儴鐨勬坊鍔狅紝涓嬪彂
*
* @param workOrderList
* @return
*/
- Boolean innerAdd(List<WorkOrder> workOrderList);
+ Boolean addWaitDistribute(List<WorkOrder> workOrderList);
+
/**
* 娣诲姞
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 0491c4f..343c7ce 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
@@ -21,16 +21,15 @@
import com.ycl.platform.service.WorkOrderService;
import com.ycl.platform.service.YwPointService;
import com.ycl.system.Result;
+import com.ycl.system.domain.SysConfig;
+import com.ycl.system.mapper.SysConfigMapper;
import com.ycl.system.model.LoginUser;
import com.ycl.system.page.PageUtil;
import com.ycl.utils.DateUtils;
import com.ycl.utils.SecurityUtils;
import com.ycl.utils.redis.RedisCache;
import com.ycl.utils.uuid.IdUtils;
-import enumeration.general.NotifyTypeEnum;
-import enumeration.general.UrgentLevelEnum;
-import enumeration.general.WorkOrderDistributeWayEnum;
-import enumeration.general.WorkOrderStatusEnum;
+import enumeration.general.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
@@ -39,6 +38,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
+import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
@@ -65,6 +65,7 @@
private final NotifyService notifyService;
private final WorkOrderDistributeRecordMapper workOrderDistributeRecordMapper;
private final TMonitorMapper monitorMapper;
+ private final SysConfigMapper configMapper;
private final String DISTRIBUTE_LOCK_KEY = "distributeLock";
private final static String IMPORTANT = "important";
@@ -73,16 +74,78 @@
private RedisCache redisCache;
@Override
- public Boolean innerAdd(List<WorkOrder> workOrderList) {
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean addWaitDistribute(List<WorkOrder> workOrderList) {
int total = workOrderList.size();
workOrderList.stream().filter(item -> {
return StringUtils.hasText(item.getSerialNumber()) && Objects.nonNull(item.getStatus()) && StringUtils.hasText(item.getErrorType());
});
- // TODO 鑷姩涓嬪彂宸ュ崟
- int real = workOrderList.size();
- boolean result = this.saveBatch(workOrderList);
- log.info("浼犲叆宸ュ崟鎬绘暟: {}锛屽疄闄呮坊鍔犲伐鍗曟暟锛歿}", total, real);
- return result;
+ List<String> serialNumberList = workOrderList.stream().map(WorkOrder::getSerialNumber).collect(Collectors.toList());
+ // 鏌ュ嚭鏁版嵁搴撲腑鍥芥爣鐮佸搴旂殑鏈畬鎴愮殑宸ュ崟
+ List<WorkOrder> inDatabaseWorkOrderList = new LambdaQueryChainWrapper<>(baseMapper)
+ .select(WorkOrder::getId, WorkOrder::getSerialNumber, WorkOrder::getStatus, WorkOrder::getErrorType)
+ .in(WorkOrder::getSerialNumber, serialNumberList)
+ .ne(WorkOrder::getStatus, WorkOrderStatusEnum.AUDITING_SUCCESS)
+ .list();
+ Map<String, WorkOrder> mapping = inDatabaseWorkOrderList.stream().collect((Collectors.toMap(WorkOrder::getSerialNumber, workOrder -> workOrder)));
+ List<WorkOrder> waitAddList = new ArrayList<>(48);
+ Integer updateNum = 0;
+ for (WorkOrder workOrder : workOrderList) {
+ WorkOrder databaseWorkOrder = mapping.get(workOrder.getSerialNumber());
+ if (Objects.nonNull(databaseWorkOrder)) {
+ String errorType = databaseWorkOrder.getErrorType();
+ if (workOrder.getErrorType().equals(errorType)) {
+ // 濡傛灉锛屽浗鏍囩爜銆佹晠闅滅被鍨嬮兘涓�鏍凤紝鍒欒烦杩囦笉澶勭悊
+ continue;
+ } else {
+ // 閿欒绫诲瀷涓嶄竴鏍凤紝灏辨洿鏂伴敊璇被鍨嬶紝骞朵笖閲嶇疆宸ュ崟鐘舵�佷负寰呭鐞�
+ errorType = errorType + "," + workOrder.getErrorType();
+ databaseWorkOrder.setErrorType(errorType);
+ databaseWorkOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
+ baseMapper.updateById(databaseWorkOrder);
+ updateNum++;
+ // 鍚屾椂鏂板涓�涓繍缁村鐞嗕俊鎭紝琛ㄦ槑姝ゅ伐鍗曡璋冩暣 TODO
+ }
+ } else {
+ waitAddList.add(workOrder);
+ }
+ }
+ if (CollectionUtils.isEmpty(waitAddList)) {
+ return Boolean.TRUE;
+ }
+ List<String> willAddSerialNumber = waitAddList.stream().map(WorkOrder::getSerialNumber).collect(Collectors.toList());
+ List<YwPoint> pointList = new LambdaQueryChainWrapper<>(ywPointService.getBaseMapper())
+ .select(YwPoint::getUnitId, YwPoint::getSerialNumber, YwPoint::getImportantTag, YwPoint::getImportantTag, YwPoint::getProvinceTag, YwPoint::getImportantCommandImageTag)
+ .in(YwPoint::getSerialNumber, willAddSerialNumber)
+ .list();
+ Map<String, YwPoint> pointMapping = pointList.stream().collect(Collectors.toMap(YwPoint::getSerialNumber, point -> point));
+ // 鏌ュ嚭閲嶇偣鐐逛綅銆佹櫘閫氱偣浣嶇殑澶勭悊鏃堕棿
+ SysConfig important = configMapper.checkConfigKeyUnique("important.wordkorder.time");
+ SysConfig normal = configMapper.checkConfigKeyUnique("normal.wordkorder.alarm.time");
+ for (WorkOrder workOrder : waitAddList) {
+ YwPoint point = pointMapping.get(workOrder.getSerialNumber());
+ workOrder.setWorkOrderNo(IdUtils.timeAddRandomNO(5));
+ workOrder.setUnitId(Math.toIntExact(point.getUnitId()));
+ if (point.getImportantTag() || point.getImportantCommandImageTag()) {
+ workOrder.setProcessingPeriod(Integer.valueOf(important.getConfigValue()));
+ } else {
+ workOrder.setProcessingPeriod(Integer.valueOf(normal.getConfigValue()));
+ }
+ }
+ this.saveBatch(waitAddList);
+ // 濡傛灉鏄洿鎺ヤ笅鍙戯紝娣诲姞涓嬪彂璁板綍
+ if (WorkOrderStatusEnum.DISTRIBUTED.equals(waitAddList.get(0).getStatus())) {
+ List<WorkOrderDistributeRecord> distributedRecordList = waitAddList.stream().map(item -> {
+ WorkOrderDistributeRecord workOrderDistributeRecord = new WorkOrderDistributeRecord();
+ workOrderDistributeRecord.setWorkOrderId(item.getId());
+ workOrderDistributeRecord.setDistributeWay(WorkOrderDistributeWayEnum.DIRECT_DISTRIBUTE);
+ workOrderDistributeRecord.setUserId(1L);
+ return workOrderDistributeRecord;
+ }).collect(Collectors.toList());
+ workOrderDistributeRecordMapper.insertBatch(distributedRecordList);
+ }
+ log.info("浼犲叆宸ュ崟鎬绘暟: {}锛屽疄闄呮坊鍔犲伐鍗曟暟锛歿}, 瀹為檯淇敼宸ュ崟鏁帮細{}", total, waitAddList.size(), updateNum);
+ return Boolean.TRUE;
}
/**
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
index 8ae4d44..13786b9 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
@@ -155,8 +155,8 @@
check(YwThreadConstants.Face_FailPercent, failPercent, result.getExternalIndexCode(), thresholdMap, distributeList, workOrderList, CompareType.LESS_THAN_EQ,"");
}
/** 娣诲姞宸ュ崟 */
- workOrderService.innerAdd(workOrderList);
- workOrderService.innerAdd(distributeList);
+ workOrderService.addWaitDistribute(workOrderList);
+ workOrderService.addWaitDistribute(distributeList);
}
/**
@@ -197,8 +197,8 @@
check(YwThreadConstants.Car_NoIntegrityCount, noIntegrityCountResult, result.getExternalIndexCode(), thresholdMap, distributeList, workOrderList, CompareType.MORE_THAN_EQ,"");
}
/** 娣诲姞宸ュ崟 */
- workOrderService.innerAdd(workOrderList);
- workOrderService.innerAdd(distributeList);
+ workOrderService.addWaitDistribute(workOrderList);
+ workOrderService.addWaitDistribute(distributeList);
}
//灏佽闃堝�间负map
diff --git a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
index bce6e07..8cc0d10 100644
--- a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
@@ -15,9 +15,7 @@
import com.ycl.utils.DateUtils;
import constant.RedisConstant;
import enumeration.general.AreaDeptEnum;
-import enumeration.general.ImportantTagEnum;
import enumeration.general.PointStatus;
-import enumeration.general.ProvinceTagEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
@@ -25,7 +23,6 @@
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.*;
@@ -96,14 +93,14 @@
ywPoint.setPointName(result.getSBMC());
ywPoint.setStatus(PointStatus.WAIT.getDesc());
ywPoint.setSerialNumber(result.getSBBM());
- ywPoint.setImportantTag(ImportantTagEnum.Normal);
- ywPoint.setProvinceTag(ProvinceTagEnum.Normal);
+ ywPoint.setImportantTag(Boolean.FALSE);
+ ywPoint.setProvinceTag(Boolean.FALSE);
ywPoint.setCreateTime(new Date());
ywPoint.setUpdateTime(new Date());
}
//姣斿鏄惁鏄噸鐐圭偣浣�
if (importantSite.contains(result.getSBBM())) {
- ywPoint.setImportantTag(ImportantTagEnum.Important);
+ ywPoint.setImportantTag(Boolean.TRUE);
}
//瑙f瀽deptId
//鍖哄煙琛屾斂缂栫爜
diff --git a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
index 878f8d0..c500d7d 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
@@ -18,6 +18,7 @@
<result column="update_time" property="updateTime" />
<result column="province_tag" property="provinceTag" />
<result column="important_tag" property="importantTag" />
+ <result column="important_command_image_tag" property="importantCommandImageTag" />
</resultMap>
<select id="selectData" resultType="com.ycl.platform.base.BaseSelect">
@@ -39,7 +40,8 @@
typ.create_time,
typ.update_time,
typ.important_tag,
- typ.province_tag
+ typ.province_tag,
+ typ.important_command_image_tag
FROM
t_yw_point typ
LEFT JOIN t_yw_unit tyu ON typ.unit_id = tyu.id AND tyu.deleted = 0
@@ -65,10 +67,10 @@
<select id="selectByTag" resultType="com.ycl.platform.domain.entity.YwPoint">
select * from t_yw_point
<where>
- <if test="important!=null and important!= '' ">
+ <if test="important!=null and important == true ">
and important_tag = #{important}
</if>
- <if test="province!=null and province!= '' ">
+ <if test="province!=null and province == true ">
and province_tag = #{province}
</if>
</where>
--
Gitblit v1.8.0