|
@@ -0,0 +1,92 @@
|
|
|
|
+package com.galaxis.manatee.service.impl;
|
|
|
|
+
|
|
|
|
+import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
|
+import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
+import com.galaxis.manatee.dao.ChuanyunGroupProjectDao;
|
|
|
|
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunGroupProjectDO;
|
|
|
|
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
|
|
|
|
+import com.galaxis.manatee.entity.chuanyun.dto.Filter;
|
|
|
|
+import com.galaxis.manatee.exception.BigSizeException;
|
|
|
|
+import com.galaxis.manatee.manager.ChuanYunManager;
|
|
|
|
+import com.galaxis.manatee.service.ChuanyunService;
|
|
|
|
+import com.galaxis.manatee.task.ChuanyunBasicDataScheduledTask;
|
|
|
|
+import com.galaxis.manatee.task.ChuanyunHumanResourceScheduledTask;
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
|
|
+@Slf4j
|
|
|
|
+@Service
|
|
|
|
+public class ChuanyunServiceImpl implements ChuanyunService {
|
|
|
|
+
|
|
|
|
+ private final Integer pageSize=20;
|
|
|
|
+ private final ChuanyunHumanResourceScheduledTask chuanyunHumanResourceScheduledTask;
|
|
|
|
+ private final ChuanyunBasicDataScheduledTask chuanyunBasicDataScheduledTask;
|
|
|
|
+ private final ChuanYunManager chuanYunManager;
|
|
|
|
+ private final ChuanyunGroupProjectDao chuanyunGroupProjectDao;
|
|
|
|
+
|
|
|
|
+ public ChuanyunServiceImpl(ChuanyunHumanResourceScheduledTask chuanyunHumanResourceScheduledTask, ChuanyunBasicDataScheduledTask chuanyunBasicDataScheduledTask, ChuanYunManager chuanYunManager, ChuanyunGroupProjectDao chuanyunGroupProjectDao) {
|
|
|
|
+ this.chuanyunHumanResourceScheduledTask = chuanyunHumanResourceScheduledTask;
|
|
|
|
+ this.chuanyunBasicDataScheduledTask = chuanyunBasicDataScheduledTask;
|
|
|
|
+ this.chuanYunManager = chuanYunManager;
|
|
|
|
+ this.chuanyunGroupProjectDao = chuanyunGroupProjectDao;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void updateProjectMember() {
|
|
|
|
+ var objectMapper=new ObjectMapper();
|
|
|
|
+ var start=0;
|
|
|
|
+ var totalCount=0L;
|
|
|
|
+ var flag=true;
|
|
|
|
+ while (flag){
|
|
|
|
+ try {
|
|
|
|
+ //从氚云查询数据
|
|
|
|
+ var filter= Filter.instance(start,start+pageSize,true);
|
|
|
|
+ var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunGroupProjectDO.SCHEMA_CODE,filter);
|
|
|
|
+ if(chuanyunFindAllResponse.getReturnData()==null){
|
|
|
|
+ flag=false;
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if(chuanyunFindAllResponse.getReturnData().getTotalCount()>=start+pageSize){
|
|
|
|
+ start+=pageSize;
|
|
|
|
+ }else{
|
|
|
|
+ flag=false;
|
|
|
|
+ }
|
|
|
|
+ //转化为POJO
|
|
|
|
+ List<ChuanyunGroupProjectDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
|
+ //获取项目总数
|
|
|
|
+ totalCount=chuanyunFindAllResponse.getReturnData().getTotalCount();
|
|
|
|
+ //保存
|
|
|
|
+ result.forEach(chuanyunGroupProjectDO -> {
|
|
|
|
+
|
|
|
|
+ //处理项目对象中的项目成员数据(改为手动调用处理)
|
|
|
|
+ chuanyunBasicDataScheduledTask.projectMemberCheck(chuanyunGroupProjectDO);
|
|
|
|
+ try {
|
|
|
|
+ ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.update(ChuanyunGroupProjectDO.SCHEMA_CODE,chuanyunGroupProjectDO.getObjectId(),objectMapper.writeValueAsString(chuanyunGroupProjectDO));
|
|
|
|
+ if(chuanyunSaveDTO.getSuccessful()){
|
|
|
|
+ log.info(chuanyunGroupProjectDO.getObjectId()+"更新项目经理成功");
|
|
|
|
+
|
|
|
|
+ }else{
|
|
|
|
+ log.warn(chuanyunGroupProjectDO.getObjectId()+"更新项目经理失败");
|
|
|
|
+ log.warn(chuanyunGroupProjectDO+"");
|
|
|
|
+ Thread.sleep(5000L);
|
|
|
|
+ }
|
|
|
|
+ } catch (BigSizeException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ } catch (JsonProcessingException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ } catch (InterruptedException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ });
|
|
|
|
+ chuanyunGroupProjectDao.saveAll(result);
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ log.error(e.getMessage());
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|