|
@@ -8,6 +8,7 @@ import com.galaxis.capsule.dto.PageDTO;
|
|
|
import com.galaxis.manatee.constant.ChuanYunConstant;
|
|
|
import com.galaxis.manatee.dao.*;
|
|
|
import com.galaxis.manatee.entity.chuanyun.data.object.*;
|
|
|
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunProjectCashFlowDTO;
|
|
|
import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunPurCostDTO;
|
|
|
import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
|
|
|
import com.galaxis.manatee.entity.chuanyun.dto.Filter;
|
|
@@ -98,6 +99,7 @@ public class ChuanyunBasicDataScheduledTask {
|
|
|
@Scheduled(fixedDelay = 3600000L)
|
|
|
private void getDataFromChuanyun() {
|
|
|
// savePurCost();
|
|
|
+ saveCashFlow();
|
|
|
//专项费用分摊
|
|
|
getSpecialProcedure();
|
|
|
//获取人员-归属公司信息
|
|
@@ -319,6 +321,63 @@ public class ChuanyunBasicDataScheduledTask {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 更新项目收付款
|
|
|
+ */
|
|
|
+ private void saveCashFlow() {
|
|
|
+ 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));
|
|
|
+ //获取收付款
|
|
|
+ PageDTO<ChuanyunProjectCashFlowDTO> pageInfo = clawFeign.findChuanyunProjectCashFlow(map);
|
|
|
+ if (page<=pageInfo.getTotalPages()){
|
|
|
+ page += 1;
|
|
|
+ }else {
|
|
|
+ flag = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ List<ChuanyunProjectCashFlowDTO> list = pageInfo.getContent();
|
|
|
+ list.forEach(chuanyunProjectCashFlowDTO -> {
|
|
|
+ try {
|
|
|
+ if(chuanyunProjectCashFlowDTO != null) {
|
|
|
+ CashFlowDTO cashFlowDTO = new CashFlowDTO(chuanyunProjectCashFlowDTO);
|
|
|
+ var purcostString=objectMapper.writeValueAsString(cashFlowDTO);
|
|
|
+ ChuanyunSaveDTO chuanyunSaveDTO;
|
|
|
+ //根据项目号判断是否存在
|
|
|
+ List<String> macthers = new ArrayList<>();
|
|
|
+ macthers.add("F0000001_2,"+chuanyunProjectCashFlowDTO.getProjectcode());
|
|
|
+ var filter= Filter.instance(0,1,true,"And",macthers);
|
|
|
+ var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunProjectCashFlowDO.SCHEMA_CODE,filter);
|
|
|
+ if (chuanyunFindAllResponse.getReturnData() == null) {
|
|
|
+ //新增
|
|
|
+ chuanyunSaveDTO =chuanYunManager.save(ChuanyunProjectCashFlowDO.SCHEMA_CODE,purcostString,true);
|
|
|
+ }else {
|
|
|
+ List<ChuanyunProjectCashFlowDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
+ ChuanyunProjectCashFlowDO chuanyunProjectCashFlowDO = result.get(0);
|
|
|
+ //更新
|
|
|
+ chuanyunSaveDTO = chuanYunManager.update(ChuanyunProjectCashFlowDO.SCHEMA_CODE,chuanyunProjectCashFlowDO.getObjectId(),purcostString);
|
|
|
+ }
|
|
|
+ if(chuanyunSaveDTO.getSuccessful()){
|
|
|
+ log.info("新增项目收付款成功");
|
|
|
+ }else{
|
|
|
+ log.warn("新增项目收付款失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (JsonProcessingException | BigSizeException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新项目物料成本
|
|
|
+ */
|
|
|
private void savePurCost() {
|
|
|
var objectMapper=new ObjectMapper();
|
|
|
var page = 1;
|
|
@@ -339,14 +398,29 @@ public class ChuanyunBasicDataScheduledTask {
|
|
|
List<ChuanyunPurCostDTO> list = pageInfo.getContent();
|
|
|
list.forEach(chuanyunPurCostDTO -> {
|
|
|
try {
|
|
|
- PurCostDTO purCostDTO = new PurCostDTO(chuanyunPurCostDTO);
|
|
|
- var purcostString=objectMapper.writeValueAsString(purCostDTO);
|
|
|
- ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.save(ChuanyunPurCostDO.SCHEMA_CODE,purcostString,true);
|
|
|
- if(chuanyunSaveDTO.getSuccessful()){
|
|
|
- log.info("新增项目物料成本成功");
|
|
|
-
|
|
|
- }else{
|
|
|
- log.warn("新增项目物料成本失败");
|
|
|
+ if(chuanyunPurCostDTO != null) {
|
|
|
+ PurCostDTO purCostDTO = new PurCostDTO(chuanyunPurCostDTO);
|
|
|
+ var purcostString=objectMapper.writeValueAsString(purCostDTO);
|
|
|
+ ChuanyunSaveDTO chuanyunSaveDTO;
|
|
|
+ //根据项目号判断是否存在
|
|
|
+ List<String> macthers = new ArrayList<>();
|
|
|
+ macthers.add("F0000001_2,"+chuanyunPurCostDTO.getProjectcode());
|
|
|
+ var filter= Filter.instance(0,1,true,"And",macthers);
|
|
|
+ var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunPurCostDO.SCHEMA_CODE,filter);
|
|
|
+ if (chuanyunFindAllResponse.getReturnData() == null) {
|
|
|
+ //新增
|
|
|
+ chuanyunSaveDTO =chuanYunManager.save(ChuanyunPurCostDO.SCHEMA_CODE,purcostString,true);
|
|
|
+ }else {
|
|
|
+ List<ChuanyunPurCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
+ ChuanyunPurCostDO chuanyunPurCostDO = result.get(0);
|
|
|
+ //更新
|
|
|
+ chuanyunSaveDTO = chuanYunManager.update(ChuanyunPurCostDO.SCHEMA_CODE,chuanyunPurCostDO.getObjectId(),purcostString);
|
|
|
+ }
|
|
|
+ if(chuanyunSaveDTO.getSuccessful()){
|
|
|
+ log.info("新增项目物料成本成功");
|
|
|
+ }else{
|
|
|
+ log.warn("新增项目物料成本失败");
|
|
|
+ }
|
|
|
}
|
|
|
} catch (JsonProcessingException | BigSizeException e) {
|
|
|
e.printStackTrace();
|
|
@@ -743,12 +817,14 @@ public class ChuanyunBasicDataScheduledTask {
|
|
|
log.info("报销科目信息保存保存"+totalCount);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 同步集团总表(手动更新调用)
|
|
|
+ */
|
|
|
private void getGroupProjectForSynchronization(){
|
|
|
var objectMapper=new ObjectMapper();
|
|
|
var start=0;
|
|
|
var totalCount=0L;
|
|
|
var flag=true;
|
|
|
-
|
|
|
while (flag){
|
|
|
try {
|
|
|
//从氚云查询数据
|
|
@@ -834,6 +910,39 @@ public class ChuanyunBasicDataScheduledTask {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ @Data
|
|
|
+ class CashFlowDTO {
|
|
|
+ @JsonProperty("F0000001")
|
|
|
+ private String projectcode;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 收款金额
|
|
|
+ */
|
|
|
+ @JsonProperty("F0000002")
|
|
|
+ private BigDecimal income;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 付款金额
|
|
|
+ */
|
|
|
+ @JsonProperty("F0000003")
|
|
|
+ private BigDecimal outcome;
|
|
|
+
|
|
|
+ public CashFlowDTO(ChuanyunProjectCashFlowDTO chuanyunProjectCashFlowDTO) {
|
|
|
+ if (null!=chuanyunProjectCashFlowDTO) {
|
|
|
+ if (null!=chuanyunProjectCashFlowDTO.getProjectcode()) {
|
|
|
+ this.projectcode=chuanyunProjectCashFlowDTO.getProjectcode();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunProjectCashFlowDTO.getOutcome()) {
|
|
|
+ this.outcome=chuanyunProjectCashFlowDTO.getOutcome();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunProjectCashFlowDTO.getIncome()) {
|
|
|
+ this.income=chuanyunProjectCashFlowDTO.getIncome();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Data
|
|
|
class PurCostDTO {
|
|
|
@JsonProperty("F0000001")
|