From 59cc46f47b733f4396307c237968faa06745d74d Mon Sep 17 00:00:00 2001 From: liuchen864 <23082234@qq.com> Date: Fri, 27 Oct 2023 11:48:02 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B4=A2=E8=B5=94=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchaseclaimRequestDetailController.java | 8 +-- .../PurchaseclaimRequestMainController.java | 58 ++++++++++--------- .../PurchaseclaimRequestDetailImportVO.java | 6 ++ .../PurchaseclaimRequestDetailConvert.java | 7 +++ .../PurchaseclaimRequestDetailService.java | 4 +- ...PurchaseclaimRequestDetailServiceImpl.java | 8 +-- .../PurchaseclaimRequestMainService.java | 12 ++-- .../PurchaseclaimRequestMainServiceImpl.java | 41 +++++++++---- 8 files changed, 89 insertions(+), 55 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestDetailController.java index 5f9a8cea..c4898f56 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestDetailController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestDetailController.java @@ -46,8 +46,8 @@ public class PurchaseclaimRequestDetailController { @Operation(summary = "更新采购索赔申请子") @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-detail:update')") public CommonResult updatePurchaseclaimRequestDetail(@Valid @RequestBody PurchaseclaimRequestDetailUpdateReqVO updateReqVO) { - purchaseclaimRequestDetailService.updatePurchaseclaimRequestDetail(updateReqVO); - return success(true); + Integer result = purchaseclaimRequestDetailService.updatePurchaseclaimRequestDetail(updateReqVO); + return success(result > 0); } @DeleteMapping("/delete") @@ -55,8 +55,8 @@ public class PurchaseclaimRequestDetailController { @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-detail:delete')") public CommonResult deletePurchaseclaimRequestDetail(@RequestParam("id") Long id) { - purchaseclaimRequestDetailService.deletePurchaseclaimRequestDetail(id); - return success(true); + Integer result = purchaseclaimRequestDetailService.deletePurchaseclaimRequestDetail(id); + return success(result > 0); } @GetMapping("/get") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java index 2883cca3..fd671ee4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java @@ -18,15 +18,19 @@ import com.win.module.wms.service.purchaseclaimRequest.PurchaseclaimRequestDetai import com.win.module.wms.service.purchaseclaimRequest.PurchaseclaimRequestMainService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.time.LocalDateTime; +import java.time.ZoneOffset; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -61,8 +65,8 @@ public class PurchaseclaimRequestMainController { @Operation(summary = "更新采购索赔申请主") @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:update')") public CommonResult updatePurchaseclaimRequestMain(@Valid @RequestBody PurchaseclaimRequestMainUpdateReqVO updateReqVO) { - purchaseclaimRequestMainService.updatePurchaseclaimRequestMain(updateReqVO); - return success(true); + Integer result = purchaseclaimRequestMainService.updatePurchaseclaimRequestMain(updateReqVO); + return success(result > 0); } @DeleteMapping("/delete") @@ -70,8 +74,8 @@ public class PurchaseclaimRequestMainController { @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:delete')") public CommonResult deletePurchaseclaimRequestMain(@RequestParam("id") Long id) { - purchaseclaimRequestMainService.deletePurchaseclaimRequestMain(id); - return success(true); + Integer result = purchaseclaimRequestMainService.deletePurchaseclaimRequestMain(id); + return success(result > 0); } @GetMapping("/get") @@ -133,30 +137,30 @@ public class PurchaseclaimRequestMainController { String[] status = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.ITEM_STATUS); mapDropDown.put(4, status); // 输出 - ExcelUtils.write(response, "采购索赔信息导入模板.xls", "采购索赔信息列表", PurchaseclaimRequestDetailImportVO.class, list,mapDropDown); + ExcelUtils.write(response, "采购索赔信息导入模板.xlsx", "采购索赔信息列表", PurchaseclaimRequestDetailImportVO.class, list,mapDropDown); } -// @PostMapping("/import") -// @Operation(summary = "导入采购索赔基本信息") -// @Parameters({ -// @Parameter(name = "file", description = "Excel 文件", required = true), -// @Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"), -// @Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true") -// }) -// @PreAuthorize("@ss.hasPermission('wms:itembasic:import')") -// public CommonResult> importExcel(HttpServletResponse response, -// @RequestParam("file") MultipartFile file, -// @RequestParam(value = "mode") Integer mode, -// @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { -// List list = ExcelUtils.read(file, ItembasicImportExcelVo.class); -// List errorList = itembasicService.importItembasicList(list, mode, updatePart); -// Map returnMap = new HashMap<>(); -// returnMap.put("errorCount", errorList.size()); -// if(!errorList.isEmpty()) { -// String url = ExcelUtils.writeLocalFile("采购索赔基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList); -// returnMap.put("errorFile", url); -// } -// return success(returnMap); -// } + @PostMapping("/import") + @Operation(summary = "导入采购索赔基本信息") + @Parameters({ + @Parameter(name = "file", description = "Excel 文件", required = true), + @Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"), + @Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true") + }) + @PreAuthorize("@ss.hasPermission('wms:itembasic:import')") + public CommonResult> importExcel(HttpServletResponse response, + @RequestParam("file") MultipartFile file, + @RequestParam(value = "mode") Integer mode, + @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { + List list = ExcelUtils.read(file, PurchaseclaimRequestMainCreateReqVO.class); + List errorList = purchaseclaimRequestMainService.importPurchaseclaimRequestList(list, mode, updatePart); + Map returnMap = new HashMap<>(); + returnMap.put("errorCount", errorList.size()); + if(!errorList.isEmpty()) { + String url = ExcelUtils.writeLocalFile("采购索赔基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList); + returnMap.put("errorFile", url); + } + return success(returnMap); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/vo/PurchaseclaimRequestDetailImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/vo/PurchaseclaimRequestDetailImportVO.java index 9fbf2846..9ab511c4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/vo/PurchaseclaimRequestDetailImportVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/vo/PurchaseclaimRequestDetailImportVO.java @@ -17,6 +17,12 @@ import java.time.LocalDateTime; @Data public class PurchaseclaimRequestDetailImportVO { + @ExcelProperty("导入状态") + private String importStatus; + + @ExcelProperty("导入说明") + private String importRemark; + @ExcelProperty("发货单号") private String asnNumber; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java index 828f59b3..39feacb6 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java @@ -46,4 +46,11 @@ public interface PurchaseclaimRequestDetailConvert { @Mapping(source = "mainDO.updater", target = "updater"), }) PurchaseclaimRequestDetailExcelVO convert(PurchaseclaimRequestMainDO mainDO, PurchaseclaimRequestDetailDO detailDO); + + + @Mappings({ + @Mapping(source = "mainDO.number", target = "number"), + @Mapping(source = "mainDO.remark", target = "remark"), + }) + PurchaseclaimRequestDetailImportVO convert(PurchaseclaimRequestMainCreateReqVO mainVo, PurchaseclaimRequestDetailCreateReqVO detailVo); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailService.java index 085f0d5b..94247164 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailService.java @@ -29,14 +29,14 @@ public interface PurchaseclaimRequestDetailService { * * @param updateReqVO 更新信息 */ - void updatePurchaseclaimRequestDetail(@Valid PurchaseclaimRequestDetailUpdateReqVO updateReqVO); + Integer updatePurchaseclaimRequestDetail(@Valid PurchaseclaimRequestDetailUpdateReqVO updateReqVO); /** * 删除采购索赔申请子 * * @param id 编号 */ - void deletePurchaseclaimRequestDetail(Long id); + Integer deletePurchaseclaimRequestDetail(Long id); /** * 获得采购索赔申请子列表 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailServiceImpl.java index d463f837..7a47c2e8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailServiceImpl.java @@ -46,21 +46,21 @@ public class PurchaseclaimRequestDetailServiceImpl implements PurchaseclaimReque } @Override - public void updatePurchaseclaimRequestDetail(PurchaseclaimRequestDetailUpdateReqVO updateReqVO) { + public Integer updatePurchaseclaimRequestDetail(PurchaseclaimRequestDetailUpdateReqVO updateReqVO) { // 校验存在 validatePurchaseclaimRequestDetailExists(updateReqVO.getId()); validatePurchaseclaimRequestMainExists(updateReqVO.getMasterId()); // 更新 PurchaseclaimRequestDetailDO updateObj = PurchaseclaimRequestDetailConvert.INSTANCE.convert(updateReqVO); - purchaseclaimRequestDetailMapper.updateById(updateObj); + return purchaseclaimRequestDetailMapper.updateById(updateObj); } @Override - public void deletePurchaseclaimRequestDetail(Long id) { + public Integer deletePurchaseclaimRequestDetail(Long id) { // 校验存在 validatePurchaseclaimRequestDetailExists(id); // 删除 - purchaseclaimRequestDetailMapper.deleteById(id); + return purchaseclaimRequestDetailMapper.deleteById(id); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java index c5ccbf83..8637acc1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java @@ -2,11 +2,7 @@ package com.win.module.wms.service.purchaseclaimRequest; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.itembasic.vo.ItembasicImportExcelVo; -import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainCreateReqVO; -import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainExportReqVO; -import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainPageReqVO; -import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainUpdateReqVO; +import com.win.module.wms.controller.purchaseclaimRequest.vo.*; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO; import javax.validation.Valid; @@ -33,14 +29,14 @@ public interface PurchaseclaimRequestMainService { * * @param updateReqVO 更新信息 */ - void updatePurchaseclaimRequestMain(@Valid PurchaseclaimRequestMainUpdateReqVO updateReqVO); + Integer updatePurchaseclaimRequestMain(@Valid PurchaseclaimRequestMainUpdateReqVO updateReqVO); /** * 删除采购索赔申请主 * * @param id 编号 */ - void deletePurchaseclaimRequestMain(Long id); + Integer deletePurchaseclaimRequestMain(Long id); /** * 获得采购索赔申请主 @@ -90,5 +86,5 @@ public interface PurchaseclaimRequestMainService { * @param updatePart 是否支持更新 * @return 导入结果 */ - public List importPurchaseclaimRequestList(List datas, Integer mode, boolean updatePart); + public List importPurchaseclaimRequestList(List datas, Integer mode, boolean updatePart); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java index 57a5c226..67f7e1f4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java @@ -1,11 +1,11 @@ package com.win.module.wms.service.purchaseclaimRequest; import cn.hutool.core.collection.CollUtil; +import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; -import com.win.module.wms.controller.itembasic.vo.ItembasicImportExcelVo; import com.win.module.wms.controller.purchaseclaimRequest.vo.*; import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestDetailConvert; import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestMainConvert; @@ -64,25 +64,25 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest @Override @Transactional - public void updatePurchaseclaimRequestMain(PurchaseclaimRequestMainUpdateReqVO updateReqVO) { + public Integer updatePurchaseclaimRequestMain(PurchaseclaimRequestMainUpdateReqVO updateReqVO) { // 校验存在,如子表需要也再此校验 validatePurchaseclaimRequestMainExists(updateReqVO.getId()); // 更新主表 PurchaseclaimRequestMainDO updateObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(updateReqVO); - purchaseclaimRequestMainMapper.updateById(updateObj); + return purchaseclaimRequestMainMapper.updateById(updateObj); } @Override @Transactional - public void deletePurchaseclaimRequestMain(Long id) { + public Integer deletePurchaseclaimRequestMain(Long id) { // 校验存在 validatePurchaseclaimRequestMainExists(id); - // 删除主表 - purchaseclaimRequestMainMapper.deleteById(id); // 删除子表数据 Map map = new HashMap<>(); map.put("master_id", id); purchaseclaimRequestDetailMapper.deleteByMap(map); + // 删除主表 + return purchaseclaimRequestMainMapper.deleteById(id); } private void validatePurchaseclaimRequestMainExists(Long id) { @@ -116,23 +116,44 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest return purchaseclaimRequestMainMapper.selectList(exportReqVO); } - public List importPurchaseclaimRequestList(List datas, Integer mode, boolean updatePart) { + public List importPurchaseclaimRequestList(List datas, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(datas)) { throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); } + List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { - PurchaseclaimRequestMainDO updateObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO); - purchaseclaimRequestMainMapper.updateById(updateObj); + // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList + boolean isError = false; + String importRemark = ""; + try { + if(mode != null){ + validatePurchaseclaimRequestMainExists(null); + } + } catch (ServiceException ex) { + isError = true; + importRemark += ex.getMessage() + ","; + } + if(isError) { + List subList = createReqVO.getSubList(); + for (PurchaseclaimRequestDetailCreateReqVO detailVo : subList) { + PurchaseclaimRequestDetailImportVO importVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert(createReqVO, detailVo); + importVO.setImportStatus("失败"); + importVO.setImportRemark(importRemark.substring(0, importRemark.length() - 1)); + } + } + PurchaseclaimRequestMainDO createObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO); + purchaseclaimRequestMainMapper.insert(createObj); List subList = createReqVO.getSubList(); List subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList); // 新增子表数据 for (PurchaseclaimRequestDetailDO detailDO : subDOList) { + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList detailDO.setMasterId(createReqVO.getId()); detailDO.setNumber(createReqVO.getNumber()); } purchaseclaimRequestDetailMapper.insertBatch(subDOList); }); - return new ArrayList<>(); + return errorList; } }