From 3d647966bc41215e72cba86860cce5075896ae93 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期四, 24 十月 2024 17:17:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java | 22 +++++++++++ ycl-server/src/main/java/com/ycl/platform/controller/YwThresholdController.java | 22 +++++++++++ ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderWhiteMapper.java | 8 ++++ ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml | 11 +++++ ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 23 +++++++++++ ycl-server/src/main/java/com/ycl/platform/service/IYwThresholdService.java | 11 +++++ ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderWhite.java | 7 +++ ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java | 9 ++++ 8 files changed, 112 insertions(+), 1 deletions(-) diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderWhite.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderWhite.java index b9554bd..6b7243a 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderWhite.java +++ b/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; + } } diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/YwThresholdController.java b/ycl-server/src/main/java/com/ycl/platform/controller/YwThresholdController.java index 33197f8..a4de4ff 100644 --- a/ycl-server/src/main/java/com/ycl/platform/controller/YwThresholdController.java +++ b/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; /** * 杩愮淮闃堝�糃ontroller @@ -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); + } } diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderWhiteMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderWhiteMapper.java index d5ebd8b..b3b1859 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderWhiteMapper.java +++ b/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); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/IYwThresholdService.java b/ycl-server/src/main/java/com/ycl/platform/service/IYwThresholdService.java index d8cbad3..f4605f7 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/IYwThresholdService.java +++ b/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); } 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 a1ad176..9c589ad 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 @@ -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); } 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 8585b6e..9bbd8f9 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 @@ -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)); + } } 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 3dae6eb..bbffadb 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 @@ -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("瀵煎叆鎴愬姛"); + + } + /** * 鍒ゆ柇浜鸿劯闃堝�兼槸鍚︽弧瓒充笅鍙戞潯浠� * diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml index 4efe626..7573a34 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml +++ b/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> -- Gitblit v1.8.0