|
@@ -105,7 +105,6 @@ public class ChuanyunBasicDataScheduledTask {
|
|
|
*/
|
|
|
@Scheduled(fixedDelay = 3600000L)
|
|
|
private void getDataFromChuanyun() {
|
|
|
- saveBudgetStatistics();
|
|
|
//钉钉请假
|
|
|
saveAskForLeave();
|
|
|
//专项费用分摊
|
|
@@ -134,7 +133,10 @@ public class ChuanyunBasicDataScheduledTask {
|
|
|
savePurCost();
|
|
|
//项目收付款
|
|
|
saveCashFlow();
|
|
|
-
|
|
|
+ //项目预决算
|
|
|
+ saveBudgetStatistics();
|
|
|
+ //新增供应商信息
|
|
|
+ saveSupplier();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -360,6 +362,9 @@ public class ChuanyunBasicDataScheduledTask {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 更新项目预决算统计
|
|
|
+ */
|
|
|
private void saveBudgetStatistics() {
|
|
|
List<ChuanyunBudgetStatisticsDO> list = chuanyunBudgetStatisticsDao.getTotalByProject();
|
|
|
list.forEach(chuanyunBudgetStatisticsDO -> {
|
|
@@ -439,6 +444,53 @@ public class ChuanyunBasicDataScheduledTask {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ private void saveSupplier() {
|
|
|
+ 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<ChuanyunSupplierDTO> pageInfo=clawFeign.findChuanyunSupplier(map);
|
|
|
+ if (page<=pageInfo.getTotalPages()){
|
|
|
+ page += 1;
|
|
|
+ }else {
|
|
|
+ flag = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ List<ChuanyunSupplierDTO> list = pageInfo.getContent();
|
|
|
+ list.forEach(chuanyunSupplierDTO -> {
|
|
|
+ SupplierDTO supplierDTO = new SupplierDTO(chuanyunSupplierDTO);
|
|
|
+ try {
|
|
|
+ var supplierString = objectMapper.writeValueAsString(supplierDTO);
|
|
|
+ ChuanyunSaveDTO chuanyunSaveDTO;
|
|
|
+ //根据编码判断供应商是否存在
|
|
|
+ List<String> macthers = new ArrayList<>();
|
|
|
+ macthers.add("F0000002_2,"+chuanyunSupplierDTO.getCode());
|
|
|
+ var filter= Filter.instance(0,1,true,"And",macthers);
|
|
|
+ var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunSupplierDO.SCHEMA_CODE,filter);
|
|
|
+ if (chuanyunFindAllResponse.getReturnData() == null) {
|
|
|
+ chuanyunSaveDTO=chuanYunManager.save(ChuanyunSupplierDO.SCHEMA_CODE,supplierString,true);
|
|
|
+ }else {
|
|
|
+ List<ChuanyunSupplierDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
+ chuanyunSaveDTO=chuanYunManager.update(ChuanyunSupplierDO.SCHEMA_CODE,result.get(0).getObjectId(),supplierString);
|
|
|
+ }
|
|
|
+ if(chuanyunSaveDTO.getSuccessful()){
|
|
|
+ log.info("新增供应商信息成功");
|
|
|
+ }else{
|
|
|
+ log.warn("新增供应商信息失败");
|
|
|
+ }
|
|
|
+ } catch (JsonProcessingException | BigSizeException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 更新项目物料成本
|
|
|
*/
|
|
@@ -1122,6 +1174,32 @@ public class ChuanyunBasicDataScheduledTask {
|
|
|
}
|
|
|
|
|
|
@Data
|
|
|
+ class SupplierDTO{
|
|
|
+ /**
|
|
|
+ * 供应商名称
|
|
|
+ */
|
|
|
+ @JsonProperty("F0000001")
|
|
|
+ private String supplierName;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * U9代码
|
|
|
+ */
|
|
|
+ @JsonProperty("F0000002")
|
|
|
+ private String supplierCode;
|
|
|
+
|
|
|
+ public SupplierDTO(ChuanyunSupplierDTO chuanyunSupplierDTO) {
|
|
|
+ if (null!=chuanyunSupplierDTO){
|
|
|
+ if (null!=chuanyunSupplierDTO.getCode()){
|
|
|
+ this.supplierCode=chuanyunSupplierDTO.getCode();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunSupplierDTO.getName()){
|
|
|
+ this.supplierName=chuanyunSupplierDTO.getName();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Data
|
|
|
class PurCostDTO {
|
|
|
@JsonProperty("F0000001")
|
|
|
private String projectcode;
|