|
@@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
|
|
|
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
|
import com.galaxis.capsule.dto.PageDTO;
|
|
import com.galaxis.capsule.dto.PageDTO;
|
|
import com.galaxis.manatee.constant.ChuanYunConstant;
|
|
import com.galaxis.manatee.constant.ChuanYunConstant;
|
|
import com.galaxis.manatee.dao.*;
|
|
import com.galaxis.manatee.dao.*;
|
|
@@ -12,6 +14,8 @@ import com.galaxis.manatee.entity.chuanyun.dto.*;
|
|
import com.galaxis.manatee.exception.BigSizeException;
|
|
import com.galaxis.manatee.exception.BigSizeException;
|
|
import com.galaxis.manatee.manager.ChuanYunManager;
|
|
import com.galaxis.manatee.manager.ChuanYunManager;
|
|
import com.galaxis.manatee.manager.ClawFeign;
|
|
import com.galaxis.manatee.manager.ClawFeign;
|
|
|
|
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
|
|
|
|
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
|
|
import lombok.Data;
|
|
import lombok.Data;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
@@ -94,14 +98,13 @@ public class ChuanyunBasicDataScheduledTask {
|
|
public void getCostCollectionManually() {this.getCostCollection();}
|
|
public void getCostCollectionManually() {this.getCostCollection();}
|
|
|
|
|
|
public void getGroupProjectForSynchronizationManually() {this.getGroupProjectForSynchronization();}
|
|
public void getGroupProjectForSynchronizationManually() {this.getGroupProjectForSynchronization();}
|
|
|
|
+
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 定时将氚云中的数据保存到manatee
|
|
* 定时将氚云中的数据保存到manatee
|
|
*/
|
|
*/
|
|
@Scheduled(fixedDelay = 3600000L)
|
|
@Scheduled(fixedDelay = 3600000L)
|
|
private void getDataFromChuanyun() {
|
|
private void getDataFromChuanyun() {
|
|
-
|
|
|
|
- //项目人力成本
|
|
|
|
- saveLaborCost();
|
|
|
|
//钉钉请假
|
|
//钉钉请假
|
|
saveAskForLeave();
|
|
saveAskForLeave();
|
|
//专项费用分摊
|
|
//专项费用分摊
|
|
@@ -127,9 +130,9 @@ public class ChuanyunBasicDataScheduledTask {
|
|
//获取供应商
|
|
//获取供应商
|
|
getSupplier();
|
|
getSupplier();
|
|
//项目物料成本
|
|
//项目物料成本
|
|
- savePurCost();
|
|
|
|
|
|
+// savePurCost();
|
|
//项目收付款
|
|
//项目收付款
|
|
- saveCashFlow();
|
|
|
|
|
|
+// saveCashFlow();
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -198,8 +201,6 @@ public class ChuanyunBasicDataScheduledTask {
|
|
chuanyunGroupProjectDO.setIsCreate(projectDO.getIsCreate());
|
|
chuanyunGroupProjectDO.setIsCreate(projectDO.getIsCreate());
|
|
chuanyunGroupProjectDao.delete(tmpGroupProjectDO.get());
|
|
chuanyunGroupProjectDao.delete(tmpGroupProjectDO.get());
|
|
});
|
|
});
|
|
-
|
|
|
|
-// updateProjectDetail(chuanyunGroupProjectDO);
|
|
|
|
//处理项目对象中的项目成员数据
|
|
//处理项目对象中的项目成员数据
|
|
projectMemberListCheck(chuanyunGroupProjectDO);
|
|
projectMemberListCheck(chuanyunGroupProjectDO);
|
|
//处理项目对象中的项目经理、项目负责人数据
|
|
//处理项目对象中的项目经理、项目负责人数据
|
|
@@ -214,30 +215,6 @@ public class ChuanyunBasicDataScheduledTask {
|
|
log.info("集团项目信息保存保存"+totalCount+"项目映射更新完成");
|
|
log.info("集团项目信息保存保存"+totalCount+"项目映射更新完成");
|
|
}
|
|
}
|
|
|
|
|
|
- private void updateProjectDetail(ChuanyunGroupProjectDO chuanyunGroupProjectDO){
|
|
|
|
- var objectMapper=new ObjectMapper();
|
|
|
|
- List<ChuanyunGroupProjectDetailDO> list = new ArrayList<>();
|
|
|
|
- if (chuanyunGroupProjectDO.getDetailList()!=null&&chuanyunGroupProjectDO.getDetailList().size()>0) {
|
|
|
|
- for (ChuanyunGroupProjectDetailDO chuanyunGroupProjectDetailDO : chuanyunGroupProjectDO.getDetailList()) {
|
|
|
|
- if (!chuanyunGroupProjectDO.getProjectType().equals(chuanyunGroupProjectDetailDO.getType())) {
|
|
|
|
- list.add(chuanyunGroupProjectDetailDO);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- chuanyunGroupProjectDO.setDetailList(list);
|
|
|
|
- var groupProjectDetailDTO = new GroupProjectDetailDTO(chuanyunGroupProjectDO);
|
|
|
|
- String groupProjectUpdateString= null;
|
|
|
|
- try {
|
|
|
|
- groupProjectUpdateString = objectMapper.writeValueAsString(groupProjectDetailDTO);
|
|
|
|
- ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.update(ChuanyunGroupProjectDO.SCHEMA_CODE,chuanyunGroupProjectDO.getObjectId(),groupProjectUpdateString);
|
|
|
|
- if (!chuanyunSaveDTO.getSuccessful()) {
|
|
|
|
- log.info(chuanyunGroupProjectDO.getObjectId()+"更新项目组织信息失败"+groupProjectUpdateString);
|
|
|
|
- }
|
|
|
|
- } catch (JsonProcessingException | BigSizeException e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
/**
|
|
/**
|
|
* 更新项目成员方法
|
|
* 更新项目成员方法
|
|
* @param chuanyunGroupProjectDO 项目对象
|
|
* @param chuanyunGroupProjectDO 项目对象
|
|
@@ -477,6 +454,7 @@ public class ChuanyunBasicDataScheduledTask {
|
|
/**
|
|
/**
|
|
* 新增人力成本
|
|
* 新增人力成本
|
|
*/
|
|
*/
|
|
|
|
+ @Scheduled(fixedDelay = 7200000L)
|
|
private void saveLaborCost() {
|
|
private void saveLaborCost() {
|
|
var objectMapper=new ObjectMapper();
|
|
var objectMapper=new ObjectMapper();
|
|
var page = 1;
|
|
var page = 1;
|
|
@@ -498,27 +476,31 @@ public class ChuanyunBasicDataScheduledTask {
|
|
list.forEach(chuanyunLaborCostDTO -> {
|
|
list.forEach(chuanyunLaborCostDTO -> {
|
|
try {
|
|
try {
|
|
if(chuanyunLaborCostDTO != null) {
|
|
if(chuanyunLaborCostDTO != null) {
|
|
|
|
+ DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
|
|
|
|
+ String newDate = dateTimeFormatter.format(chuanyunLaborCostDTO.getChuanyunLaborCostPrimaryKey().getPeriod());
|
|
|
|
+ LocalDateTime dt = LocalDateTime.parse(newDate,dateTimeFormatter);
|
|
|
|
+ chuanyunLaborCostDTO.getChuanyunLaborCostPrimaryKey().setPeriod(dt);
|
|
LaborCostDTO laborCostDTO = new LaborCostDTO(chuanyunLaborCostDTO);
|
|
LaborCostDTO laborCostDTO = new LaborCostDTO(chuanyunLaborCostDTO);
|
|
laborCostDTO.setDataType("U9");
|
|
laborCostDTO.setDataType("U9");
|
|
var purcostString=objectMapper.writeValueAsString(laborCostDTO);
|
|
var purcostString=objectMapper.writeValueAsString(laborCostDTO);
|
|
ChuanyunSaveDTO chuanyunSaveDTO;
|
|
ChuanyunSaveDTO chuanyunSaveDTO;
|
|
//根据项目号判断是否存在
|
|
//根据项目号判断是否存在
|
|
- List<String> macthers = new ArrayList<>();
|
|
|
|
- macthers.add("F0000005_2,"+chuanyunLaborCostDTO.getChuanyunLaborCostPrimaryKey().getProjectcode());
|
|
|
|
- macthers.add("F0000002_2,"+chuanyunLaborCostDTO.getChuanyunLaborCostPrimaryKey().getPeriod());
|
|
|
|
- var filter= Filter.instance(0,1,true,"And",macthers);
|
|
|
|
|
|
+ List<String> matchers = new ArrayList<>();
|
|
|
|
+ matchers.add("F0000005_2,"+chuanyunLaborCostDTO.getChuanyunLaborCostPrimaryKey().getProjectcode());
|
|
|
|
+ matchers.add("F0000002_2,"+chuanyunLaborCostDTO.getChuanyunLaborCostPrimaryKey().getPeriod());
|
|
|
|
+ var filter= Filter.instance(0,1,true,"And",matchers);
|
|
var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunMonthLaborCostDO.SCHEMA_CODE,filter);
|
|
var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunMonthLaborCostDO.SCHEMA_CODE,filter);
|
|
if (chuanyunFindAllResponse.getReturnData() == null) {
|
|
if (chuanyunFindAllResponse.getReturnData() == null) {
|
|
//新增
|
|
//新增
|
|
chuanyunSaveDTO =chuanYunManager.save(ChuanyunMonthLaborCostDO.SCHEMA_CODE,purcostString,true);
|
|
chuanyunSaveDTO =chuanYunManager.save(ChuanyunMonthLaborCostDO.SCHEMA_CODE,purcostString,true);
|
|
}else {
|
|
}else {
|
|
List<ChuanyunMonthLaborCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
List<ChuanyunMonthLaborCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
- ChuanyunMonthLaborCostDO chuanyunMonthLaborCostDO = result.get(0);
|
|
|
|
|
|
+// ChuanyunMonthLaborCostDO chuanyunMonthLaborCostDO = result.get(0);
|
|
//更新
|
|
//更新
|
|
- chuanyunSaveDTO = chuanYunManager.update(ChuanyunMonthLaborCostDO.SCHEMA_CODE,chuanyunMonthLaborCostDO.getObjectId(),purcostString);
|
|
|
|
|
|
+ chuanyunSaveDTO = chuanYunManager.update(ChuanyunMonthLaborCostDO.SCHEMA_CODE,result.get(0).getObjectId(),purcostString);
|
|
}
|
|
}
|
|
if(chuanyunSaveDTO.getSuccessful()){
|
|
if(chuanyunSaveDTO.getSuccessful()){
|
|
- log.info("新增项目人力成本成功");
|
|
|
|
|
|
+// log.info("新增项目人力成本成功");
|
|
}else{
|
|
}else{
|
|
log.warn("新增项目人力成本失败");
|
|
log.warn("新增项目人力成本失败");
|
|
}
|
|
}
|
|
@@ -747,7 +729,7 @@ public class ChuanyunBasicDataScheduledTask {
|
|
groupProjectUpdateString = objectMapper.writeValueAsString(reimbursementItemsDTO);
|
|
groupProjectUpdateString = objectMapper.writeValueAsString(reimbursementItemsDTO);
|
|
ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.update(ChuanyunReimbursementItemsDO.SCHEMA_CODE,chuanyunReimbursementItemsDO.getObjectId(),groupProjectUpdateString);
|
|
ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.update(ChuanyunReimbursementItemsDO.SCHEMA_CODE,chuanyunReimbursementItemsDO.getObjectId(),groupProjectUpdateString);
|
|
if(chuanyunSaveDTO.getSuccessful()) {
|
|
if(chuanyunSaveDTO.getSuccessful()) {
|
|
- log.info(chuanyunReimbursementItemsDO.getObjectId() + "同步外部项目名称成功" + groupProjectUpdateString);
|
|
|
|
|
|
+// log.info(chuanyunReimbursementItemsDO.getObjectId() + "同步外部项目名称成功" + groupProjectUpdateString);
|
|
}else{
|
|
}else{
|
|
log.warn(chuanyunReimbursementItemsDO.getObjectId()+"同步外部项目名称失败"+groupProjectUpdateString);
|
|
log.warn(chuanyunReimbursementItemsDO.getObjectId()+"同步外部项目名称失败"+groupProjectUpdateString);
|
|
}
|
|
}
|
|
@@ -1086,6 +1068,8 @@ public class ChuanyunBasicDataScheduledTask {
|
|
private BigDecimal amount;
|
|
private BigDecimal amount;
|
|
|
|
|
|
@JsonProperty("F0000002")
|
|
@JsonProperty("F0000002")
|
|
|
|
+ @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
|
|
|
|
+ @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
|
|
private LocalDateTime logDate;
|
|
private LocalDateTime logDate;
|
|
|
|
|
|
@JsonProperty("F0000004")
|
|
@JsonProperty("F0000004")
|