From 5b7dd2d4a5a13e9added2c97fb545b1ecdfb2d3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 10 May 2024 11:42:07 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat(ebom):=20=E5=AF=BC=E5=85=A5sap?= =?UTF-8?q?=E7=9A=84=E6=8E=A5=E5=8F=A3=E5=90=8D=E7=94=B1ZRFC=5FPP=5F003?= =?UTF-8?q?=E6=94=B9=E4=B8=BAZRFC=5FPP=5F005?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/nflg/product/bomnew/service/SapOpUtilService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java index bad1cf95..62daec98 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapOpUtilService.java @@ -103,7 +103,7 @@ public class SapOpUtilService { SapReqParams params = new SapReqParams(); // 接口名 - params.setFunName("ZRFC_PP_003"); + params.setFunName("ZRFC_PP_005"); Map> inputStructure = new HashMap<>(); @@ -146,7 +146,7 @@ public class SapOpUtilService { VUtils.isTure(CollUtil.isEmpty(impartSapParamDTO.getT1())).throwMessage("没有需要同步的数据"); SapReqParams params = new SapReqParams(); // 接口名 - params.setFunName("ZRFC_PP_003"); + params.setFunName("ZRFC_PP_005"); ImportSapParam2DTO pp = Convert.convert(ImportSapParam2DTO.class, impartSapParamDTO); Map parentMap = Convert.convert(new TypeReference>() { From e13b5662a5fe3e95d8e949088fa530e9fcf0290c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 23 May 2024 18:40:11 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat(=E7=A7=BB=E5=8A=A8=E7=A0=B4ebom):=20?= =?UTF-8?q?=E7=89=A9=E6=96=99=E5=90=8D=E7=A7=B0=E5=A6=82=E6=9E=9C=E6=9C=89?= =?UTF-8?q?=E4=B8=94=E4=BB=85=E6=9C=89=E4=B8=80=E4=B8=AA=E2=80=9C=E6=97=A0?= =?UTF-8?q?=E2=80=9D=E5=AD=97=E6=97=B6=E6=89=8D=E8=BF=90=E5=85=81=E8=AE=B8?= =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bomnew/api/user/OptionalEbomApi.java | 24 ++++++++++++------- .../OptionalEbomImportChildService.java | 13 ++++------ .../service/aggreg/OptionalExcelService.java | 13 +++++----- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalEbomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalEbomApi.java index 6e0380b7..5769979a 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalEbomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalEbomApi.java @@ -2,12 +2,11 @@ package com.nflg.product.bomnew.api.user; import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; - import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mzt.logapi.starter.annotation.LogRecord; +import com.nflg.product.base.core.api.BaseApi; import com.nflg.product.base.core.conmon.util.SessionUtil; import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.bomnew.constant.OptionalBomConstant; @@ -21,25 +20,29 @@ import com.nflg.product.bomnew.pojo.query.OptionalEbomConfigListQuery; import com.nflg.product.bomnew.pojo.query.OptionalEbomImportChildQuery; import com.nflg.product.bomnew.pojo.query.OptionalEbomMainListQuery; import com.nflg.product.bomnew.pojo.vo.*; -import com.nflg.product.bomnew.service.*; +import com.nflg.product.bomnew.service.OptionalEbomConfigService; +import com.nflg.product.bomnew.service.OptionalEbomImportChildService; +import com.nflg.product.bomnew.service.OptionalEbomImportService; +import com.nflg.product.bomnew.service.OptionalEbomMainService; import com.nflg.product.bomnew.service.aggreg.AggregOptionConfigService; import com.nflg.product.bomnew.service.aggreg.OptionalExcelService; import com.nflg.product.bomnew.service.aggreg.PublishMaterialService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import nflg.product.common.constant.STATE; import nflg.product.common.vo.ResultVO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.core.io.ClassPathResource; import org.springframework.web.bind.annotation.*; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import com.nflg.product.base.core.api.BaseApi; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; -import java.io.*; -import java.net.URLEncoder; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.util.Date; import java.util.List; import java.util.Objects; @@ -51,6 +54,7 @@ import java.util.Objects; @RequestMapping("optional/ebom") @Api(tags = "移动破ebom") public class OptionalEbomApi extends BaseApi { + private static final Logger log = LoggerFactory.getLogger(OptionalEbomApi.class); /** * 服务对象 */ @@ -118,8 +122,10 @@ public class OptionalEbomApi extends BaseApi { return ResultVO.success(true); } catch (NflgBusinessException ex){ + log.error("导入excel数据", ex); return ResultVO.error(ex.getState(),ex.getMsg()); }catch (Exception e){ + log.error("导入excel数据", e); return ResultVO.error(STATE.SystemErr,"出现异常,联系管理员,"+e.getMessage()); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/OptionalEbomImportChildService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/OptionalEbomImportChildService.java index 30eae8f2..8ca721fa 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/OptionalEbomImportChildService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/OptionalEbomImportChildService.java @@ -9,15 +9,12 @@ import cn.hutool.extra.spring.SpringUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - - import com.mzt.logapi.context.LogRecordContext; import com.nflg.product.base.core.conmon.util.SessionUtil; import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.bomnew.constant.OptionalBomConstant; import com.nflg.product.bomnew.mapper.master.OptionalEbomImportChildMapper; import com.nflg.product.bomnew.pojo.dto.OptionalEbomImportChildAddDTO; -import com.nflg.product.bomnew.pojo.dto.OptionalEbomImportChildDTO; import com.nflg.product.bomnew.pojo.dto.OptionalEbomMainDelDTO; import com.nflg.product.bomnew.pojo.dto.OptionalEbomSubmitEditDTO; import com.nflg.product.bomnew.pojo.entity.OptionalEbomConfigREntity; @@ -26,16 +23,14 @@ import com.nflg.product.bomnew.pojo.entity.OptionalEbomImportEntity; import com.nflg.product.bomnew.pojo.entity.OptionalEbomMainEntity; import com.nflg.product.bomnew.pojo.query.OptionalEbomImportChildQuery; import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; -import com.nflg.product.bomnew.pojo.vo.OptionalEbomConfigRVO; import com.nflg.product.bomnew.pojo.vo.OptionalEbomImportChildVO; import nflg.product.common.constant.STATE; -import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Update; -import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -142,7 +137,7 @@ public class OptionalEbomImportChildService extends ServiceImpl queryWrapper3 = new QueryWrapper<>(); // 同一个机型下不可以存在相同的物料信息(物料编号),如果是“无”的情况,需同一个机型+同一个选项来做唯一判断 - if (StrUtil.isEmpty(item.getMaterialNo()) && item.getMaterialName().equals("无")) { + if (StrUtil.isEmpty(item.getMaterialNo())) { queryWrapper3.lambda().eq(OptionalEbomImportChildEntity::getRootRowId, item.getRootRowId()); queryWrapper3.lambda().eq(OptionalEbomImportChildEntity::getParentRowId, item.getParentRowId()); queryWrapper3.lambda().eq(OptionalEbomImportChildEntity::getMaterialName, "无"); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/aggreg/OptionalExcelService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/aggreg/OptionalExcelService.java index d50c117a..281f8545 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/aggreg/OptionalExcelService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/aggreg/OptionalExcelService.java @@ -63,7 +63,9 @@ public class OptionalExcelService { for (ImportExcelField item : v1) { - if (StrUtil.isEmpty(item.getCellSecond())) { + + String materialName = item.getCellThird().trim(); + if (StrUtil.isEmpty(item.getCellSecond()) && !materialName.equals("无")) { throw new NflgBusinessException(STATE.Error, StrUtil.format("第{}行, {} {}出现空物料数据", item.getLineNo(), optionalEbomImportLevel2Dto.getOptionName(), optionalEbomImportLevel2Dto.getOptionDrawingNo())); } @@ -84,13 +86,10 @@ public class OptionalExcelService { } - String materialName = item.getCellThird().trim(); - - levelDto3.setLineNo(item.getLineNo()); levelDto3.setPartType(OptionalBomConstant.PartTypeEnum.PART_TYPE_RADIO.getValue()); levelDto3.setMaterialNo(item.getCellSecond()); - levelDto3.setTag(materialName.contains("无")); + levelDto3.setTag(materialName.contentEquals("无")); // levelDto3.setMaterialDesc(materialName); // levelDto3.setMaterialNo(materialName); // levelDto3.setMaterialName(materialName); @@ -252,7 +251,7 @@ public class OptionalExcelService { //检查选项下是否包含重复物料 - Map frequencyMap = optionList.stream().collect(Collectors.groupingBy(OptionalEbomImportChildDTO::getMaterialNo, Collectors.counting())); + Map frequencyMap = optionList.stream().filter(o -> StrUtil.isNotBlank(o.getMaterialNo())).collect(Collectors.groupingBy(OptionalEbomImportChildDTO::getMaterialNo, Collectors.counting())); List duplicates = frequencyMap.entrySet().stream() .filter(entry -> entry.getValue() > 1) .map(Map.Entry::getKey) @@ -266,7 +265,7 @@ public class OptionalExcelService { SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(optionList,OptionalEbomImportChildDTO::getMaterialNo); for (OptionalEbomImportChildDTO childDTO : optionList) { //!childDTO.getTag() && - if (StringUtils.isEmpty(childDTO.getDrawingNo())) { + if (StrUtil.isNotBlank(childDTO.getMaterialNo()) && StringUtils.isEmpty(childDTO.getDrawingNo())) { childDTO.setError(childDTO.getError() | OptionalBomConstant.ExcelErrorTagEnum.MATERIA_NO_UNKOWN.getValue()); optionalEbomImportDTO.setError(true); From 6143575a5ea0c1aed730f3517ff84decf94b1b7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Mon, 27 May 2024 15:02:56 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat(=E7=A7=BB=E5=8A=A8=E7=A0=B4):=20?= =?UTF-8?q?=E4=BB=8E=E4=B8=BB=E7=89=A9=E6=96=99=E8=A1=A8=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bomnew/api/user/OptionalEbomApi.java | 14 ++++++++++- .../mapper/master/OptionalEbomMainMapper.java | 23 +++++++------------ .../service/OptionalEbomMainService.java | 10 +++----- .../mapper/master/OptionalEbomMainMapper.xml | 12 ++++++++++ 4 files changed, 36 insertions(+), 23 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalEbomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalEbomApi.java index 5769979a..fd166301 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalEbomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalEbomApi.java @@ -40,6 +40,8 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import javax.validation.constraints.NotNull; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -514,7 +516,17 @@ public class OptionalEbomApi extends BaseApi { } - + /** + * 从主物料表同步信息 + * @return + */ + @GetMapping("syncMaterailInfo") + @ApiOperation("从主物料表同步信息") + @LogRecord(success = "从主物料表同步信息,操作结果:{{#_ret}}", bizNo = "", extra = "{{#rowId}}", type = "移动破-从主物料表同步信息") + public ResultVO syncMaterailInfo(@Valid @RequestParam("rowId") @NotNull Long rowId) { + optionalEbomMainService.syncMaterailInfo(rowId); + return ResultVO.success(); + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/OptionalEbomMainMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/OptionalEbomMainMapper.java index 99232dc3..5ad53971 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/OptionalEbomMainMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/OptionalEbomMainMapper.java @@ -1,21 +1,12 @@ package com.nflg.product.bomnew.mapper.master; - - - - import com.baomidou.mybatisplus.core.mapper.BaseMapper; - - import com.baomidou.mybatisplus.core.metadata.IPage; - import com.baomidou.mybatisplus.extension.plugins.pagination.Page; - import com.nflg.product.base.core.vo.PageVO; - import com.nflg.product.bomnew.pojo.entity.OptionalEbomMainEntity; - import com.nflg.product.bomnew.pojo.query.OptionalEbomMainListQuery; - import com.nflg.product.bomnew.pojo.query.OptionalEbomMainQuery; - import com.nflg.product.bomnew.pojo.query.OriginalBomQuery; - import com.nflg.product.bomnew.pojo.vo.BomOriginalListVO; - import com.nflg.product.bomnew.pojo.vo.OptionalEbomMainVO; - import org.apache.ibatis.annotations.Mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.nflg.product.bomnew.pojo.entity.OptionalEbomMainEntity; +import com.nflg.product.bomnew.pojo.query.OptionalEbomMainListQuery; +import com.nflg.product.bomnew.pojo.vo.OptionalEbomMainVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -30,5 +21,7 @@ int updateRow(OptionalEbomMainEntity entity); int insertBatch(@Param("entities") List entities); int deleteByRowIds(@Param("rowIds") String rowIds); + + void syncMaterailInfo(Long rowId); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/OptionalEbomMainService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/OptionalEbomMainService.java index 789b1a80..23294dd4 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/OptionalEbomMainService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/OptionalEbomMainService.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - import com.nflg.product.base.core.conmon.util.SessionUtil; import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.base.core.vo.PageVO; @@ -16,16 +15,10 @@ import com.nflg.product.bomnew.mapper.master.OptionalEbomMainMapper; import com.nflg.product.bomnew.pojo.dto.OptionalEbomMainDTO; import com.nflg.product.bomnew.pojo.dto.OptionalEbomMainDelDTO; import com.nflg.product.bomnew.pojo.entity.OptionalEbomConfigEntity; -import com.nflg.product.bomnew.pojo.entity.OptionalEbomConfigREntity; -import com.nflg.product.bomnew.pojo.entity.OptionalEbomImportEntity; import com.nflg.product.bomnew.pojo.entity.OptionalEbomMainEntity; import com.nflg.product.bomnew.pojo.query.OptionalEbomMainListQuery; -import com.nflg.product.bomnew.pojo.query.OptionalEbomMainQuery; -import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; import com.nflg.product.bomnew.pojo.vo.OptionalEbomMainVO; -import com.nflg.product.bomnew.service.OptionalEbomMainService; import nflg.product.common.constant.STATE; -import org.apache.ibatis.annotations.Param; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -186,5 +179,8 @@ public class OptionalEbomMainService extends ServiceImpl where row_id = #{rowId} + + UPDATE t_optional_ebom_import_child + JOIN t_optional_ebom_main ON t_optional_ebom_import_child.root_row_id = t_optional_ebom_main.row_id + AND t_optional_ebom_import_child.material_no != '无' + AND t_optional_ebom_import_child.material_name != '无' + JOIN t_material_main ON t_optional_ebom_import_child.material_no = t_material_main.material_no + AND t_optional_ebom_import_child.material_name != t_material_main.material_desc + SET t_optional_ebom_import_child.material_desc=t_material_main.material_desc, + t_optional_ebom_import_child.material_name=t_material_main.material_desc, + t_optional_ebom_import_child.drawing_no=t_material_main.drawing_no + WHERE t_optional_ebom_main.row_id = #{rowId}; +