From e1367525e5976609314763b32fcdcbfe2720ce9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 7 Jun 2024 15:25:53 +0800 Subject: [PATCH] =?UTF-8?q?feat(pbom):=20=E6=B7=BB=E5=8A=A0=E5=AF=BC?= =?UTF-8?q?=E5=85=A5SAP=E5=A4=B1=E8=B4=A5=E7=9A=84=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=92=8C=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/api/user/PBomApi.java | 20 ++++++++++++++ .../service/BomNewPbomExportToSAPImpl.java | 27 +++++++++++++++++++ .../service/BomNewPbomParentService.java | 16 +++++++++++ .../mapper/master/BomNewPbomParentMapper.xml | 14 ++++++++++ 4 files changed, 77 insertions(+) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java index c20a6264..a41917d0 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java @@ -339,4 +339,24 @@ public class PBomApi extends BaseApi { public ResultVO> importToSAP(@Valid @RequestBody @NotNull PbomImportToSAPQuery query) { return ResultVO.success(bomNewPbomParentService.importToSAP2(query)); } + + /** + * 获取导入sap失败的bom数量 + * @return 导入sap失败的bom数量 + */ + @GetMapping("getSapErrorNum") + @ApiOperation("获取导入sap失败的bom数量") + public ResultVO getSapErrorNum() { + return ResultVO.success(bomNewPbomParentService.getSapErrorNum()); + } + + /** + * 获取导入sap失败的bom + * @return 导入sap失败的bom + */ + @GetMapping("getSapError") + @ApiOperation("获取导入sap失败错误信息") + public ResultVO> getSapError(@Valid @RequestParam("rowId") @NotNull Long rowId) { + return ResultVO.success(bomNewPbomParentService.getSapError(rowId)); + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java index 74c4a686..08dc4312 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java @@ -6,6 +6,9 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.nflg.product.base.core.conmon.util.SessionUtil; import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.bomnew.constant.*; import com.nflg.product.bomnew.pojo.dto.sap.impart2.ImportSapParamDTO; @@ -13,6 +16,7 @@ import com.nflg.product.bomnew.pojo.dto.sap.impart2.T1DTO; import com.nflg.product.bomnew.pojo.dto.sap.impart2.T1ExtDTO; import com.nflg.product.bomnew.pojo.entity.BomNewPbomChildEntity; import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentEntity; +import com.nflg.product.bomnew.pojo.entity.BomNewSapErrorMsgEntity; import com.nflg.product.bomnew.pojo.vo.OperationErrorMsgVO; import com.nflg.product.bomnew.util.VUtils; import nflg.product.common.constant.STATE; @@ -44,6 +48,7 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { private final BomNewPbomParentService bomNewPbomParentService = SpringUtil.getBean(BomNewPbomParentService.class); private final BomNewPbomChildService bomNewPbomChildService = SpringUtil.getBean(BomNewPbomChildService.class); + private final BomNewSapErrorMsgService bomNewSapErrorMsgService = SpringUtil.getBean(BomNewSapErrorMsgService.class); public BomNewPbomExportToSAPImpl(boolean isForSale) { this.isForSale = isForSale; @@ -110,12 +115,34 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { } else if (sapDto.getT1().size() != liErrMsg.size()) { state = SapStatusEnum.PUB_ERROR; } + saveSapErrorMsg(rootBomRowId, liErrMsg); + } catch (Exception ex) { + LOGGER.error("导入SAP失败", ex); + liErrMsg = new ArrayList<>(); + liErrMsg.add(OperationErrorMsgVO.create("", "未知异常,请联系管理员")); + saveSapErrorMsg(rootBomRowId, liErrMsg); + throw new NflgBusinessException(STATE.BusinessError, "导入SAP失败,请联系管理员"); } finally { updateSapState(rootBomRowId, state); } return liErrMsg; } + private void saveSapErrorMsg(Long rootBomRowId, List liErrMsg) { + bomNewSapErrorMsgService.getBaseMapper().delete(Wrappers.lambdaQuery(BomNewSapErrorMsgEntity.class) + .eq(BomNewSapErrorMsgEntity::getTargetRowId, rootBomRowId)); + + if (CollUtil.isNotEmpty(liErrMsg)) { + BomNewSapErrorMsgEntity sapErrorMsgEntity = new BomNewSapErrorMsgEntity(); + sapErrorMsgEntity.setTargetRowId(rootBomRowId); + sapErrorMsgEntity.setType(0); + sapErrorMsgEntity.setData(JSON.toJSONString(liErrMsg)); + sapErrorMsgEntity.setCreatedName(SessionUtil.getRealName()); + sapErrorMsgEntity.setCreatedTime(LocalDateTime.now()); + bomNewSapErrorMsgService.saveOrUpdate(sapErrorMsgEntity); + } + } + private void updateSapState(Long rootBomRowId, SapStatusEnum sapState) { bomNewPbomParentService.lambdaUpdate() .in(BomNewPbomParentEntity::getRowId, rootBomRowId) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java index 37094f26..48f7a9d0 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java @@ -8,6 +8,7 @@ import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.IdWorker; @@ -105,6 +106,9 @@ public class BomNewPbomParentService extends ServiceImpl getSapError(Long rowId) { + BomNewSapErrorMsgEntity sapErrorMsgEntity = bomNewSapErrorMsgService.lambdaQuery() + .eq(BomNewSapErrorMsgEntity::getTargetRowId, rowId) + .one(); + if (Objects.isNull(sapErrorMsgEntity)) return Collections.emptyList(); + return JSON.parseArray(sapErrorMsgEntity.getData(), OperationErrorMsgVO.class); + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml index 0225094f..93a0d0e7 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml @@ -263,6 +263,20 @@ #{item} ; + +