diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/OptionalEbomConfigEntity.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/OptionalEbomConfigEntity.java index f813e916..0feeeafd 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/OptionalEbomConfigEntity.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/OptionalEbomConfigEntity.java @@ -105,6 +105,14 @@ public class OptionalEbomConfigEntity implements Serializable { @TableField(value = "created_by") @ApiModelProperty(value = "操作人编码") private String createdBy; + @TableField(value = "upload_sap_user") + @ApiModelProperty(value = "上传人") + private String uploadSapUser; + @TableField(value = "upload_sap_code") + @ApiModelProperty(value = "上传人code") + private String uploadSapCode; + + /** * 创建时间 */ diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/OptionalMbomMaterialService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/OptionalMbomMaterialService.java index 58f6424d..bb8c8bb0 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/OptionalMbomMaterialService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/OptionalMbomMaterialService.java @@ -30,6 +30,7 @@ import com.nflg.product.bomnew.pojo.dto.OptionalMbomMaterialAddDTO; import com.nflg.product.bomnew.pojo.dto.sap.impart2.ImportSapParamDTO; import com.nflg.product.bomnew.pojo.dto.sap.impart2.T1DTO; import com.nflg.product.bomnew.pojo.entity.MaterialMainEntity; +import com.nflg.product.bomnew.pojo.entity.OptionalEbomConfigEntity; import com.nflg.product.bomnew.pojo.entity.OptionalMbomMaterialEntity; import com.nflg.product.bomnew.pojo.query.BomNewEbomMaterialQuery; @@ -178,7 +179,19 @@ public ResultVO importSap(Long rowId){ - return SpringUtil.getBean(SapOpUtilService.class).importToSap(result); + ResultVO resultVO= SpringUtil.getBean(SapOpUtilService.class).importToSapV2(result,null); + + if(resultVO.getState().equals( STATE.Success.getState())){ + OptionalEbomConfigEntity configEntity=new OptionalEbomConfigEntity(); + configEntity.setRowId(entity.getRootRowId()); + configEntity.setUpdatedTime(DateUtil.now()); + configEntity.setUploadSapCode(SessionUtil.getUserCode()); + configEntity.setUploadSapUser(SessionUtil.getUserName()); + SpringUtil.getBean( OptionalEbomConfigService.class).updateById(configEntity); + + } + return resultVO; + } 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 cf85936f..be057455 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 @@ -2,6 +2,7 @@ package com.nflg.product.bomnew.service; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.TypeReference; import cn.hutool.core.util.StrUtil; @@ -11,15 +12,18 @@ import com.nflg.product.bomnew.pojo.dto.sap.SapReqParams; import com.nflg.product.bomnew.pojo.dto.sap.SapResult; import com.nflg.product.bomnew.pojo.dto.sap.impart2.ImportSapParam2DTO; import com.nflg.product.bomnew.pojo.dto.sap.impart2.ImportSapParamDTO; +import com.nflg.product.bomnew.pojo.dto.sap.impart2.T1DTO; import lombok.extern.slf4j.Slf4j; import nflg.product.common.constant.STATE; import nflg.product.common.vo.ResultVO; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; @Service @Slf4j @@ -129,6 +133,92 @@ public class SapOpUtilService { } + return ResultVO.success(); + } + + + + public ResultVO importToSapV2(ImportSapParamDTO impartSapParamDTO,List backList) { + if (CollUtil.isEmpty(impartSapParamDTO.getT1())) { + return ResultVO.error("同步SAP 参数错误"); + } + + + SapReqParams params = new SapReqParams(); + // 接口名 + params.setFunName("ZRFC_PP_003"); + + Map> inputStructure = new HashMap<>(); + + ImportSapParam2DTO pp=Convert.convert(ImportSapParam2DTO.class ,impartSapParamDTO); + Map parentMap = Convert.convert(new TypeReference>() { + }, pp); + inputStructure.put("I_STKO", parentMap); + params.setInputParams(parentMap); + + Map>> inputTables = new HashMap<>(); + List> childMapList = Convert.convert(new TypeReference>>() { + }, impartSapParamDTO.getT1()); + inputTables.put("T1", childMapList); + params.setInputTables(inputTables); + + try { + log.info("导入到SAP--参数:" + JSON.toJSONString(params)); + SapResult sapResult = sapService.doSapFun(params); + + if (!sapResult.isSuccess()) { + return ResultVO.error(STATE.Error, "接口连接失败,"+sapResult.getMsg()); + } + + Map>> outTablesMap = sapResult.getOutTablesMap(); + + List> tOut = outTablesMap.get("T1"); + + List< T1DTO > list=null; + if (!CollectionUtils.isEmpty(tOut)) { + list = Convert.convert(new TypeReference >() { + }, tOut); + } + log.info("导入到SAP--返回值:" + JSON.toJSONString(outTablesMap)); + + if(CollectionUtil.isNotEmpty(list)){ + + StringBuffer errBuf=new StringBuffer(); + AtomicInteger errCount= new AtomicInteger(); + AtomicInteger succCount= new AtomicInteger(); + for (T1DTO item: + list) { + + + if(CollectionUtil.isNotEmpty(backList)){ + backList.add(item); + } + //"FLAG": "1" -- 0 失败;1 成功 + if(item.getFLAG().equals("0")){ + errCount.getAndIncrement(); + errBuf.append(item.getSTATUS()+" "); + }else if (item.getFLAG().equals("1")){ + succCount.getAndIncrement(); + } + + } + + + + if(errCount.get()>0){ + throw new Exception(errBuf.toString()); + } + + }else{ + throw new Exception("获取sap返回数据转换异常"); + } + + + } catch (Exception e) { + return ResultVO.error(STATE.Error, e.getMessage()); + } + + return ResultVO.success(); } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomConfigMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomConfigMapper.xml index eeb0c192..2e2c8845 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomConfigMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomConfigMapper.xml @@ -17,6 +17,9 @@ + + +