xuj 4 роки тому
батько
коміт
67221b1174

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

@@ -66,6 +66,9 @@ public class ChuanyunAskForLeaveDO extends BasicDO {
     @JsonProperty("main_process_instance_id")
     private String mainProcessInstanceId;
 
+    @JsonProperty("is_canncel")
+    private int isCanncel;
+
     /**
      * 发起人userId
      */
@@ -146,16 +149,17 @@ public class ChuanyunAskForLeaveDO extends BasicDO {
      * @return  保存数据
      */
     public static ChuanyunAskForLeaveDO fromAskForLeaveDTO(OapiProcessinstanceGetResponse.ProcessInstanceTopVo processInstanceTopVo){
-        //请假信息撤销
-        if(processInstanceTopVo.getOperationRecords()!= null && processInstanceTopVo.getOperationRecords().size() == 2 ) {
-            if(processInstanceTopVo.getOperationRecords().get(0).getUserid().equals(processInstanceTopVo.getOperationRecords().get(1).getUserid())) {
+        ChuanyunAskForLeaveDO chuanyunAskForLeaveDo = new ChuanyunAskForLeaveDO();
+        chuanyunAskForLeaveDo.setIsCanncel(0);
+        if(processInstanceTopVo.getOperationRecords()!= null) {
+            if(processInstanceTopVo.getOperationRecords().get(0).getUserid().equals(processInstanceTopVo.getOperationRecords().get(processInstanceTopVo.getOperationRecords().size() -1).getUserid())
+                    && processInstanceTopVo.getOperationRecords().get(0).getUserid().equals(processInstanceTopVo.getOriginatorUserid())  ) {
                 if(processInstanceTopVo.getOperationRecords().get(0).getOperationType().equals("START_PROCESS_INSTANCE")
-                        && processInstanceTopVo.getOperationRecords().get(1).getOperationType().equals("TERMINATE_PROCESS_INSTANCE")) {
-                    return null;
+                        && processInstanceTopVo.getOperationRecords().get(processInstanceTopVo.getOperationRecords().size() -1).getOperationType().equals("TERMINATE_PROCESS_INSTANCE")) {
+                    chuanyunAskForLeaveDo.setIsCanncel(1);
                 }
             }
         }
-        ChuanyunAskForLeaveDO chuanyunAskForLeaveDo = new ChuanyunAskForLeaveDO();
         BeanUtils.copyProperties(processInstanceTopVo, chuanyunAskForLeaveDo);
         List<OapiProcessinstanceGetResponse.FormComponentValueVo> formComponentList = processInstanceTopVo.getFormComponentValues();
         if(formComponentList != null && formComponentList.size() > 0) {

+ 0 - 3
src/main/java/com/galaxis/manatee/service/DingTalkScheduledTask.java

@@ -119,9 +119,6 @@ public class DingTalkScheduledTask {
                         try {
                             OapiProcessinstanceGetResponse oapiProcessinstanceGetResponse = processInstanceClient.execute(request, DingTalkConstant.DING_TALK_TOKEN);
                             ChuanyunAskForLeaveDO chuanyunAskForLeaveDo = ChuanyunAskForLeaveDO.fromAskForLeaveDTO(oapiProcessinstanceGetResponse.getProcessInstance());
-                            if(null == chuanyunAskForLeaveDo) {
-                                return;
-                            }
                             List<ChuanyunAskForLeaveDO>   existsAskForLeave = chuanyunAskForLeaveDao.findByTitleSQL(chuanyunAskForLeaveDo.getTitle());
                             if(existsAskForLeave != null && !existsAskForLeave.isEmpty()) {
                                 return;

+ 11 - 3
src/main/java/com/galaxis/manatee/task/ChuanyunBasicDataScheduledTask.java

@@ -370,7 +370,9 @@ public class ChuanyunBasicDataScheduledTask {
             try {
                 //根据钉钉号获取氚云用户Id
                 ChuanyunUserDO chuanyunUserDO=chuanyunUserDao.findByDingTalkAccountContaining(askForLeave.getOriginatorUserid());
-                askForLeave.setAskForLeaveUserId(chuanyunUserDO.getObjectId());
+                if(chuanyunUserDO != null) {
+                    askForLeave.setAskForLeaveUserId(chuanyunUserDO.getObjectId());
+                }
                 //根据dingTalkUserId获取chuanyunUser
                 var purcostString = objectMapper.writeValueAsString(AskForLeaveDTO.fromChuanyunAskForLeaveDO(askForLeave));
                 ChuanyunSaveDTO chuanyunSaveDTO;
@@ -379,10 +381,16 @@ public class ChuanyunBasicDataScheduledTask {
                 matchers.add("F0000001_2,"+askForLeave.getTitle());
                 var filter= Filter.instance(0,1,true,"And",matchers);
                 ChuanyunFindAllBizDTO<LinkedHashMap<String,String>> chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunAskForLeaveDO.SCHEMA_CODE,filter);
-                if (chuanyunFindAllResponse.getReturnData() == null) {
+                if(chuanyunFindAllResponse.getReturnData() == null && (askForLeave.getIsCanncel() == 1)) {
+                    return;
+                }
+                if(chuanyunFindAllResponse.getReturnData() == null && (askForLeave.getIsCanncel() == 0)){
                     //新增
                     chuanyunSaveDTO =chuanYunManager.save(ChuanyunAskForLeaveDO.SCHEMA_CODE,purcostString,true);
-                }else {
+                }else if(chuanyunFindAllResponse.getReturnData() != null && (askForLeave.getIsCanncel() == 1)){
+                    //删除撤销
+                    chuanyunSaveDTO = chuanYunManager.delete(ChuanyunAskForLeaveDO.SCHEMA_CODE,chuanyunFindAllResponse.getReturnData().getBizObjectArray().get(0).get("ObjectId"));
+                }else{
                     //更新
                     chuanyunSaveDTO = chuanYunManager.update(ChuanyunAskForLeaveDO.SCHEMA_CODE,chuanyunFindAllResponse.getReturnData().getBizObjectArray().get(0).get("ObjectId"),purcostString);
                 }