|
@@ -82,16 +82,17 @@ public class ChuanyunScheduledTask {
|
|
|
Map<String,String> parameters=new HashMap<>(2);
|
|
|
parameters.put("page", Integer.toString(page));
|
|
|
parameters.put("size", Integer.toString(size));
|
|
|
- List<ChuanyunMaterialDO> toSave=new ArrayList<>();
|
|
|
+
|
|
|
while (page<=totalPage){
|
|
|
+ List<ChuanyunMaterialDO> toSave=new ArrayList<>();
|
|
|
//获取U9中的物料数据
|
|
|
Page<MaterialDTO> result=clawFeign.findMaterialPageable(parameters);
|
|
|
totalPage=result.getTotalPages();
|
|
|
List<ChuanyunMaterialDO> chuanyunMaterialList=new ArrayList<>();
|
|
|
//遍历获取的数据,如果系统中已经存在就不进行保存
|
|
|
result.getContent().forEach(materialDTO -> {
|
|
|
- Optional<ChuanyunMaterialDO> optionalChuanyunMaterialDO=chuanyunMaterialDao.findByCode(materialDTO.getCode());
|
|
|
- if (!optionalChuanyunMaterialDO.isPresent()){
|
|
|
+ Optional<ChuanyunMaterialDO> optionalChuanyunMaterialDO=chuanyunMaterialDao.findByCodeAndVersion(materialDTO.getCode(),materialDTO.getVersion());
|
|
|
+ if (optionalChuanyunMaterialDO.isEmpty()){
|
|
|
ChuanyunMaterialDO chuanyunMaterialDO=ChuanyunMaterialDO.fromMaterialDTO(materialDTO);
|
|
|
chuanyunMaterialList.add(chuanyunMaterialDO);
|
|
|
toSave.add(chuanyunMaterialDO);
|
|
@@ -100,9 +101,20 @@ public class ChuanyunScheduledTask {
|
|
|
chuanyunMaterialDao.saveAll(chuanyunMaterialList);
|
|
|
totalAmount+=chuanyunMaterialList.size();
|
|
|
page++;
|
|
|
+ parameters.put("page",Integer.toString(page));
|
|
|
+ log.info("共"+totalPage+"页,当前第"+page+"页,更新了"+chuanyunMaterialList.size()+"条数据");
|
|
|
+ //将更新的的物料信息同步到氚云
|
|
|
+ putMaterialToChuanyun(toSave);
|
|
|
}
|
|
|
log.info("更新U9物料数据结束,共更新数据"+totalAmount);
|
|
|
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 用于将需要更新的数据同步到氚云
|
|
|
+ * @param toSave 待保存的数据集合
|
|
|
+ */
|
|
|
+ private void putMaterialToChuanyun(List<ChuanyunMaterialDO> toSave){
|
|
|
ObjectMapper objectMapper=new ObjectMapper();
|
|
|
List<String> toSaveString=new ArrayList<>();
|
|
|
toSave.forEach(chuanyunMaterialDO -> {
|
|
@@ -115,12 +127,13 @@ public class ChuanyunScheduledTask {
|
|
|
});
|
|
|
//将新增加的数据更新到氚云
|
|
|
chuanYunManager.saveAll(ChuanyunMaterialDO.SCHEMA_CODE,toSaveString,true);
|
|
|
+ log.info("物料信息更新到氚云"+toSave.size());
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 定时将物料信息从氚云中同步
|
|
|
*/
|
|
|
- @Scheduled(fixedDelay = 86400000L)
|
|
|
+ @Scheduled(fixedDelay = 86400000L,initialDelay = 43200000L)
|
|
|
private void getMaterialFromChuanyun(){
|
|
|
var pageSize=100;
|
|
|
var start=0;
|
|
@@ -146,6 +159,7 @@ public class ChuanyunScheduledTask {
|
|
|
//保存
|
|
|
result.removeIf(chuanyunMaterialDO -> chuanyunMaterialDao.findById(chuanyunMaterialDO.getObjectId()).isPresent());
|
|
|
chuanyunMaterialDao.saveAll(result);
|
|
|
+ log.info("保存物料信息"+result.size());
|
|
|
totalCount+=result.size();
|
|
|
}catch (Exception e){
|
|
|
log.error(e.getMessage());
|
|
@@ -167,7 +181,7 @@ public class ChuanyunScheduledTask {
|
|
|
*/
|
|
|
@Scheduled(fixedDelay = 600000L,initialDelay = 10000L)
|
|
|
private void putDataToClaw(){
|
|
|
- putProjectToClaw();
|
|
|
+// putProjectToClaw();
|
|
|
}
|
|
|
|
|
|
/**
|