ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderWhite.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; @@ -39,4 +40,10 @@ /** 备注 */ @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/YwThresholdController.java
@@ -4,17 +4,26 @@ import com.ycl.platform.domain.entity.YwThreshold; import com.ycl.platform.service.IYwThresholdService; import com.ycl.system.AjaxResult; import com.ycl.system.Result; import com.ycl.system.controller.BaseController; import com.ycl.system.page.TableDataInfo; import com.ycl.utils.poi.ExcelUtil; import enumeration.BusinessType; import io.swagger.annotations.ApiOperation; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Map; import java.util.concurrent.ExecutionException; /** * 运维阈值Controller @@ -82,4 +91,17 @@ { return toAjax(ywThresholdService.deleteYwThresholdByIds(ids)); } /** * 导入数据 * * @param file 文件 * @return {@link Result } * @author */ @PostMapping("/import") @ApiOperation(value = "导入数据", notes = "导入数据") public Result importData(MultipartFile file) throws IOException, ParseException, ExecutionException, InterruptedException { return ywThresholdService.importData(file); } } ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderWhiteMapper.java
@@ -60,4 +60,12 @@ * @author */ List<WorkOrderWhite> selectList(); /** * 按序列号更新 * * @param white 白色 * @author */ void updateBySerialNumber(WorkOrderWhite white); } ycl-server/src/main/java/com/ycl/platform/service/IYwThresholdService.java
@@ -4,6 +4,8 @@ import com.ycl.platform.domain.entity.YwThreshold; import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult; import com.ycl.platform.domain.result.HK.VehicleDeviceInspectionResult; import com.ycl.system.Result; import org.springframework.web.multipart.MultipartFile; import java.util.List; import java.util.Map; @@ -83,4 +85,13 @@ * 阈值无法判断的,校验故障类型生成工单。优云 */ public void errorTypeCheckUY(List list); /** * 导入数据 * * @param file 文件 * @return {@link Result } * @author */ Result importData(MultipartFile file); } ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
@@ -4,6 +4,7 @@ import com.ycl.platform.domain.entity.WorkOrder; import com.ycl.platform.domain.entity.WorkOrderAuditingRecord; import com.ycl.platform.domain.entity.WorkOrderWhite; import com.ycl.platform.domain.excel.PointExport; import com.ycl.platform.domain.form.*; import com.ycl.platform.domain.query.*; import com.ycl.platform.domain.vo.*; @@ -261,4 +262,12 @@ * @author */ Result batchDeleteWorkOrderWhite(List<String> ids); /** * 批量导入工单白名单 * * @param dataList 数据列表 * @author */ void batchImportWhite(List<PointExport> dataList); } ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -14,6 +14,7 @@ import com.ycl.config.ServerConfig; import com.ycl.exception.ServiceException; import com.ycl.platform.domain.entity.*; import com.ycl.platform.domain.excel.PointExport; import com.ycl.platform.domain.form.*; import com.ycl.platform.domain.query.*; import com.ycl.platform.domain.vo.*; @@ -1053,4 +1054,26 @@ workOrderWhiteMapper.batchDelete(ids); return Result.ok(); } /** * 批量导入白名单 * * @param dataList 数据列表 * @author */ @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)); } } ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
@@ -4,12 +4,18 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.entity.WorkOrder; import com.ycl.platform.domain.entity.YwThreshold; import com.ycl.platform.domain.excel.PointExport; import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult; import com.ycl.platform.domain.result.HK.VehicleDeviceInspectionResult; import com.ycl.platform.domain.vo.DynamicColumnVO; import com.ycl.platform.mapper.YwThresholdMapper; import com.ycl.platform.service.IYwThresholdService; import com.ycl.platform.service.WorkOrderService; import com.ycl.system.Result; import com.ycl.utils.ip.PingUtil; import com.ycl.utils.poi.EasyExcelImportUtils; import com.ycl.utils.uuid.IdUtils; import constant.PointHeaderConstant; import constant.YwThreadConstants; import enumeration.CompareType; import enumeration.ErrorType; @@ -19,6 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; import utils.DateUtils; import java.util.*; @@ -146,6 +153,21 @@ // 亮度异常故障检测 } @Override public Result importData(MultipartFile file) { List<Map<String, String>> list = EasyExcelImportUtils.makeData(file); List<PointExport> dataList = new ArrayList<>(); for (Map<String, String> map : list) { PointExport pointExport = new PointExport(); pointExport.setPointName(map.get(PointHeaderConstant.Point_Name)); pointExport.setSerialNumber(map.get(PointHeaderConstant.Serial_Number)); dataList.add(pointExport); } workOrderService.batchImportWhite(dataList); return Result.ok("导入成功"); } /** * 判断人脸阈值是否满足下发条件 * ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml
@@ -15,7 +15,16 @@ <sql id="selectWorkOrderWhiteVo"> select id, serial_number, point_name, create_by, remark from t_work_order_white </sql> <update id="updateBySerialNumber"> update t_work_order_white <set> <if test="pointName != null and pointName != ''">point_name = #{pointName},</if> <if test="createBy != null">create_by = #{createBy},</if> <if test="remark != null">remark = #{remark},</if> </set> where serial_number = #{serialNumber} </update> <select id="page" parameterType="Long" resultMap="WorkOrderWhiteResult"> <include refid="selectWorkOrderWhiteVo"/> <where>