Просмотр исходного кода

修改
1、外出审批流调整

liangwenxuan 1 неделя назад
Родитель
Сommit
3c29184297

+ 6 - 21
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApiImpl.java

@@ -119,27 +119,12 @@ public class BpmProcessInstanceApiImpl implements BpmProcessInstanceApi {
         if (processInstanceId == null || processInstanceId.isEmpty()) {
             return Boolean.FALSE;
         }
-        try {
-            processInstanceCopyService.deleteProcessInstanceCopy(processInstanceId);
-        } catch (Exception ignored) {
-        }
-        try {
-            notifyMessageSendApi.deleteByPkMessage(processInstanceId);
-        } catch (Exception ignored) {
-        }
-        try {
-            businessFormMapper.delete(new LambdaQueryWrapperX<BpmBusinessFormDO>()
-                    .eq(BpmBusinessFormDO::getProcessInstanceId, processInstanceId));
-        } catch (Exception ignored) {
-        }
-        try {
-            runtimeService.deleteProcessInstance(processInstanceId, reason == null ? "" : reason);
-        } catch (Exception ignored) {
-        }
-        try {
-            historyService.deleteHistoricProcessInstance(processInstanceId);
-        } catch (Exception ignored) {
-        }
+        processInstanceCopyService.deleteProcessInstanceCopy(processInstanceId);
+        notifyMessageSendApi.deleteByPkMessage(processInstanceId);
+        businessFormMapper.delete(new LambdaQueryWrapperX<BpmBusinessFormDO>()
+                .eq(BpmBusinessFormDO::getProcessInstanceId, processInstanceId));
+        runtimeService.deleteProcessInstance(processInstanceId, reason == null ? "" : reason);
+        historyService.deleteHistoricProcessInstance(processInstanceId);
         return Boolean.TRUE;
     }
 

+ 4 - 4
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/business/listener/BpmOutboundRegistrationStatusListener.java

@@ -33,9 +33,10 @@ public class BpmOutboundRegistrationStatusListener extends BpmProcessInstanceSta
 
         if (BpmProcessInstanceStatusEnum.APPROVE.getStatus().equals(event.getStatus())) {
             askLeaveApi.updateLeaveStatus(businessFormDO.getBusinessId(), 1);
-        } else if (BpmProcessInstanceStatusEnum.REJECT.getStatus().equals(event.getStatus())
-                || BpmProcessInstanceStatusEnum.CANCEL.getStatus().equals(event.getStatus())) {
-            askLeaveApi.updateLeaveStatus(businessFormDO.getBusinessId(), 0);
+        } else if (BpmProcessInstanceStatusEnum.REJECT.getStatus().equals(event.getStatus())) {
+            askLeaveApi.updateLeaveStatus(businessFormDO.getBusinessId(), 2);
+        } else if (BpmProcessInstanceStatusEnum.CANCEL.getStatus().equals(event.getStatus())) {
+            askLeaveApi.updateLeaveStatus(businessFormDO.getBusinessId(), 3);
         }
 
         if (BpmProcessInstanceStatusEnum.isProcessEndStatus(event.getStatus())) {
@@ -46,4 +47,3 @@ public class BpmOutboundRegistrationStatusListener extends BpmProcessInstanceSta
         }
     }
 }
-

+ 2 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/bpm/BpmElderlyExpenseApiImpl.java

@@ -450,7 +450,8 @@ public class BpmElderlyExpenseApiImpl implements BpmElderlyExpenseApi {
         List<ElderlyAskLeaveDO> elderlyAskLeaveDOS = askLeaveMapper.selectList(new LambdaQueryWrapperX<ElderlyAskLeaveDO>()
                 .eq(ElderlyAskLeaveDO::getElderId, elderId)
                 .isNull(ElderlyAskLeaveDO::getUpdateDate)
-                .and(w -> w.ne(ElderlyAskLeaveDO::getLeaveStatus, 0).or().isNull(ElderlyAskLeaveDO::getLeaveStatus)));
+                .and(w -> w.eq(ElderlyAskLeaveDO::getLeaveStatus, ElderlyAskLeaveDO.LEAVE_STATUS_APPROVED)
+                        .or().isNull(ElderlyAskLeaveDO::getLeaveStatus)));
         if(CollectionUtil.isNotEmpty(elderlyAskLeaveDOS)){
             throw exception(APPLY_RETREAT_ASK_LEAVE_EXISTS);
         }

+ 6 - 3
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/order/OrderApiImpl.java

@@ -1116,7 +1116,8 @@ public class OrderApiImpl implements OrderApi {
                             .eq(ElderlyAskLeaveDO::getElderId, elderId)
                             .eq(ElderlyAskLeaveDO::getOutboundRefundConfigId, outboundConfig.getId())
                             .eq(ElderlyAskLeaveDO::getStatus, 0) // 0表示正常状态
-                            .and(w -> w.ne(ElderlyAskLeaveDO::getLeaveStatus, 0).or().isNull(ElderlyAskLeaveDO::getLeaveStatus))
+                            .and(w -> w.eq(ElderlyAskLeaveDO::getLeaveStatus, ElderlyAskLeaveDO.LEAVE_STATUS_APPROVED)
+                                    .or().isNull(ElderlyAskLeaveDO::getLeaveStatus))
                             .le(ElderlyAskLeaveDO::getOutDate, monthEndDate) // 外出时间不能晚于月末
                             .and(wrapper -> wrapper
                                     // 返回时间>=月初 或 返回时间为空(还在外出中)
@@ -1173,7 +1174,8 @@ public class OrderApiImpl implements OrderApi {
                         .eq(ElderlyAskLeaveDO::getElderId, elderId)
                         .eq(ElderlyAskLeaveDO::getOutboundRefundConfigId, outboundConfig.getId())
                         .eq(ElderlyAskLeaveDO::getStatus, 0)
-                        .and(w -> w.ne(ElderlyAskLeaveDO::getLeaveStatus, 0).or().isNull(ElderlyAskLeaveDO::getLeaveStatus))
+                        .and(w -> w.eq(ElderlyAskLeaveDO::getLeaveStatus, ElderlyAskLeaveDO.LEAVE_STATUS_APPROVED)
+                                .or().isNull(ElderlyAskLeaveDO::getLeaveStatus))
                         // 有时间交集:外出开始<=月底,返回时间>=月初或为空
                         .le(ElderlyAskLeaveDO::getOutDate, monthEndDate)
                         .and(w -> w.ge(ElderlyAskLeaveDO::getUpdateDate, monthStartDate).or().isNull(ElderlyAskLeaveDO::getUpdateDate))
@@ -1690,7 +1692,8 @@ public class OrderApiImpl implements OrderApi {
                         .in(ElderlyAskLeaveDO::getElderId, elderIds)
                         .eq(ElderlyAskLeaveDO::getOutboundRefundConfigId, outboundConfig.getId())
                         .eq(ElderlyAskLeaveDO::getStatus, 0)
-                        .and(w -> w.ne(ElderlyAskLeaveDO::getLeaveStatus, 0).or().isNull(ElderlyAskLeaveDO::getLeaveStatus))
+                        .and(w -> w.eq(ElderlyAskLeaveDO::getLeaveStatus, ElderlyAskLeaveDO.LEAVE_STATUS_APPROVED)
+                                .or().isNull(ElderlyAskLeaveDO::getLeaveStatus))
                         .le(ElderlyAskLeaveDO::getOutDate, monthEndDate)
                         .and(w -> w.ge(ElderlyAskLeaveDO::getUpdateDate, monthStartDate).or().isNull(ElderlyAskLeaveDO::getUpdateDate))
                         .orderByAsc(ElderlyAskLeaveDO::getElderId, ElderlyAskLeaveDO::getOutDate)

+ 7 - 2
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/biz/ElderlyAskLeaveDO.java

@@ -27,6 +27,11 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
 @AllArgsConstructor
 public class ElderlyAskLeaveDO implements Serializable {
 
+    public static final Integer LEAVE_STATUS_PENDING = 0;
+    public static final Integer LEAVE_STATUS_APPROVED = 1;
+    public static final Integer LEAVE_STATUS_REJECTED = 2;
+    public static final Integer LEAVE_STATUS_CANCELLED = 3;
+
     /**
      * 主键ID
      */
@@ -113,7 +118,7 @@ public class ElderlyAskLeaveDO implements Serializable {
     /**
      * 请假状态
      */
-    @Schema(description = "请假状态", example = "1")
+    @Schema(description = "请假状态 0审批中 1审批通过 2审批拒绝 3已取消", example = "1")
     private Integer leaveStatus;
     /**
      * 预估天数
@@ -144,4 +149,4 @@ public class ElderlyAskLeaveDO implements Serializable {
     @Schema(description = "归属月")
     private String belongMonth;
 
-}
+}

+ 6 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ElderlyAskLeaveServiceImpl.java

@@ -117,6 +117,9 @@ public class ElderlyAskLeaveServiceImpl implements ElderlyAskLeaveService {
             success = ELDERLY_ASK_LEAVE_CREATE_SUCCESS)
     public void createAskLeave(ElderlyAskLeaveDO createReqVO) {
         createReqVO.setCreateDate(new Date());
+        if (createReqVO.getLeaveStatus() == null) {
+            createReqVO.setLeaveStatus(ElderlyAskLeaveDO.LEAVE_STATUS_APPROVED);
+        }
         elderlyAskLeaveMapper.insert(createReqVO);
     }
 
@@ -129,7 +132,7 @@ public class ElderlyAskLeaveServiceImpl implements ElderlyAskLeaveService {
             createReqVO.setCreateBy(SecurityFrameworkUtils.getLoginUserNickname());
         }
         if (createReqVO.getLeaveStatus() == null) {
-            createReqVO.setLeaveStatus(0);
+            createReqVO.setLeaveStatus(ElderlyAskLeaveDO.LEAVE_STATUS_PENDING);
         }
         elderlyAskLeaveMapper.insert(createReqVO);
 
@@ -760,9 +763,11 @@ public class ElderlyAskLeaveServiceImpl implements ElderlyAskLeaveService {
             return;
         }
         Long tenantId = askLeave.getTenantId() != null ? askLeave.getTenantId() : TenantContextHolder.getTenantId();
+        log.info("外出登记删除,机构id:{}",tenantId);
         TenantUtils.execute(tenantId, () -> {
             try {
                 String processInstanceId = processInstanceApi.getProcessInstanceId(String.valueOf(id));
+                log.info("外出登记删除,processInstanceId:{}",processInstanceId);
                 if (processInstanceId != null && !processInstanceId.isEmpty()) {
                     Long operatorUserId = SecurityFrameworkUtils.getLoginUserId();
                     if (operatorUserId == null) {

+ 6 - 3
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/biz/ElderlyInfoServiceImpl.java

@@ -1738,13 +1738,15 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
 
         long askLeaveCount = Optional.ofNullable(elderlyAskLeaveMapper.selectCount(new LambdaQueryWrapperX<ElderlyAskLeaveDO>()
                 .in(ElderlyAskLeaveDO::getTenantId, tenantIdList)
-                .and(w -> w.ne(ElderlyAskLeaveDO::getLeaveStatus, 0).or().isNull(ElderlyAskLeaveDO::getLeaveStatus))
+                .and(w -> w.eq(ElderlyAskLeaveDO::getLeaveStatus, ElderlyAskLeaveDO.LEAVE_STATUS_APPROVED)
+                        .or().isNull(ElderlyAskLeaveDO::getLeaveStatus))
                 .le(ElderlyAskLeaveDO::getOutDate, todayEndDate)
                 .and(w -> w.gt(ElderlyAskLeaveDO::getUpdateDate, LocalDateTime.now()).or().isNull(ElderlyAskLeaveDO::getUpdateDate)))).orElse(0L);
 
         long todayAskLeaveCount = Optional.ofNullable(elderlyAskLeaveMapper.selectCount(new LambdaQueryWrapperX<ElderlyAskLeaveDO>()
                 .in(ElderlyAskLeaveDO::getTenantId, tenantIdList)
-                .and(w -> w.ne(ElderlyAskLeaveDO::getLeaveStatus, 0).or().isNull(ElderlyAskLeaveDO::getLeaveStatus))
+                .and(w -> w.eq(ElderlyAskLeaveDO::getLeaveStatus, ElderlyAskLeaveDO.LEAVE_STATUS_APPROVED)
+                        .or().isNull(ElderlyAskLeaveDO::getLeaveStatus))
                 .between(ElderlyAskLeaveDO::getOutDate, todayStartDate, todayEndDate))).orElse(0L);
 
         long checkOutCount = Optional.ofNullable(elderlyRetreatRecordMapper.selectCount(new LambdaQueryWrapperX<ElderlyRetreatRecordDO>()
@@ -1857,7 +1859,8 @@ public class ElderlyInfoServiceImpl implements ElderlyInfoService {
         Date todayEndDate = Date.from(today.atTime(23, 59, 59).atZone(ZoneId.systemDefault()).toInstant());
         Long outOfOfficeCount = elderlyAskLeaveMapper.selectCount(new LambdaQueryWrapperX<ElderlyAskLeaveDO>()
                 .eq(ElderlyAskLeaveDO::getTenantId, tenantId)
-                .and(w -> w.ne(ElderlyAskLeaveDO::getLeaveStatus, 0).or().isNull(ElderlyAskLeaveDO::getLeaveStatus))
+                .and(w -> w.eq(ElderlyAskLeaveDO::getLeaveStatus, ElderlyAskLeaveDO.LEAVE_STATUS_APPROVED)
+                        .or().isNull(ElderlyAskLeaveDO::getLeaveStatus))
                 .le(ElderlyAskLeaveDO::getOutDate, todayEndDate)
                 .and(w -> w.ge(ElderlyAskLeaveDO::getComeDate, todayStartDate).or().isNull(ElderlyAskLeaveDO::getComeDate)));
         updates.add(TodayUpdate.builder().content("当天外出人数: " + outOfOfficeCount).build());

+ 1 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendServiceImpl.java

@@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 import cn.iocoder.yudao.framework.common.util.corp.CorpMsgUtil;
 import cn.iocoder.yudao.framework.common.util.string.StringUtil;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
 import cn.iocoder.yudao.module.bpm.enums.definition.BpmUserTaskApproveMethodEnum;

+ 1 - 0
yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/ElderlyInfoMapper.xml

@@ -323,6 +323,7 @@
         elderly_ask_leave
         WHERE
         status = 0
+        AND (leave_status = 1 OR leave_status IS NULL)
         <if test="reqVO.currentDate != null">
             AND DATE_FORMAT(out_date, '%Y-%m') = DATE_FORMAT(#{reqVO.currentDate}, '%Y-%m')
         </if>