From 58c5c6e49c8b4d67cd9d1637beea4706f9b5ae83 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期四, 22 八月 2024 16:52:18 +0800 Subject: [PATCH] feat:新增工单故障类型记录、支持多个 --- ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml | 85 +++++++++++++++++ ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderForm.java | 21 ++- ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 8 + ycl-common/src/main/java/enumeration/general/ErrorTypeEnum.java | 39 +++++++ ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java | 72 ++++++++++++++ ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderErrorType.java | 31 ++++++ ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java | 17 +-- 7 files changed, 251 insertions(+), 22 deletions(-) diff --git a/ycl-common/src/main/java/enumeration/general/ErrorTypeEnum.java b/ycl-common/src/main/java/enumeration/general/ErrorTypeEnum.java new file mode 100644 index 0000000..81d3c21 --- /dev/null +++ b/ycl-common/src/main/java/enumeration/general/ErrorTypeEnum.java @@ -0,0 +1,39 @@ +package enumeration.general; + +import lombok.Getter; + +/** + * @author gonghl + * @since 2024/8/22 涓嬪崍 2:44 + */ +@Getter +public enum ErrorTypeEnum { + + VIDEOMISS("褰曞儚缂哄け"), + NOVIDEO("鏃犲綍鍍�"), + PLATFORMOFFLINE("骞冲彴绂荤嚎"), + SEVERINTERRUPT("鏈嶅姟涓柇"), + POINTINFOERRO("鐐逛綅淇℃伅閿欒"), + POINTINFOMISS("鐐逛綅淇℃伅涓嶅叏"), + SIGNALMISS("淇″彿缂哄け"), + SCREENCOLOR("鐢婚潰鍋忚壊"), + SCREENSNOW("闆姳骞叉壈"), + SCREENSTRIP("鏉$汗骞叉壈,"), + SCREENSHADE("鐢婚潰閬尅"), + SCREENBLUR("娓呮櫚搴﹀紓甯�"), + SCREENLIGHT("浜害寮傚父"), + DEVICEOFFLINE("璁惧绂荤嚎"), + UNKNOWN("鏈煡"), + CLOCKSKEW("鏃堕挓鍋忓樊"), + OSD("OSD寮傚父"), + MONITORUNQUALIFY("涓�鏈轰竴妗d笉鍚堟牸"), + VIDEOORPICUNNORMAL("瑙嗛鎷夋祦銆佸浘鐗囪幏鍙栧紓甯�"), + PICUNUSEFUL("澶у浘涓嶅彲鐢�"); + + private final String value; + + ErrorTypeEnum(String value) { + this.value = value; + } + +} diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderErrorType.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderErrorType.java new file mode 100644 index 0000000..8fd7185 --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderErrorType.java @@ -0,0 +1,31 @@ +package com.ycl.platform.domain.entity; + + +import com.ycl.platform.base.AbsEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * @author gonghl + * @since 2024-08-22 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class WorkOrderErrorType extends AbsEntity { + + /** + * 宸ュ崟鍙� + */ + private String workOrderNo; + + /** + * 鏁呴殰鍚� + */ + private String errorName; + +} + diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderForm.java index 156a6c0..077fa1f 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderForm.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderForm.java @@ -1,19 +1,22 @@ package com.ycl.platform.domain.form; -import com.ycl.system.domain.group.Update; -import com.ycl.system.domain.group.Add; import com.ycl.platform.base.AbsForm; import com.ycl.platform.domain.entity.WorkOrder; -import org.springframework.beans.BeanUtils; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import org.springframework.lang.NonNull; +import com.ycl.system.domain.group.Add; +import com.ycl.system.domain.group.Update; +import enumeration.general.ErrorTypeEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.experimental.Accessors; +import org.springframework.beans.BeanUtils; +import org.springframework.lang.NonNull; import java.time.LocalDateTime; +import java.util.List; /** * 宸ュ崟琛ㄥ崟 @@ -40,11 +43,11 @@ @NotNull(message = "鐐逛綅涓嶈兘涓虹┖", groups = {Add.class, Update.class}) @ApiModelProperty("璁惧缂栧彿") - private Integer serialNumber; + private String serialNumber; - @NotNull(message = "鏁呴殰绫诲瀷涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @NotEmpty(message = "鏁呴殰绫诲瀷涓嶈兘涓虹┖", groups = {Add.class, Update.class}) @ApiModelProperty("鏁呴殰绫诲瀷") - private String errorType; + private List<ErrorTypeEnum> errorType; // @NotNull(message = "杩愮淮浜哄憳涓嶈兘涓虹┖", groups = {Add.class, Update.class}) @ApiModelProperty("杩愮淮浜哄憳") diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java new file mode 100644 index 0000000..650e14a --- /dev/null +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java @@ -0,0 +1,72 @@ +package com.ycl.platform.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ycl.platform.domain.entity.WorkOrderErrorType; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @author gonghl + * @since 2024-08-22 + */ +@Repository +public interface WorkOrderErrorTypeMapper extends BaseMapper<WorkOrderErrorType> { + + /** + * 鏌ヨ宸ュ崟鏁呴殰 + * + * @param id 宸ュ崟鏁呴殰涓婚敭 + * @return 宸ュ崟鏁呴殰 + */ + WorkOrderErrorType selectWorkOrderErrorTypeById(Long id); + + /** + * 鏌ヨ宸ュ崟鏁呴殰鍒楄〃 + * + * @param workOrderErrorType 宸ュ崟鏁呴殰 + * @return 宸ュ崟鏁呴殰闆嗗悎 + */ + List<WorkOrderErrorType> selectWorkOrderErrorTypeList(WorkOrderErrorType workOrderErrorType); + + /** + * 鏂板宸ュ崟鏁呴殰 + * + * @param workOrderErrorType 宸ュ崟鏁呴殰 + * @return 缁撴灉 + */ + int insertWorkOrderErrorType(WorkOrderErrorType workOrderErrorType); + + /** + * 淇敼宸ュ崟鏁呴殰 + * + * @param workOrderErrorType 宸ュ崟鏁呴殰 + * @return 缁撴灉 + */ + int updateWorkOrderErrorType(WorkOrderErrorType workOrderErrorType); + + /** + * 鍒犻櫎宸ュ崟鏁呴殰 + * + * @param id 宸ュ崟鏁呴殰涓婚敭 + * @return 缁撴灉 + */ + int deleteWorkOrderErrorTypeById(Long id); + + /** + * 鎵归噺鍒犻櫎宸ュ崟鏁呴殰 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + int deleteWorkOrderErrorTypeByIds(Long[] ids); + + /** + * 鎵归噺鏂板宸ュ崟鏁呴殰 + * + * @param workOrderErrorTypeList 宸ュ崟鏁呴殰闆嗗悎 + * @return 缁撴灉 + */ + int insertWorkOrderErrorTypeList(List<WorkOrderErrorType> workOrderErrorTypeList); + +} 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 13a982c..6e8b5db 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 @@ -59,6 +59,7 @@ import java.time.LocalDateTime; import java.time.ZoneId; import java.util.*; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** @@ -79,7 +80,7 @@ private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper; private final NotifyService notifyService; private final WorkOrderDistributeRecordMapper workOrderDistributeRecordMapper; - private final TMonitorMapper monitorMapper; + private final WorkOrderErrorTypeMapper workOrderErrorTypeMapper; private final SysConfigMapper configMapper; private final ServerConfig serverConfig; private final ReportMapper reportMapper; @@ -214,6 +215,9 @@ Date now = new Date(); entity.setCreateTime(now); entity.setUpdateTime(now); + entity.setErrorType(form.getErrorType().stream().map(ErrorTypeEnum::getValue).collect(Collectors.joining(","))); + List<WorkOrderErrorType> workOrderErrorTypes = form.getErrorType().stream().map(errorType -> new WorkOrderErrorType(entity.getWorkOrderNo(), errorType.getValue())).toList(); + workOrderErrorTypeMapper.insertWorkOrderErrorTypeList(workOrderErrorTypes); if(baseMapper.insert(entity) > 0) { return Result.ok("娣诲姞鎴愬姛"); } @@ -500,7 +504,7 @@ */ public synchronized Boolean getDistributeLock() { if (Objects.isNull(redisCache.getCacheObject(DISTRIBUTE_LOCK_KEY))) { - redisCache.setCacheObject(DISTRIBUTE_LOCK_KEY, "1"); + redisCache.setCacheObject(DISTRIBUTE_LOCK_KEY, "1", 30, TimeUnit.SECONDS); return true; } else { return false; 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 0d8ccb3..d5c04a7 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 @@ -6,16 +6,13 @@ import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.dataListener.CurrencyDataListener; -import com.ycl.platform.base.BaseSelect; import com.ycl.platform.domain.entity.YwPeople; import com.ycl.platform.domain.entity.YwPoint; -import com.ycl.platform.domain.entity.YwUnit; +import com.ycl.platform.domain.excel.PointExport; import com.ycl.platform.domain.form.BatchEditPointForm; import com.ycl.platform.domain.form.YwPointForm; import com.ycl.platform.domain.query.YwPointQuery; import com.ycl.platform.domain.vo.YwPointVO; -import com.ycl.platform.domain.excel.PointExport; -import com.ycl.platform.domain.excel.PointSelectHandler; import com.ycl.platform.mapper.YwPeopleMapper; import com.ycl.platform.mapper.YwPointMapper; import com.ycl.platform.service.YwPointService; @@ -29,12 +26,10 @@ import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; -import org.springframework.scheduling.annotation.Async; 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 org.springframework.web.multipart.MultipartFile; import java.io.IOException; @@ -219,11 +214,11 @@ .eq(YwPoint::getUnitId, unitId) .like(YwPoint::getPointName, keyword) .list(); - List<BaseSelect> data = list.stream().map(item -> { - BaseSelect baseSelect = new BaseSelect(); - baseSelect.setId(item.getId()); - baseSelect.setValue(item.getPointName()); - return baseSelect; + List data = list.stream().map(item -> { + Map map = new HashMap<String, Object>(); + map.put("id", item.getSerialNumber()); + map.put("value", item.getPointName()); + return map; }).collect(Collectors.toList()); return Result.ok().data(data); } diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml new file mode 100644 index 0000000..5c80034 --- /dev/null +++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ycl.platform.mapper.WorkOrderErrorTypeMapper"> + + <resultMap type="WorkOrderErrorType" id="WorkOrderErrorTypeResult"> + <result property="id" column="id"/> + <result property="workOrderNo" column="work_order_no"/> + <result property="errorName" column="error_name"/> + <result property="createTime" column="create_time"/> + <result property="updateTime" column="update_time"/> + <result property="deleted" column="deleted"/> + </resultMap> + + <sql id="selectWorkOrderErrorTypeVo"> + SELECT id, work_order_no, error_name, create_time, update_time, deleted + FROM t_work_order_error_type + </sql> + + <select id="selectWorkOrderErrorTypeList" parameterType="WorkOrderErrorType" resultMap="WorkOrderErrorTypeResult"> + <include refid="selectWorkOrderErrorTypeVo"/> + <where> + <if test="workOrderNo != null and workOrderNo != ''">and work_order_no = #{workOrderNo}</if> + <if test="errorName != null and errorName != ''">and error_name like concat('%', #{errorName}, '%')</if> + <if test="deleted != null ">and deleted = #{deleted}</if> + </where> + </select> + + <select id="selectWorkOrderErrorTypeById" parameterType="Long" resultMap="WorkOrderErrorTypeResult"> + <include refid="selectWorkOrderErrorTypeVo"/> + where id = #{id} + </select> + + <insert id="insertWorkOrderErrorType" parameterType="WorkOrderErrorType" useGeneratedKeys="true" keyProperty="id"> + insert into t_work_order_error_type + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="workOrderNo != null and workOrderNo != ''">work_order_no,</if> + <if test="errorName != null and errorName != ''">error_name,</if> + <if test="createTime != null">create_time,</if> + <if test="updateTime != null">update_time,</if> + <if test="deleted != null">deleted,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="workOrderNo != null and workOrderNo != ''">#{workOrderNo},</if> + <if test="errorName != null and errorName != ''">#{errorName},</if> + <if test="createTime != null">#{createTime},</if> + <if test="updateTime != null">#{updateTime},</if> + <if test="deleted != null">#{deleted},</if> + </trim> + </insert> + + <update id="updateWorkOrderErrorType" parameterType="WorkOrderErrorType"> + update t_work_order_error_type + <trim prefix="SET" suffixOverrides=","> + <if test="workOrderNo != null and workOrderNo != ''">work_order_no = #{workOrderNo},</if> + <if test="errorName != null and errorName != ''">error_name = #{errorName},</if> + <if test="createTime != null">create_time = #{createTime},</if> + <if test="updateTime != null">update_time = #{updateTime},</if> + <if test="deleted != null">deleted = #{deleted},</if> + </trim> + where id = #{id} + </update> + + <delete id="deleteWorkOrderErrorTypeById" parameterType="Long"> + DELETE + FROM t_work_order_error_type + WHERE id = #{id} + </delete> + + <delete id="deleteWorkOrderErrorTypeByIds" parameterType="String"> + delete from t_work_order_error_type where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> + + <insert id="insertWorkOrderErrorTypeList"> + INSERT INTO t_work_order_error_type(work_order_no, error_name, create_time, update_time) VALUES + <foreach item="item" index="index" collection="list" separator=","> + (#{item.workOrderNo}, #{item.errorName}, NOW(), NOW()) + </foreach> + </insert> + +</mapper> \ No newline at end of file -- Gitblit v1.8.0