|
@@ -4,10 +4,6 @@ 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.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
|
|
|
|
-import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
|
|
|
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.*;
|
|
@@ -16,23 +12,16 @@ 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 com.mysql.cj.x.protobuf.MysqlxExpr;
|
|
|
|
import lombok.Data;
|
|
import lombok.Data;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
-import org.springframework.format.annotation.DateTimeFormat;
|
|
|
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.util.StringUtils;
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.HashMap;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @author zcj
|
|
* @author zcj
|
|
@@ -103,11 +92,13 @@ public class ChuanyunBasicDataScheduledTask {
|
|
/**
|
|
/**
|
|
* 定时将氚云中的数据保存到manatee
|
|
* 定时将氚云中的数据保存到manatee
|
|
*/
|
|
*/
|
|
- @Scheduled(fixedDelay = 3600L)
|
|
|
|
|
|
+ @Scheduled(fixedDelay = 3600000L)
|
|
private void getDataFromChuanyun() {
|
|
private void getDataFromChuanyun() {
|
|
|
|
+
|
|
//项目人力成本
|
|
//项目人力成本
|
|
saveLaborCost();
|
|
saveLaborCost();
|
|
-// saveAskForLeave();
|
|
|
|
|
|
+ //钉钉请假
|
|
|
|
+ saveAskForLeave();
|
|
//专项费用分摊
|
|
//专项费用分摊
|
|
getSpecialProcedure();
|
|
getSpecialProcedure();
|
|
//获取人员-归属公司信息
|
|
//获取人员-归属公司信息
|
|
@@ -118,14 +109,14 @@ public class ChuanyunBasicDataScheduledTask {
|
|
getCostCollection();
|
|
getCostCollection();
|
|
//获取集团项目数据
|
|
//获取集团项目数据
|
|
getGroupProject();
|
|
getGroupProject();
|
|
|
|
+ //获取用户数据
|
|
|
|
+ getUserList();
|
|
//支出档案类型
|
|
//支出档案类型
|
|
getProjectType();
|
|
getProjectType();
|
|
//获取报销科目
|
|
//获取报销科目
|
|
getReimbursementSubject();
|
|
getReimbursementSubject();
|
|
//获取成本中心
|
|
//获取成本中心
|
|
getCost();
|
|
getCost();
|
|
- //获取用户数据
|
|
|
|
- getUserList();
|
|
|
|
//获取公司信息
|
|
//获取公司信息
|
|
getCompany();
|
|
getCompany();
|
|
//获取供应商
|
|
//获取供应商
|
|
@@ -391,41 +382,37 @@ public class ChuanyunBasicDataScheduledTask {
|
|
*/
|
|
*/
|
|
private void saveAskForLeave() {
|
|
private void saveAskForLeave() {
|
|
var objectMapper = new ObjectMapper();
|
|
var objectMapper = new ObjectMapper();
|
|
- var page = 1;
|
|
|
|
- var size = 20;
|
|
|
|
- var flag = true;
|
|
|
|
- while (flag) {
|
|
|
|
- Map<String,String> map = new HashMap<>(1);
|
|
|
|
- map.put("page",String.valueOf(page));
|
|
|
|
- map.put("size",String.valueOf(size));
|
|
|
|
- //获取请假的信息
|
|
|
|
- List<ChuanyunAskForLeaveDo> askForLeaveList = chuanyunAskForLeaveDao.findAllAskForLeave();
|
|
|
|
- askForLeaveList.forEach(askForLeave -> {
|
|
|
|
- try {
|
|
|
|
- var purcostString = objectMapper.writeValueAsString(askForLeave);
|
|
|
|
- ChuanyunSaveDTO chuanyunSaveDTO;
|
|
|
|
- //根据项目号判断是否存在
|
|
|
|
- List<String> macthers = new ArrayList<>();
|
|
|
|
- macthers.add("F0000001_2,"+askForLeave.getTitle());
|
|
|
|
- var filter= Filter.instance(0,1,true,"And",macthers);
|
|
|
|
- var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunAskForLeaveDo.SCHEMA_CODE,filter);
|
|
|
|
- if (chuanyunFindAllResponse.getReturnData() == null) {
|
|
|
|
- //新增
|
|
|
|
- chuanyunSaveDTO =chuanYunManager.save(ChuanyunAskForLeaveDo.SCHEMA_CODE,purcostString,true);
|
|
|
|
- }else {
|
|
|
|
- //更新
|
|
|
|
- chuanyunSaveDTO = chuanYunManager.update(ChuanyunAskForLeaveDo.SCHEMA_CODE,askForLeave.getObjectId(),purcostString);
|
|
|
|
- }
|
|
|
|
- if(chuanyunSaveDTO.getSuccessful()){
|
|
|
|
|
|
+ //获取请假的信息
|
|
|
|
+ List<ChuanyunAskForLeaveDO> askForLeaveList = chuanyunAskForLeaveDao.findAll();
|
|
|
|
+ askForLeaveList.forEach(askForLeave -> {
|
|
|
|
+ try {
|
|
|
|
+ //根据钉钉号获取氚云用户Id
|
|
|
|
+ ChuanyunUserDO chuanyunUserDO=chuanyunUserDao.findByDingTalkAccountContaining(askForLeave.getOriginatorUserid());
|
|
|
|
+ askForLeave.setAskForLeaveUserId(chuanyunUserDO.getObjectId());
|
|
|
|
+ //根据dingTalkUserId获取chuanyunUser
|
|
|
|
+ var purcostString = objectMapper.writeValueAsString(AskForLeaveDTO.fromChuanyunAskForLeaveDO(askForLeave));
|
|
|
|
+ ChuanyunSaveDTO chuanyunSaveDTO;
|
|
|
|
+ //根据项目号判断是否存在
|
|
|
|
+ List<String> matchers = new ArrayList<>();
|
|
|
|
+ matchers.add("F0000001_2,"+askForLeave.getTitle());
|
|
|
|
+ var filter= Filter.instance(0,1,true,"And",matchers);
|
|
|
|
+ ChuanyunFindAllBizDTO<LinkedHashMap<String,String>> chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunAskForLeaveDO.SCHEMA_CODE,filter);
|
|
|
|
+ if (chuanyunFindAllResponse.getReturnData() == null) {
|
|
|
|
+ //新增
|
|
|
|
+ chuanyunSaveDTO =chuanYunManager.save(ChuanyunAskForLeaveDO.SCHEMA_CODE,purcostString,true);
|
|
|
|
+ }else {
|
|
|
|
+ //更新
|
|
|
|
+ chuanyunSaveDTO = chuanYunManager.update(ChuanyunAskForLeaveDO.SCHEMA_CODE,chuanyunFindAllResponse.getReturnData().getBizObjectArray().get(0).get("ObjectId"),purcostString);
|
|
|
|
+ }
|
|
|
|
+ if(chuanyunSaveDTO.getSuccessful()){
|
|
// log.info("新增请假信息成功");
|
|
// log.info("新增请假信息成功");
|
|
- }else{
|
|
|
|
- log.warn("新增请假信息失败");
|
|
|
|
- }
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
|
+ }else{
|
|
|
|
+ log.warn("新增请假信息失败");
|
|
}
|
|
}
|
|
- });
|
|
|
|
- }
|
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ });
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -1199,4 +1186,65 @@ public class ChuanyunBasicDataScheduledTask {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Data
|
|
|
|
+ static class AskForLeaveDTO{
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 标题
|
|
|
|
+ */
|
|
|
|
+ @JsonProperty("F0000001")
|
|
|
|
+ private String title;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 发起人姓名
|
|
|
|
+ */
|
|
|
|
+ @JsonProperty("F0000007")
|
|
|
|
+ private String originatorUserName;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 发起部门
|
|
|
|
+ */
|
|
|
|
+ @JsonProperty("F0000002")
|
|
|
|
+ private String originatorDeptName;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 请假事由
|
|
|
|
+ */
|
|
|
|
+ @JsonProperty("F0000005")
|
|
|
|
+ private String leaveType;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 劳动合同所属公司
|
|
|
|
+ */
|
|
|
|
+ @JsonProperty("F0000004")
|
|
|
|
+ private String contractOwnerLtd;
|
|
|
|
+
|
|
|
|
+ @JsonProperty("F0000006")
|
|
|
|
+ private String result;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 请假开始时间
|
|
|
|
+ */
|
|
|
|
+ @JsonProperty("F0000016")
|
|
|
|
+ private String startTime;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 请假时长
|
|
|
|
+ */
|
|
|
|
+ @JsonProperty("F0000017")
|
|
|
|
+ private BigDecimal totalDay;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 请假人Id
|
|
|
|
+ */
|
|
|
|
+ @JsonProperty("F0000018")
|
|
|
|
+ private String askForLeaveUserId;
|
|
|
|
+
|
|
|
|
+ public static AskForLeaveDTO fromChuanyunAskForLeaveDO(ChuanyunAskForLeaveDO chuanyunAskForLeaveDO) {
|
|
|
|
+ AskForLeaveDTO askForLeaveDTO=new AskForLeaveDTO();
|
|
|
|
+ BeanUtils.copyProperties(chuanyunAskForLeaveDO,askForLeaveDTO);
|
|
|
|
+ return askForLeaveDTO;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|