Преглед изворни кода

新增
1、新增长者外出日常费用关系表,用于外出记录删除时对应的日常费用关联删除

liangwenxuan пре 1 недеља
родитељ
комит
086c1777ed

+ 51 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/biz/ElderlyAskLeaveDailyExpenseRelationDO.java

@@ -0,0 +1,51 @@
+package cn.iocoder.yudao.module.system.dal.dataobject.biz;
+
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseNoDeleteDO;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.io.Serializable;
+/**
+ * 长者外出日常费用关系表 DO
+ *
+ * @author 管理员
+ */
+@TableName("elderly_ask_leave_daily_expense_relation")
+@KeySequence("elderly_ask_leave_daily_expense_relation_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ElderlyAskLeaveDailyExpenseRelationDO extends BaseNoDeleteDO implements Serializable {
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 老人ID
+     */
+    @Schema(description = "老人ID", example = "1596")
+    private Long elderId;
+    /**
+     * 外出id
+     */
+    @Schema(description = "外出id", example = "1596")
+    private Long askLeaveId;
+    /**
+     * 日常费用id
+     */
+    @Schema(description = "日常费用id", example = "1596")
+    private Long dailyExpenseId;
+    /**
+     * 机构id
+     */
+    @Schema(description = "机构id", example = "1596")
+    private Long tenantId;
+}

+ 9 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/biz/ElderlyAskLeaveDailyExpenseRelationMapper.java

@@ -0,0 +1,9 @@
+package cn.iocoder.yudao.module.system.dal.mysql.biz;
+
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.module.system.dal.dataobject.biz.ElderlyAskLeaveDailyExpenseRelationDO;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface ElderlyAskLeaveDailyExpenseRelationMapper extends BaseMapperX<ElderlyAskLeaveDailyExpenseRelationDO> {
+}

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

@@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
+import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
 import cn.iocoder.yudao.module.system.controller.admin.biz.vo.AskLeavePageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.biz.vo.ElderlyAskLeaveExportExcelVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.biz.*;
@@ -18,6 +19,7 @@ import com.mzt.logapi.starter.annotation.LogRecord;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -80,6 +82,12 @@ public class ElderlyAskLeaveServiceImpl implements ElderlyAskLeaveService {
     @Resource
     private ElderlyContractMapper elderlyContractMapper;
 
+    @Autowired
+    private ElderlyAskLeaveDailyExpenseRelationMapper elderlyAskLeaveDailyExpenseRelationMapper;
+
+    @Autowired
+    private DailyExpensesService dailyExpensesService;
+
 
     @Override
     @LogRecord(type = ELDERLY_ASK_LEAVE_TYPE, subType = ELDERLY_ASK_LEAVE_CREATE_SUB_TYPE, bizNo = "{{#createReqVO.id}}",
@@ -574,7 +582,8 @@ public class ElderlyAskLeaveServiceImpl implements ElderlyAskLeaveService {
 
         // 先保存日常费用,获取ID
         dailyExpensesMapper.insert(dailyExpenses);
-
+        // 保存外出与日常费用关系,后续删除能够一并删除日常费用
+        saveElderlyAskLeaveDailyExpenseRelation(askLeaveDO.getElderId(),askLeaveDO.getId(),dailyExpenses.getId());
         // 账单不存在、已缴费或已确认则不带入账单
         if (expenseOrder == null || Objects.equals(expenseOrder.getPayStatus(), 1) || expenseOrder.getIsLock()) {
             return;
@@ -615,6 +624,11 @@ public class ElderlyAskLeaveServiceImpl implements ElderlyAskLeaveService {
 
     @Override
     public void delete(Long id) {
+        List<ElderlyAskLeaveDailyExpenseRelationDO> elderlyAskLeaveDailyExpenseRelationList = elderlyAskLeaveDailyExpenseRelationMapper.selectList(new LambdaQueryWrapperX<ElderlyAskLeaveDailyExpenseRelationDO>()
+                .eq(ElderlyAskLeaveDailyExpenseRelationDO::getAskLeaveId, id));
+        for (ElderlyAskLeaveDailyExpenseRelationDO elderlyAskLeaveDailyExpenseRelationDO : elderlyAskLeaveDailyExpenseRelationList) {
+            dailyExpensesService.deleteDailyExpenses(elderlyAskLeaveDailyExpenseRelationDO.getDailyExpenseId());
+        }
         elderlyAskLeaveMapper.deleteById(id);
     }
 
@@ -716,4 +730,13 @@ public class ElderlyAskLeaveServiceImpl implements ElderlyAskLeaveService {
             throw exception(ErrorCodeConstants.ELDERLY_LEAVE_UPDATE_DATE_OVER_EXPIRE);
         }
     }
+
+    private void saveElderlyAskLeaveDailyExpenseRelation(Long elderId,Long askLeaveId,Long dailyExpenseId){
+        ElderlyAskLeaveDailyExpenseRelationDO elderlyAskLeaveDailyExpenseRelationDO = new ElderlyAskLeaveDailyExpenseRelationDO();
+        elderlyAskLeaveDailyExpenseRelationDO.setElderId(elderId);
+        elderlyAskLeaveDailyExpenseRelationDO.setAskLeaveId(askLeaveId);
+        elderlyAskLeaveDailyExpenseRelationDO.setDailyExpenseId(dailyExpenseId);
+        elderlyAskLeaveDailyExpenseRelationDO.setTenantId(TenantContextHolder.getTenantId());
+        elderlyAskLeaveDailyExpenseRelationMapper.insert(elderlyAskLeaveDailyExpenseRelationDO);
+    }
 }