fuliqi
2024-11-14 cfcfbf068acf9b9d509a99498346dcbcf101cdf9
白名单基础增删改查
7个文件已修改
183 ■■■■■ 已修改文件
ycl-common/src/main/java/enumeration/ErrorType.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderWhite.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderWhiteMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/enumeration/ErrorType.java
@@ -69,4 +69,16 @@
                .filter(errorType -> errorType.getCategory() == category)
                .collect(Collectors.toList());
    }
    // 根据value获取desc
    public static String getDescriptionByValue(String value) {
        for (ErrorType errorType : ErrorType.values()) {
            if (errorType.getValue().equals(value)) {
                return errorType.getDesc();
            }
        }
        // 如果没有找到匹配的value,返回null或者抛出一个异常
        // 这里返回null
        return null;
    }
}
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderWhite.java
@@ -7,9 +7,11 @@
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
 * 工单生成白名单对象 t_work_order_white
 *
 *
 * @author ruoyi
 * @date 2024-10-22
 */
@@ -30,9 +32,12 @@
    private String serialNumber;
    /** 点位名称 */
    @TableField("point_name")
    @TableField("error_type")
    private String errorType;
    @TableField(exist = false)
    private List<String> errorTypeList;
    @TableField(exist = false)
    private String pointName;
    /** 创建人 */
    @TableField("create_by")
    private String createBy;
@@ -41,9 +46,5 @@
    @TableField("remark")
    private String remark;
    public WorkOrderWhite(String serialNumber, String pointName, String createBy) {
        this.serialNumber = serialNumber;
        this.pointName = pointName;
        this.createBy = createBy;
    }
}
ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
@@ -210,6 +210,15 @@
    }
    /**
     * 工单白名单详情
     */
    @GetMapping("/white/{id}")
    @ApiOperation(value = "工单白名单详情", notes = "工单白名单详情")
    public Result whiteDetail(@PathVariable Integer id)
    {
        return workOrderService.selectWorkOrderWhiteDetail(id);
    }
    /**
     * 添加工单白名单
     *
     * @param workOrderWhite 白色工单
@@ -223,6 +232,18 @@
    }
    /**
     * 修改工单白名单
     *
     * @param workOrderWhite 白色工单
     * @return {@link Result }
     * @author
     */
    @PostMapping("/white/update")
    @ApiOperation(value = "修改工单白名单", notes = "修改工单白名单")
    public Result updateWorkOrderWhite(@RequestBody WorkOrderWhite workOrderWhite) {
        return workOrderService.updateWorkOrderWhite(workOrderWhite);
    }
    /**
     * 批量删除工单白名单
     *
     * @param ids ids
ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderWhiteMapper.java
@@ -1,6 +1,7 @@
package com.ycl.platform.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.platform.domain.entity.WorkOrderWhite;
import com.ycl.platform.domain.query.WorkOrderWhiteQuery;
@@ -10,11 +11,11 @@
/**
 * 工单生成白名单Mapper接口
 *
 *
 * @author ruoyi
 * @date 2024-10-22
 */
public interface WorkOrderWhiteMapper
public interface WorkOrderWhiteMapper extends BaseMapper<WorkOrderWhite>
{
    /**
@@ -29,7 +30,7 @@
    /**
     * 新增工单生成白名单
     *
     *
     * @param workOrderWhite 工单生成白名单
     * @return 结果
     */
@@ -37,7 +38,7 @@
    /**
     * 批量删除工单生成白名单
     *
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
@@ -68,4 +69,6 @@
     * @author
     */
    void updateBySerialNumber(WorkOrderWhite white);
    WorkOrderWhite getById(Integer id);
}
ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
@@ -282,4 +282,8 @@
    Result errorAll();
    Result selectWorkOrderWhiteDetail(Integer id);
    Result updateWorkOrderWhite(WorkOrderWhite workOrderWhite);
}
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -1,9 +1,8 @@
package com.ycl.platform.service.impl;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -11,7 +10,6 @@
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.config.PlatformConfig;
import com.ycl.config.ServerConfig;
import com.ycl.exception.ServiceException;
import com.ycl.platform.domain.entity.*;
import com.ycl.platform.domain.excel.PointExport;
@@ -26,13 +24,11 @@
import com.ycl.platform.service.WorkOrderAuditingRecordService;
import com.ycl.platform.service.WorkOrderService;
import com.ycl.platform.service.YwPointService;
import com.ycl.platform.wvp.StreamContent;
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.model.LoginUser;
import com.ycl.system.page.PageUtil;
import com.ycl.utils.DateUtils;
@@ -40,8 +36,6 @@
import com.ycl.utils.http.HttpUtils;
import com.ycl.utils.redis.RedisCache;
import com.ycl.utils.uuid.IdUtils;
import constant.ApiConstants;
import constant.CheckConstants;
import constant.Constants;
import constant.RedisConstant;
import enumeration.ErrorType;
@@ -49,14 +43,16 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.bytedeco.javacv.*;
import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.Frame;
import org.bytedeco.javacv.FrameGrabber;
import org.bytedeco.javacv.OpenCVFrameConverter;
import org.bytedeco.opencv.global.opencv_imgcodecs;
import org.bytedeco.opencv.opencv_core.Mat;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -65,17 +61,6 @@
import org.springframework.util.StringUtils;
import pojo.CascadeOption;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
@@ -1080,7 +1065,17 @@
    public Result selectWorkOrderWhiteList(WorkOrderWhiteQuery query) {
        IPage<WorkOrderWhite> page = PageUtil.getPage(query, WorkOrderWhite.class);
        workOrderWhiteMapper.page(page, query);
        return Result.ok().data(page.getRecords()).total(page.getTotal());
        List<WorkOrderWhite> records = page.getRecords();
        records.forEach(white-> {
            List<String> errorTextList = new ArrayList<>();
            List<String> errorTypeList = JSONArray.parseArray(white.getErrorType(), String.class);
            errorTypeList.forEach(error->{
                String errorText = ErrorType.getDescriptionByValue(error);
                errorTextList.add(errorText);
            });
            white.setErrorType(String.join(",", errorTextList));
        });
        return Result.ok().data(records).total(page.getTotal());
    }
    /**
@@ -1092,24 +1087,34 @@
     */
    @Override
    public Result addWorkOrderWhite(WorkOrderWhite workOrderWhite) {
        // 通过设备编码查询设备信息
        YwPoint ywPoint = ywPointService.selectBySerialNumber(workOrderWhite.getSerialNumber());
        // 新增白名单设备记录
        if (ywPoint == null){
            return Result.error("设备不存在");
        }
        // 检查是否已经存在该白名单
        WorkOrderWhite flag = workOrderWhiteMapper.selectBySerialNumber(workOrderWhite.getSerialNumber());
        if (flag != null) {
            return Result.error("该设备已存在白名单");
        } else {
            workOrderWhite.setPointName(ywPoint.getPointName());
            List<String> errorTypeList = workOrderWhite.getErrorTypeList();
            workOrderWhite.setErrorType(JSONArray.toJSONString(errorTypeList));
            workOrderWhite.setCreateBy(SecurityUtils.getUsername());
            workOrderWhiteMapper.insert(workOrderWhite);
            return Result.ok();
        }
    }
    /**
     * 修改工单白名单
     *
     * @param workOrderWhite 白色工单
     * @return {@link Result }
     * @author
     */
    @Override
    public Result updateWorkOrderWhite(WorkOrderWhite workOrderWhite) {
        WorkOrderWhite white = workOrderWhiteMapper.selectBySerialNumber(workOrderWhite.getSerialNumber());
        workOrderWhite.setId(white.getId());
        List<String> errorTypeList = workOrderWhite.getErrorTypeList();
        workOrderWhite.setErrorType(JSONArray.toJSONString(errorTypeList));
        workOrderWhiteMapper.updateById(workOrderWhite);
        return Result.ok();
    }
    /**
     * 批量删除工单白名单
     *
@@ -1130,18 +1135,18 @@
     */
    @Override
    public void batchImportWhite(List<PointExport> dataList) {
        // 获得所有需要新增的白名单对象
        List<WorkOrderWhite> whitelist = dataList.stream().map(pointExport ->
                        new WorkOrderWhite(pointExport.getSerialNumber(), pointExport.getPointName(), SecurityUtils.getUsername()))
                .collect(Collectors.toList());
        // 获得所有已存在的白名单设备编码
        List<String> serialNumbers = workOrderWhiteMapper.selectList().stream().map(WorkOrderWhite::getSerialNumber).collect(Collectors.toList());
        // 筛选出新增、修改的白名单对象
        List<WorkOrderWhite> updateWhiteList = whitelist.stream().filter(white -> serialNumbers.contains(white.getSerialNumber())).collect(Collectors.toList());
        List<WorkOrderWhite> insertWhiteList = whitelist.stream().filter(white ->!serialNumbers.contains(white.getSerialNumber())).collect(Collectors.toList());
        // 新增/修改白名单设备记录
        updateWhiteList.stream().forEach(white -> workOrderWhiteMapper.updateBySerialNumber(white));
        insertWhiteList.stream().forEach(white -> workOrderWhiteMapper.insert(white));
//        // 获得所有需要新增的白名单对象
//        List<WorkOrderWhite> whitelist = dataList.stream().map(pointExport ->
//                        new WorkOrderWhite(pointExport.getSerialNumber(), pointExport.getPointName(), SecurityUtils.getUsername()))
//                .collect(Collectors.toList());
//        // 获得所有已存在的白名单设备编码
//        List<String> serialNumbers = workOrderWhiteMapper.selectList().stream().map(WorkOrderWhite::getSerialNumber).collect(Collectors.toList());
//        // 筛选出新增、修改的白名单对象
//        List<WorkOrderWhite> updateWhiteList = whitelist.stream().filter(white -> serialNumbers.contains(white.getSerialNumber())).collect(Collectors.toList());
//        List<WorkOrderWhite> insertWhiteList = whitelist.stream().filter(white ->!serialNumbers.contains(white.getSerialNumber())).collect(Collectors.toList());
//        // 新增/修改白名单设备记录
//        updateWhiteList.stream().forEach(white -> workOrderWhiteMapper.updateBySerialNumber(white));
//        insertWhiteList.stream().forEach(white -> workOrderWhiteMapper.insert(white));
    }
    /**
@@ -1242,4 +1247,14 @@
        results.add(face);
        return Result.ok().data(results);
    }
    @Override
    public Result selectWorkOrderWhiteDetail(Integer id) {
        WorkOrderWhite workOrderWhite = workOrderWhiteMapper.getById(id);
        List<String> errorList = JSONArray.parseArray(workOrderWhite.getErrorType(), String.class);
        workOrderWhite.setErrorTypeList(errorList);
        return Result.ok().data(workOrderWhite);
    }
}
ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml
@@ -7,13 +7,14 @@
    <resultMap type="WorkOrderWhite" id="WorkOrderWhiteResult">
        <result property="id"    column="id"    />
        <result property="serialNumber"    column="serial_number"    />
        <result property="pointName"    column="point_name"    />
        <result property="pointName"    column="pointName"    />
        <result property="errorType"    column="error_type"    />
        <result property="createBy"    column="create_by"    />
        <result property="remark"    column="remark"    />
    </resultMap>
    <sql id="selectWorkOrderWhiteVo">
        select id, serial_number, point_name, create_by, remark from t_work_order_white
        select id, serial_number, error_type, create_by, remark from t_work_order_white
    </sql>
    <update id="updateBySerialNumber">
        update t_work_order_white
@@ -26,11 +27,21 @@
    </update>
    <select id="page" parameterType="com.ycl.platform.domain.query.WorkOrderWhiteQuery" resultMap="WorkOrderWhiteResult">
        <include refid="selectWorkOrderWhiteVo"/>
        select wow.id, wow.serial_number,m.name as pointName, wow.error_type, wow.create_by, wow.remark
        from t_work_order_white wow
        left join t_monitor m on wow.serial_number = m.serial_number
        <where>
            <if test="query.keyword != null  and query.keyword != ''">
            and (serial_number like concat('%',#{query.keyword},'%') or point_name like concat('%', #{query.keyword}, '%'))
            </if>
        </where>
    </select>
    <select id="getById"  resultMap="WorkOrderWhiteResult">
        select wow.id, wow.serial_number,m.name as pointName, wow.error_type, wow.create_by, wow.remark
        from t_work_order_white wow
        left join t_monitor m on wow.serial_number = m.serial_number
        <where>
            wow.id = #{id}
        </where>
    </select>
    <select id="selectBySerialNumber" resultType="com.ycl.platform.domain.entity.WorkOrderWhite">
@@ -45,13 +56,13 @@
        insert into t_work_order_white
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="serialNumber != null and serialNumber != ''">serial_number,</if>
            <if test="pointName != null and pointName != ''">point_name,</if>
            <if test="errorType != null and errorType != ''">error_type,</if>
            <if test="createBy != null">create_by,</if>
            <if test="remark != null">remark,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="serialNumber != null and serialNumber != ''">#{serialNumber},</if>
            <if test="pointName != null and pointName != ''">#{pointName},</if>
            <if test="errorType != null and errorType != ''">#{errorType},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="remark != null">#{remark},</if>
         </trim>