diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java index 773f2537..f16aa7ef 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java @@ -22,9 +22,6 @@ public interface RemoteSapService { @PostMapping("/sap/shopOrderSync") public R> shopOrderSync(@RequestBody SapShopOrderQuery sapProOrder); - @PostMapping("/bomSync") - public R bomSync(); - @PostMapping("/sap/sapRouterSync") public R sapRouterSync(); @@ -54,4 +51,13 @@ public interface RemoteSapService { /**客户**/ @PostMapping("/sap/sapCustomSync") public R sapCustomSync(); + + /**product同步**/ + @PostMapping("/sap/itemSync") + public R sapProductSync(); + + /**bom同步接口**/ + @PostMapping("/sap/bomSync") + public R sapBomSync(); + } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java index e8146e19..ee72f8ae 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java @@ -22,11 +22,6 @@ public class RemoteSapFallbackFactory implements FallbackFactory bomSync() { - return null; - } - @Override public R sapRouterSync() { return R.fail("SAP服务同步工艺失败:" + throwable.getMessage()); @@ -67,6 +62,17 @@ public class RemoteSapFallbackFactory implements FallbackFactory + + + + + @@ -16,6 +21,7 @@ + @@ -216,7 +222,15 @@ - + + + + + + + + + diff --git a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java index 692875dd..011b0f7d 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java @@ -63,13 +63,35 @@ public class SapController extends BaseController { /** * 物料同步接口 - * @param sapItemQuery + * @param * @return */ @PostMapping("/itemSync") @Log(title = "同步SAP物料清单", businessType = BusinessType.SAP) - public R itemSync(@RequestBody SapItemQuery sapItemQuery){ - return sapItemSyncService.itemSync(sapItemQuery); + public R itemSync(){ + SapItemQuery qo = new SapItemQuery(); + + // 加载sf-cloud库的sys_datasource + SysUser sysUser = new SysUser(); + sysUser.setUserId(1L); + R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); + List> dateSources = dateSources0.getData(); + dateSources.forEach(dateSource -> { + logger.info("++++++++++++" + dateSource.get("poolName") + "++++product同步开始++++++++++"); + DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key + + Date maxTime = sapBomMapper.getProductMaxTime(); + if(maxTime != null){ + qo.setLaeda(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 + } + + R r = sapItemSyncService.itemSync(qo); + if(r.getCode()!=200){ + logger.error("++++++++++++" + dateSource.get("poolName")+"同步product失败,错误信息:"+ r.getMsg()); + } + logger.error("++++++++++++" + dateSource.get("poolName") + "++++product同步结束++++++++++"); + }); + return R.ok(); } /** @@ -78,8 +100,31 @@ public class SapController extends BaseController { */ @PostMapping("/bomSync") @Log(title = "同步SAP物料组件清单", businessType = BusinessType.SAP) - public R bomSync(@RequestBody SapBomQuery sapBomQuery){ - return sapBomService.bomSync(sapBomQuery); + public R bomSync(){ + SapBomQuery qo = new SapBomQuery(); + + // 加载sf-cloud库的sys_datasource + SysUser sysUser = new SysUser(); + sysUser.setUserId(1L); + R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); + List> dateSources = dateSources0.getData(); + dateSources.forEach(dateSource -> { + logger.info("++++++++++++" + dateSource.get("poolName") + "++++bom同步开始++++++++++"); + DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key + + Date maxTime = sapBomMapper.getProductMaxTime(); + if(maxTime != null){ + qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 + } + + R r = sapBomService.bomSync(qo); + if(r.getCode()!=200){ + logger.error("++++++++++++" + dateSource.get("poolName")+"同步bom失败,错误信息:"+ r.getMsg()); + } + logger.error("++++++++++++" + dateSource.get("poolName") + "++++bom同步结束++++++++++"); + }); + return R.ok(); + } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/mapper/SapBomMapper.java b/op-modules/op-sap/src/main/java/com/op/sap/mapper/SapBomMapper.java index dba976d6..8b6a9839 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/mapper/SapBomMapper.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/mapper/SapBomMapper.java @@ -43,4 +43,6 @@ public interface SapBomMapper { int addCustomBatchs(@Param("list")List adds); String getParentId(String factoryCode); + + Date getProductMaxTime(); } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapBomServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapBomServiceImpl.java index 1a05c11d..79bff835 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapBomServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapBomServiceImpl.java @@ -78,7 +78,7 @@ public class SapBomServiceImpl implements SapBomService { S_MATNR.setValue(Constants.LOW, sapBomQuery.getMatnr()); } - if (!StringUtils.isNull(sapBomQuery.getMatnr())){ + if (!StringUtils.isNull(sapBomQuery.getMatkl())){ JCoTable S_MATKL = func.getTableParameterList().getTable("S_MATKL"); S_MATKL.appendRow(); S_MATKL.setValue(Constants.SIGN, "I"); @@ -86,7 +86,7 @@ public class SapBomServiceImpl implements SapBomService { S_MATKL.setValue(Constants.LOW, sapBomQuery.getMatkl()); } - if (!StringUtils.isNull(sapBomQuery.getMatnr())){ + if (!StringUtils.isNull(sapBomQuery.getVerid())){ JCoTable S_VERID = func.getTableParameterList().getTable("S_VERID"); S_VERID.appendRow(); S_VERID.setValue(Constants.SIGN, "I"); @@ -94,7 +94,7 @@ public class SapBomServiceImpl implements SapBomService { S_VERID.setValue(Constants.LOW, sapBomQuery.getVerid()); } - if (!StringUtils.isNull(sapBomQuery.getMatnr())){ + if (!StringUtils.isNull(sapBomQuery.getStlnr())){ JCoTable S_STLNR = func.getTableParameterList().getTable("S_STLNR"); S_STLNR.appendRow(); S_STLNR.setValue(Constants.SIGN, "I"); @@ -102,7 +102,7 @@ public class SapBomServiceImpl implements SapBomService { S_STLNR.setValue(Constants.LOW, sapBomQuery.getStlnr()); } - if (!StringUtils.isNull(sapBomQuery.getMatnr())){ + if (!StringUtils.isNull(sapBomQuery.getAndat())){ JCoTable S_ANDAT = func.getTableParameterList().getTable("S_ANDAT"); S_ANDAT.appendRow(); S_ANDAT.setValue(Constants.SIGN, "I"); @@ -111,7 +111,7 @@ public class SapBomServiceImpl implements SapBomService { S_ANDAT.setValue("HIGH", END_DATE); } - if (!StringUtils.isNull(sapBomQuery.getMatnr())){ + if (!StringUtils.isNull(sapBomQuery.getAedat())){ JCoTable S_AEDAT = func.getTableParameterList().getTable("S_AEDAT"); S_AEDAT.appendRow(); S_AEDAT.setValue(Constants.SIGN, "I"); diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java index ded04af9..60aa9336 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java @@ -208,13 +208,14 @@ public class SapItemSyncImpl implements SapItemSyncService { if (StringUtils.isNull(u)) { BeanValidators.validateWithException(validator, sapBaseProduct); - sapBaseProduct.setCreateBy(SecurityUtils.getUsername()); + sapBaseProduct.setCreateBy("job"); sapBaseProductMapper.insertBaseProduct(sapBaseProduct); successNum++; successMsg.append("
" + successNum + "、物料 " + sapBaseProduct.getProductCode() + " 同步成功"); } else if (!StringUtils.isNull(u)){ sapBaseProduct.setProductId(u.getProductId()); + sapBaseProduct.setCreateBy("job"); sapBaseProductMapper.updateBaseProduct(sapBaseProduct); successNum++; successMsg.append("
" + successNum + "、物料 " + sapBaseProduct.getProductCode() + " 更新成功"); diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWorkCenterServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWorkCenterServiceImpl.java index 80d874d1..53c17bdb 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWorkCenterServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWorkCenterServiceImpl.java @@ -324,8 +324,23 @@ public class SapWorkCenterServiceImpl implements SapWorkCenterService { adds.stream().forEach(e->{ e.setRecordId(IdUtils.fastSimpleUUID()); }); - int n = sapBomMapper.addSupplierBatchs(adds); - System.out.println("供应商新增成功条数:"+ n); + + int allsize = adds.size(); + int inserttimes = allsize/100+1; + for(int m=0;m everyList; + if(m<(inserttimes-1)){ + everyList = adds.subList(m*100,(m+1)*100); + }else{ + everyList = adds.subList(m*100,allsize); + } + if(everyList.size()>0){ + sapBomMapper.addSupplierBatchs(everyList); + } + } + + System.out.println("供应商新增成功条数:"+ allsize); + } } @@ -347,22 +362,32 @@ public class SapWorkCenterServiceImpl implements SapWorkCenterService { for(String exsitCode:exsitCodes){ updates = dtos.stream().filter(dto -> dto.getKunnr().equals(exsitCode)).collect(Collectors.toList()); } - if(CollectionUtils.isEmpty(updates)){ + if(!CollectionUtils.isEmpty(updates)){ int m = sapBomMapper.updateCustomBatchs(updates); System.out.println("客户更新成功条数:"+m); } List adds = new ArrayList<>(); for(String noExsitCode:noExsitCodes){ - adds = dtos.stream().filter(dto -> dto.getKunnr().equals(noExsitCode)).collect(Collectors.toList()); + List adds0 = dtos.stream().filter(dto -> dto.getKunnr().equals(noExsitCode)).collect(Collectors.toList()); + adds.addAll(adds0); } - if(CollectionUtils.isEmpty(adds)){ - //工厂parentId - /*String parentId = sapBomMapper.getParentId(adds.get(0).getBukrs()); - adds.stream().forEach(e->{ - e.setParentId(parentId); - });*/ - int n = sapBomMapper.addCustomBatchs(adds); - System.out.println("客户新增成功条数:"+ n); + if(!CollectionUtils.isEmpty(adds)){ + + int allsize = adds.size(); + int inserttimes = allsize/100+1; + for(int m=0;m everyList; + if(m<(inserttimes-1)){ + everyList = adds.subList(m*100,(m+1)*100); + }else{ + everyList = adds.subList(m*100,allsize); + } + if(everyList.size()>0){ + sapBomMapper.addCustomBatchs(everyList); + } + } + + System.out.println("客户新增成功条数:"+ allsize); } } diff --git a/op-modules/op-sap/src/main/resources/mapper/sap/SapBomMapper.xml b/op-modules/op-sap/src/main/resources/mapper/sap/SapBomMapper.xml index c4064a9c..775b2c4a 100644 --- a/op-modules/op-sap/src/main/resources/mapper/sap/SapBomMapper.xml +++ b/op-modules/op-sap/src/main/resources/mapper/sap/SapBomMapper.xml @@ -77,8 +77,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - + insert into base_bom bom_bo, @@ -284,7 +287,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" set zh_desc = #{item.name1}, contact_phone = #{item.telf1}, - address = #{item.stars}, + address = #{item.stras}, factory_code = #{item.bukrs} where supplier_code = #{item.lifnr} @@ -299,7 +302,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_time) VALUES - (#{item.lifnr},#{item.name1},#{item.telf1},#{item.stars},#{item.bukrs} + (#{item.lifnr},#{item.name1},#{item.telf1},#{item.stras},#{item.bukrs}, 'job', #{item.erdat}, #{item.erdat}) @@ -312,7 +315,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" set client_name = #{item.name1}, contact1_tel = #{item.telf1}, - address = #{item.stars}, + address = #{item.stras}, factory_code = #{item.bukrs} where client_code = #{item.kunnr} @@ -321,13 +324,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" insert into sys_customer - (client_code,client_name,contact1_tel,address,factory_code, + (client_id,client_code,client_name,contact1_tel,address,factory_code, create_by, create_time, update_time) VALUES - (#{item.kunnr},#{item.name1},#{item.telf1},#{item.stars},#{item.bukrs}, + (#{item.kunnr},#{item.kunnr},#{item.name1},#{item.telf1},#{item.stras},#{item.bukrs}, 'job', #{item.erdat}, #{item.erdat})