|
@@ -41,9 +41,10 @@ public class U9InfoTask {
|
|
|
private final ChuanyunClientDao chuanyunClientDao;
|
|
|
private final ChuanyunUserDao chuanyunUserDao;
|
|
|
private final ChuanyunOutDepartmentDao chuanyunOutDepartmentDao;
|
|
|
+ private final ChuanyunSupplierDao chuanyunSupplierDao;
|
|
|
|
|
|
|
|
|
- public U9InfoTask(ChuanYunManager chuanYunManager, ClawFeign clawFeign, ChuanyunBudgetStatisticsDao chuanyunBudgetStatisticsDao, ChuanyunCompanyDao chuanyunCompanyDao, ChuanyunClientDao chuanyunClientDao, ChuanyunUserDao chuanyunUserDao, ChuanyunOutDepartmentDao chuanyunOutDepartmentDao) {
|
|
|
+ public U9InfoTask(ChuanYunManager chuanYunManager, ClawFeign clawFeign, ChuanyunBudgetStatisticsDao chuanyunBudgetStatisticsDao, ChuanyunCompanyDao chuanyunCompanyDao, ChuanyunClientDao chuanyunClientDao, ChuanyunUserDao chuanyunUserDao, ChuanyunOutDepartmentDao chuanyunOutDepartmentDao, ChuanyunSupplierDao chuanyunSupplierDao) {
|
|
|
this.chuanYunManager = chuanYunManager;
|
|
|
this.clawFeign = clawFeign;
|
|
|
this.chuanyunBudgetStatisticsDao = chuanyunBudgetStatisticsDao;
|
|
@@ -51,10 +52,12 @@ public class U9InfoTask {
|
|
|
this.chuanyunClientDao = chuanyunClientDao;
|
|
|
this.chuanyunUserDao = chuanyunUserDao;
|
|
|
this.chuanyunOutDepartmentDao = chuanyunOutDepartmentDao;
|
|
|
+ this.chuanyunSupplierDao = chuanyunSupplierDao;
|
|
|
}
|
|
|
|
|
|
@Scheduled(fixedDelay = 3600000L)
|
|
|
private void getDataFromU9() {
|
|
|
+ savePurContract();
|
|
|
savePurCost();
|
|
|
saveCashFlow();
|
|
|
saveLaborCost();
|
|
@@ -119,6 +122,100 @@ public class U9InfoTask {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新采购合同管理
|
|
|
+ */
|
|
|
+ private void savePurContract(){
|
|
|
+ log.info("开始更新采购合同管理");
|
|
|
+ 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<ChuanyunPurContractDTO> pageInfo = clawFeign.findChuanyunPurContract(map);
|
|
|
+ if (page<=pageInfo.getTotalPages()){
|
|
|
+ page += 1;
|
|
|
+ }else {
|
|
|
+ flag = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ List<ChuanyunPurContractDTO> list = pageInfo.getContent();
|
|
|
+ list.forEach(chuanyunPurContractDTO -> {
|
|
|
+ try {
|
|
|
+ if (!StringUtils.isEmpty(chuanyunPurContractDTO.getOrgname())){
|
|
|
+ chuanyunPurContractDTO.setOrgname(chuanyunCompanyDao.findByCompanyName(chuanyunPurContractDTO.getOrgname()).getObjectId());
|
|
|
+ }
|
|
|
+ if (!StringUtils.isEmpty(chuanyunPurContractDTO.getOpername())){
|
|
|
+ chuanyunPurContractDTO.setOpername(chuanyunUserDao.findByName(chuanyunPurContractDTO.getOpername()).getObjectId());
|
|
|
+ }
|
|
|
+ PurContractDTO purContractDTO = new PurContractDTO(chuanyunPurContractDTO);
|
|
|
+ purContractDTO.setDataSource("U9");
|
|
|
+ DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
|
|
|
+ String newDate = dateTimeFormatter.format(chuanyunPurContractDTO.getBusinessdate());
|
|
|
+ LocalDateTime dt = LocalDateTime.parse(newDate,dateTimeFormatter);
|
|
|
+ purContractDTO.setSignedDateTime(dt);
|
|
|
+ if (!StringUtils.isEmpty(chuanyunPurContractDTO.getProjectcode())){
|
|
|
+ List<String> projectmatchers = new ArrayList<>();
|
|
|
+ projectmatchers.add("F0000002_2,"+chuanyunPurContractDTO.getProjectcode());
|
|
|
+ var projectfilter= Filter.instance(0,Integer.MAX_VALUE,true,"And",projectmatchers);
|
|
|
+ ChuanyunFindAllBizDTO<Object> chuanyunFindResponse = null;
|
|
|
+ chuanyunFindResponse = chuanYunManager.findAll(ChuanyunGroupProjectDO.SCHEMA_CODE,projectfilter);
|
|
|
+ if (chuanyunFindResponse.getReturnData()!=null){
|
|
|
+ List<ChuanyunGroupProjectDO> projectresult=objectMapper.convertValue(chuanyunFindResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
+ purContractDTO.setProjectId(projectresult.get(0).getObjectId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<ChuanyunPurContractOfferDTO> offerDTOS = clawFeign.findPurContractOfferByDocno(chuanyunPurContractDTO.getDocno());
|
|
|
+ List<PurContractOfferDTO> purContractOfferDTOS = new ArrayList<>();
|
|
|
+ offerDTOS.forEach(chuanyunPurContractOfferDTO -> {
|
|
|
+ if (!StringUtils.isEmpty(chuanyunPurContractOfferDTO.getSuppliername())){
|
|
|
+ ChuanyunSupplierDO chuanyunSupplierDO = chuanyunSupplierDao.findBySupplierCode(chuanyunPurContractOfferDTO.getSuppliername());
|
|
|
+ if (chuanyunSupplierDO!=null){
|
|
|
+ chuanyunPurContractOfferDTO.setSuppliername(chuanyunSupplierDO.getObjectId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ PurContractOfferDTO purContractOfferDTO = new PurContractOfferDTO(chuanyunPurContractOfferDTO);
|
|
|
+ purContractOfferDTOS.add(purContractOfferDTO);
|
|
|
+ });
|
|
|
+ purContractDTO.setChuanyunPurContractOfferDOList(purContractOfferDTOS);
|
|
|
+ List<ChuanyunPurContractDetailDTO> detailDTOS = clawFeign.findPurContractDetailByDocno(chuanyunPurContractDTO.getDocno());
|
|
|
+ List<PurContractDetailDTO> purContractDetailDTOS = new ArrayList<>();
|
|
|
+ detailDTOS.forEach(chuanyunPurContractDetailDTO -> {
|
|
|
+ PurContractDetailDTO purContractDetailDTO = new PurContractDetailDTO(chuanyunPurContractDetailDTO);
|
|
|
+ purContractDetailDTOS.add(purContractDetailDTO);
|
|
|
+ });
|
|
|
+ purContractDTO.setChuanyunPurContractDetailDOList(purContractDetailDTOS);
|
|
|
+ var purcostString=objectMapper.writeValueAsString(purContractDTO);
|
|
|
+ List<String> macthers = new ArrayList<>();
|
|
|
+ macthers.add("F0000010_2,"+chuanyunPurContractDTO.getDocno());
|
|
|
+ macthers.add("F0000016_2,"+chuanyunPurContractDTO.getProjectcode());
|
|
|
+ var filter= Filter.instance(0,1,true,"And",macthers);
|
|
|
+ var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunPurContractDO.SCHEMA_CODE,filter);
|
|
|
+ ChuanyunSaveDTO chuanyunSaveDTO;
|
|
|
+ if (chuanyunFindAllResponse.getReturnData() != null) {
|
|
|
+ List<ChuanyunPurContractDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
+ chuanyunSaveDTO=chuanYunManager.delete(ChuanyunPurContractDO.SCHEMA_CODE,result.get(0).getObjectId());
|
|
|
+ }
|
|
|
+ chuanyunSaveDTO =chuanYunManager.save(ChuanyunPurContractDO.SCHEMA_CODE,purcostString,true);
|
|
|
+ if(chuanyunSaveDTO.getSuccessful()){
|
|
|
+ log.info("新增采购合同管理成功");
|
|
|
+ }else{
|
|
|
+ log.warn("新增采购合同管理失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (JsonProcessingException | BigSizeException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 更新销售合同管理
|
|
|
*/
|
|
@@ -286,6 +383,7 @@ public class U9InfoTask {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 更新项目收付款
|
|
|
*/
|
|
@@ -696,6 +794,130 @@ public class U9InfoTask {
|
|
|
}
|
|
|
|
|
|
@Data
|
|
|
+ class PurContractDTO{
|
|
|
+
|
|
|
+ @JsonProperty("F0000010")
|
|
|
+ private String contractCode;
|
|
|
+
|
|
|
+ @JsonProperty("F0000055")
|
|
|
+ @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
|
|
|
+ @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
|
|
|
+ private LocalDateTime signedDateTime;
|
|
|
+
|
|
|
+ @JsonProperty("F0000018")
|
|
|
+ private String companyId;
|
|
|
+
|
|
|
+ @JsonProperty("F0000013")
|
|
|
+ private String contractCreator;
|
|
|
+
|
|
|
+ @JsonProperty("F0000011")
|
|
|
+ private String contractName;
|
|
|
+
|
|
|
+ @JsonProperty("F0000015")
|
|
|
+ private String projectId;
|
|
|
+
|
|
|
+ @JsonProperty("F0000016")
|
|
|
+ private String projectCode;
|
|
|
+
|
|
|
+ @JsonProperty("F0000057")
|
|
|
+ private String dataSource;
|
|
|
+
|
|
|
+ @JsonProperty("D001789F42572596a43740a297245705dbf4b1b2")
|
|
|
+ @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
|
|
|
+ private List<PurContractOfferDTO> chuanyunPurContractOfferDOList;
|
|
|
+
|
|
|
+ @JsonProperty("D001789F07ac5fe52dc041b0b9e691ef8984093f")
|
|
|
+ @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
|
|
|
+ private List<PurContractDetailDTO> chuanyunPurContractDetailDOList;
|
|
|
+
|
|
|
+ public PurContractDTO(ChuanyunPurContractDTO chuanyunPurContractDTO){
|
|
|
+ if(null!=chuanyunPurContractDTO){
|
|
|
+ if (null!=chuanyunPurContractDTO.getDocno()){
|
|
|
+ this.contractCode=chuanyunPurContractDTO.getDocno();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunPurContractDTO.getOrgname()){
|
|
|
+ this.companyId=chuanyunPurContractDTO.getOrgname();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunPurContractDTO.getOpername()){
|
|
|
+ this.contractCreator=chuanyunPurContractDTO.getOpername();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunPurContractDTO.getDocname()){
|
|
|
+ this.contractName=chuanyunPurContractDTO.getDocname();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunPurContractDTO.getProjectcode()){
|
|
|
+ this.projectCode=chuanyunPurContractDTO.getProjectcode();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Data
|
|
|
+ class PurContractOfferDTO{
|
|
|
+
|
|
|
+ @JsonProperty("supplier")
|
|
|
+ private String supplierName;
|
|
|
+
|
|
|
+ @JsonProperty("procurementEquipmentName")
|
|
|
+ private String equipmentName;
|
|
|
+
|
|
|
+ @JsonProperty("F0000049")
|
|
|
+ private BigDecimal number;
|
|
|
+
|
|
|
+ @JsonProperty("taxRate")
|
|
|
+ private BigDecimal contractTax;
|
|
|
+
|
|
|
+ @JsonProperty("totalPrice")
|
|
|
+ private BigDecimal contractAmount;
|
|
|
+
|
|
|
+ public PurContractOfferDTO(ChuanyunPurContractOfferDTO chuanyunPurContractOfferDTO) {
|
|
|
+ if (null!=chuanyunPurContractOfferDTO){
|
|
|
+ if (null!=chuanyunPurContractOfferDTO.getItemname()){
|
|
|
+ this.equipmentName=chuanyunPurContractOfferDTO.getItemname();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunPurContractOfferDTO.getSuppliername()){
|
|
|
+ this.supplierName=chuanyunPurContractOfferDTO.getSuppliername();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunPurContractOfferDTO.getQty()){
|
|
|
+ this.number=chuanyunPurContractOfferDTO.getQty();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunPurContractOfferDTO.getTaxrate()){
|
|
|
+ this.contractTax=chuanyunPurContractOfferDTO.getTaxrate();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunPurContractOfferDTO.getMny()){
|
|
|
+ this.contractAmount=chuanyunPurContractOfferDTO.getMny();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Data
|
|
|
+ class PurContractDetailDTO{
|
|
|
+
|
|
|
+ @JsonProperty("F0000030")
|
|
|
+ private String purContractNode;
|
|
|
+
|
|
|
+ @JsonProperty("F0000047")
|
|
|
+ private BigDecimal purAmount;
|
|
|
+
|
|
|
+ @JsonProperty("F0000046")
|
|
|
+ private BigDecimal purTax;
|
|
|
+
|
|
|
+ public PurContractDetailDTO(ChuanyunPurContractDetailDTO chuanyunPurContractDetailDTO){
|
|
|
+ if (null!=chuanyunPurContractDetailDTO){
|
|
|
+ if (null!=chuanyunPurContractDetailDTO.getDesnote()){
|
|
|
+ this.purContractNode=chuanyunPurContractDetailDTO.getDesnote();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunPurContractDetailDTO.getPlanaccount()){
|
|
|
+ this.purAmount=chuanyunPurContractDetailDTO.getPlanaccount();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunPurContractDetailDTO.getPlanpercent()){
|
|
|
+ this.purTax=chuanyunPurContractDetailDTO.getPlanpercent();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Data
|
|
|
class SalesContractDTO{
|
|
|
@JsonProperty("F0000001")
|
|
|
private String contractCode;
|