From ae90814b5d14a8a311aacaec0d2d7ea1db437532 Mon Sep 17 00:00:00 2001 From: "hongxi.lian" Date: Thu, 30 Nov 2023 16:13:10 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8F=AD=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/controller/team/TeamController.java | 3 +- .../controller/team/vo/TeamImportErrorVO.java | 54 ++++++++++++ .../module/wms/convert/team/TeamConvert.java | 10 +-- .../module/wms/service/team/TeamService.java | 8 +- .../wms/service/team/TeamServiceImpl.java | 86 ++++++++++--------- 5 files changed, 107 insertions(+), 54 deletions(-) create mode 100644 win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/team/vo/TeamImportErrorVO.java diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/team/TeamController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/team/TeamController.java index 2878c9c2..c54cd1bb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/team/TeamController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/team/TeamController.java @@ -4,6 +4,7 @@ import com.win.framework.common.pojo.CustomConditions; import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; +import com.win.module.wms.controller.bom.vo.BomImportErrorVO; import com.win.module.wms.controller.itembasic.vo.ItembasicExcelVO; import com.win.module.wms.controller.shift.vo.ShiftRespVO; import com.win.module.wms.controller.team.vo.*; @@ -177,7 +178,7 @@ public class TeamController { @RequestParam(value = "mode") Integer mode, @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { List list = ExcelUtils.read(file, TeamImportExcelVo.class); - List errorList = teamService.importTeamList(list, mode, updatePart); + List errorList = teamService.importTeamList(list, mode, updatePart); Map returnMap = new HashMap<>(); returnMap.put("errorCount", errorList.size()); if(!errorList.isEmpty()) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/team/vo/TeamImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/team/vo/TeamImportErrorVO.java new file mode 100644 index 00000000..817b4481 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/team/vo/TeamImportErrorVO.java @@ -0,0 +1,54 @@ +package com.win.module.wms.controller.team.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.win.framework.excel.core.annotations.DictFormat; +import com.win.framework.excel.core.convert.DictConvert; +import com.win.module.wms.enums.DictTypeConstants; +import lombok.Builder; +import lombok.Data; +import lombok.ToString; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@Builder +@ToString(callSuper = true) +public class TeamImportErrorVO { + @ExcelProperty("代码") + private String code; + + @ExcelProperty("名称") + private String name; + + @ExcelProperty("描述") + private String description; + + @ExcelProperty("成员") + private String members; + + @ExcelProperty("生效时间") + private LocalDateTime activeTime; + + @ExcelProperty("失效时间") + private LocalDateTime expireTime; + + @ExcelProperty("备注") + private String remark; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @ExcelProperty("创建者ID") + private String creator; + + @ExcelProperty("是否可用") + private String available; + + @ExcelProperty(value = "导入状态", index = 0) + private String importStatus; + + @ExcelProperty(value = "导入说明", index = 1) + private String importRemark; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/team/TeamConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/team/TeamConvert.java index e5a2920e..dd07c16a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/team/TeamConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/team/TeamConvert.java @@ -4,11 +4,9 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.team.vo.TeamCreateReqVO; -import com.win.module.wms.controller.team.vo.TeamExcelVO; -import com.win.module.wms.controller.team.vo.TeamRespVO; -import com.win.module.wms.controller.team.vo.TeamUpdateReqVO; -import com.win.module.wms.controller.team.vo.TeamImportExcelVo; +import com.win.module.wms.controller.bom.vo.BomImportErrorVO; +import com.win.module.wms.controller.bom.vo.BomImportExcelVo; +import com.win.module.wms.controller.team.vo.*; import com.win.module.wms.controller.transactiontype.vo.TransactiontypeImportExcelVo; import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; @@ -40,4 +38,6 @@ public interface TeamConvert { TeamDO convert(TeamImportExcelVo bean); + TeamImportErrorVO convert2(TeamDO bean); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/team/TeamService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/team/TeamService.java index 715f320c..452fe3ad 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/team/TeamService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/team/TeamService.java @@ -4,11 +4,7 @@ import java.util.*; import javax.validation.*; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.team.vo.TeamCreateReqVO; -import com.win.module.wms.controller.team.vo.TeamExportReqVO; -import com.win.module.wms.controller.team.vo.TeamPageReqVO; -import com.win.module.wms.controller.team.vo.TeamUpdateReqVO; -import com.win.module.wms.controller.team.vo.TeamImportExcelVo; +import com.win.module.wms.controller.team.vo.*; import com.win.module.wms.dal.dataobject.team.TeamDO; import com.win.framework.common.pojo.PageResult; @@ -88,6 +84,6 @@ public interface TeamService { */ List getTeamList(TeamExportReqVO exportReqVO); - List importTeamList(List importTeam, Integer mode, boolean updatePart); + List importTeamList(List importTeam, Integer mode, boolean updatePart); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/team/TeamServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/team/TeamServiceImpl.java index 3027c2c5..64f0c1d4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/team/TeamServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/team/TeamServiceImpl.java @@ -8,8 +8,11 @@ import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.framework.datapermission.core.util.DataPermissionUtils; +import com.win.module.wms.controller.bom.vo.BomImportErrorVO; import com.win.module.wms.controller.team.vo.*; +import com.win.module.wms.convert.bom.BomConvert; import com.win.module.wms.convert.team.TeamConvert; +import com.win.module.wms.dal.dataobject.bom.BomDO; import com.win.module.wms.dal.dataobject.team.TeamDO; import com.win.module.wms.dal.mysql.team.TeamMapper; import org.springframework.stereotype.Service; @@ -100,55 +103,54 @@ public class TeamServiceImpl implements TeamService { return teamMapper.selectList(exportReqVO); } - public List importTeamList(List teams, Integer mode, boolean updatePart) { + private String validateTeamImport(TeamDO team ){ + StringBuilder message = new StringBuilder(); + try { + validateTeamExists(null); + } catch (ServiceException ex) { + message.append(ex.getMessage()).append(","); + } + try { + validateCodeExists(null, team.getCode()); + } catch (ServiceException ex) { + message.append(ex.getMessage()).append(","); + } + try { + validateAvailableExists(team.getAvailable()); + } catch (ServiceException ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } + + public List importTeamList(List teams, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(teams)) { throw exception(TEAM_IMPORT_LIST_IS_EMPTY); } - List errorList = new ArrayList<>(); + List errorList = new ArrayList<>(); teams.forEach(team -> { + TeamDO teamDO = TeamConvert.INSTANCE.convert(team); // 校验,判断是否有不符合的原因 - String massage = ""; - - if(mode != null) { - try { - validateTeamExists(null); - } catch (ServiceException ex) { - massage += ex.getMessage() + ","; - } - try { - validateCodeExists(null, team.getCode()); - } catch (ServiceException ex) { - massage += ex.getMessage() + ","; - } - try { - validateAvailableExists(team.getAvailable()); - } catch (ServiceException ex) { - massage += ex.getMessage() + ","; - } - - if (StrUtil.isNotEmpty(massage)) { - massage.substring(0, massage.length() - 1); - errorList.add(team); - } - - if (errorList == null) { - // 判断如果不存在,在进行插入 - TeamDO existTeam = teamMapper.selectByCode(team.getCode()); - if (existTeam == null && mode != 3) { - teamMapper.insert(TeamConvert.INSTANCE.convert(team)); - } else if (existTeam != null && mode != 2) {// 如果存在,判断是否允许更新 - TeamDO teamDO = TeamConvert.INSTANCE.convert(team); - teamDO.setId(existTeam.getId()); - teamMapper.updateById(teamDO); - } - } + String message = this.validateTeamImport(teamDO); + boolean flag = true; + if(!message.isEmpty()){ + TeamImportErrorVO importErrorVO = TeamConvert.INSTANCE.convert2(teamDO); + importErrorVO.setImportStatus("失败"); + importErrorVO.setImportRemark(message.substring(0, message.length() - 1)); + errorList.add(importErrorVO); + flag = false; + } + if(flag) { + // 判断如果不存在,在进行插入 + TeamDO existTeam = teamMapper.selectByCode(team.getCode()); + if (existTeam == null && mode != 3) { + teamMapper.insert(TeamConvert.INSTANCE.convert(team)); + } else if (existTeam != null && mode != 2) {// 如果存在,判断是否允许更新 + teamDO.setId(existTeam.getId()); + teamMapper.updateById(teamDO); } + } }); - - //错误不为空并非部分更新,手工回滚 - if(!errorList.isEmpty() && !updatePart) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } return errorList; }