Quellcode durchsuchen

Merge remote-tracking branch 'origin/1.0' into 1.0

verguenza vor 4 Jahren
Ursprung
Commit
e95c3251fb

+ 3 - 3
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunAskForLeaveDO.java

@@ -10,7 +10,7 @@ import net.sf.json.JSONArray;
 import org.springframework.beans.BeanUtils;
 import javax.persistence.Entity;
 import java.math.BigDecimal;
-import java.util.Date;
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.UUID;
 
@@ -54,13 +54,13 @@ public class ChuanyunAskForLeaveDO extends BasicDO {
      * 创建时间
      */
     @JsonProperty("create_time")
-    private Date createTime;
+    private LocalDateTime createTime;
 
     /**
      * 结束时间
      */
     @JsonProperty("finish_time")
-    private Date finishTime;
+    private LocalDateTime finishTime;
 
 
     @JsonProperty("main_process_instance_id")

+ 40 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunOutDepartmentDO.java

@@ -0,0 +1,40 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.galaxis.capsule.bo.ChuanyunObject;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import javax.persistence.Transient;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_OUT_DEPARTMENT")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunOutDepartmentDO extends BasicDO{
+
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D00178915f541c1aeb948e5a7f6b91cffc01d6f";
+
+    @JsonProperty("F0000001")
+    private String department;
+
+    /**
+     * 人员所属部门对象
+     */
+    @Transient
+    @JsonProperty("F0000001Object")
+    private ChuanyunObject departmentObject;
+
+
+    @JsonProperty("F0000002")
+    private String outDepartment;
+}

+ 10 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunReimbursementDO.java

@@ -184,6 +184,12 @@ public class ChuanyunReimbursementDO extends BasicDO{
     @JsonProperty("F0000081")
     private String beneficiaryCostId;
 
+    @JsonProperty("F0000077")
+    private String department;
+
+    @JsonProperty("F0000112")
+    private String outDepartment;
+
     /**
      * 受益成本中心编码
      * todo 由beneficiaryCostId获得
@@ -208,4 +214,8 @@ public class ChuanyunReimbursementDO extends BasicDO{
     @Transient
     @JsonProperty("F0000001Object")
     private ChuanyunObject reimburseUserObject;
+
+    @Transient
+    @JsonProperty("F0000077Object")
+    private ChuanyunObject departmentObject;
 }

+ 56 - 0
src/main/java/com/galaxis/manatee/task/ChuanyunFinancialScheduledTask.java

@@ -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();
+                }
+            }
+        }
+    }
 }