龚焕茏
2024-08-22 58c5c6e49c8b4d67cd9d1637beea4706f9b5ae83
feat:新增工单故障类型记录、支持多个
3个文件已修改
4个文件已添加
273 ■■■■■ 已修改文件
ycl-common/src/main/java/enumeration/general/ErrorTypeEnum.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderErrorType.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderForm.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/enumeration/general/ErrorTypeEnum.java
New file
@@ -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("一机一档不合格"),
    VIDEOORPICUNNORMAL("视频拉流、图片获取异常"),
    PICUNUSEFUL("大图不可用");
    private final String value;
    ErrorTypeEnum(String value) {
        this.value = value;
    }
}
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderErrorType.java
New file
@@ -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;
}
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("运维人员")
ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java
New file
@@ -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);
}
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;
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);
    }
ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml
New file
@@ -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>