|
@@ -1,11 +1,16 @@
|
|
|
package com.galaxis.manatee.task;
|
|
|
|
|
|
+import com.fasterxml.jackson.annotation.JsonProperty;
|
|
|
+import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.galaxis.manatee.dao.*;
|
|
|
import com.galaxis.manatee.entity.chuanyun.data.object.*;
|
|
|
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveAllDTO;
|
|
|
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
|
|
|
import com.galaxis.manatee.entity.chuanyun.dto.Filter;
|
|
|
import com.galaxis.manatee.manager.ChuanYunManager;
|
|
|
+import lombok.Data;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -92,6 +97,9 @@ public class ChuanyunFinancialScheduledTask {
|
|
|
}catch (NoSuchElementException e){
|
|
|
//没有之前的数据不做处理
|
|
|
}
|
|
|
+ //同步报销单中外部部门名称
|
|
|
+ synchroOutDepartment(chuanyunReimbursementDO);
|
|
|
+
|
|
|
//将报销单中关联信息的id转化为具体的数据
|
|
|
try{
|
|
|
ChuanyunCompanyDO chuanyunCompanyDO=chuanyunCompanyDao.findById(chuanyunReimbursementDO.getBeneficiaryId()).orElseThrow();
|
|
@@ -146,4 +154,52 @@ public class ChuanyunFinancialScheduledTask {
|
|
|
}
|
|
|
log.info("报销信息保存保存"+totalCount);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新外部部门名称
|
|
|
+ * @param chuanyunReimbursementDO
|
|
|
+ */
|
|
|
+ private void synchroOutDepartment(ChuanyunReimbursementDO chuanyunReimbursementDO) {
|
|
|
+ try {
|
|
|
+ var objectMapper=new ObjectMapper();
|
|
|
+ List<String> matchers = new ArrayList<>();
|
|
|
+ matchers.add("F0000001_2,"+chuanyunReimbursementDO.getDepartmentObject().getObjectId());
|
|
|
+ var filter= Filter.instance(0,1,true,"And",matchers);
|
|
|
+ var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunOutDepartmentDO.SCHEMA_CODE,filter);
|
|
|
+ if (chuanyunFindAllResponse.getReturnData()!=null) {
|
|
|
+ List<ChuanyunOutDepartmentDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
+ ChuanyunOutDepartmentDO firstResult = result.get(0);
|
|
|
+ chuanyunReimbursementDO.setOutDepartment(firstResult.getOutDepartment());
|
|
|
+ }else {
|
|
|
+ chuanyunReimbursementDO.setOutDepartment(chuanyunReimbursementDO.getDepartment());
|
|
|
+ }
|
|
|
+ outDepartmentDTO departmentDTO = new outDepartmentDTO(chuanyunReimbursementDO);
|
|
|
+ var departmentString = objectMapper.writeValueAsString(departmentDTO);
|
|
|
+ ChuanyunSaveDTO chuanyunSaveDTO = chuanYunManager.update(ChuanyunReimbursementDO.SCHEMA_CODE,chuanyunReimbursementDO.getObjectId(),departmentString);
|
|
|
+ if(chuanyunSaveDTO.getSuccessful()){
|
|
|
+ log.info("更新外部部门名称成功");
|
|
|
+ }else{
|
|
|
+ log.warn("更新外部部门名称失败");
|
|
|
+ }
|
|
|
+ }catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ log.error(e.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Data
|
|
|
+ class outDepartmentDTO {
|
|
|
+
|
|
|
+ @JsonProperty("F0000112")
|
|
|
+ private String outDepartment;
|
|
|
+
|
|
|
+ public outDepartmentDTO(ChuanyunReimbursementDO chuanyunReimbursementDO) {
|
|
|
+ if (chuanyunReimbursementDO!=null){
|
|
|
+ if (chuanyunReimbursementDO.getOutDepartment()!=null){
|
|
|
+ this.outDepartment=chuanyunReimbursementDO.getOutDepartment();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|