소스 검색

[bug-4315]删除排班记录,考勤管理的数据没有被删除

gaozl 11 달 전
부모
커밋
a7614c9349

+ 8 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/employee/domain/AttendanceDetail.java

@@ -21,6 +21,7 @@ import com.lc.ibps.components.employee.persistence.entity.AttendanceDetailPo;
 import java.time.Duration;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.util.List;
 
 /**
  * 考勤明细表 领域对象实体
@@ -124,5 +125,12 @@ public class AttendanceDetail extends AbstractDomain<String, AttendanceDetailPo>
 		AttendanceDetail domain = attendanceDetailRepository.newInstance();
 		domain.save(attendanceDetailPo);
 	}
+
+	public void deleteByPaiBanId(String paiBanId) {
+		List<AttendanceDetailPo> list = attendanceDetailRepository.findByPaiBanId(paiBanId);
+		for (AttendanceDetailPo po : list) {
+			delete(po.getId());
+		}
+	}
 	
 }

+ 4 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/employee/domain/StaffSchedule.java

@@ -369,7 +369,10 @@ public class StaffSchedule extends AbstractDomain<String, StaffSchedulePo>{
 			StaffScheduleDetail staffScheduleDetail = staffScheduleDetailRepository.newInstance();
 			if(BeanUtils.isNotEmpty(po) && BeanUtils.isNotEmpty(po.getId())){
 				staffScheduleDetail.deleteByMainId(po.getId());
-			}	
+			}
+			// 删除排班后 删除相关的考勤记录
+			AttendanceDetail attendanceDetail = attendanceDetailRepository.newInstance();
+			attendanceDetail.deleteByPaiBanId(id);
 		}
 		deleteByIds(ids);
 	}

+ 3 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/employee/repository/AttendanceDetailRepository.java

@@ -4,6 +4,8 @@ import com.lc.ibps.base.framework.repository.IRepository;
 import com.lc.ibps.components.employee.domain.AttendanceDetail;
 import com.lc.ibps.components.employee.persistence.entity.AttendanceDetailPo;
 
+import java.util.List;
+
 /**
  * 考勤明细表 仓库接口
  *
@@ -16,6 +18,6 @@ import com.lc.ibps.components.employee.persistence.entity.AttendanceDetailPo;
 public interface AttendanceDetailRepository extends IRepository<String, AttendanceDetailPo,AttendanceDetail>{
 
 
-
+    public List<AttendanceDetailPo> findByPaiBanId(String paiBanId);
 
 }

+ 8 - 2
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/employee/repository/impl/AttendanceDetailRepositoryImpl.java

@@ -13,6 +13,9 @@ import com.lc.ibps.components.employee.repository.AttendanceDetailRepository;
 import com.lc.ibps.components.employee.persistence.dao.AttendanceDetailQueryDao;
 import com.lc.ibps.components.employee.persistence.entity.AttendanceDetailPo;
 
+import java.util.Collections;
+import java.util.List;
+
 /**
  * 考勤明细表 仓库的实现类
  *
@@ -50,7 +53,10 @@ public class AttendanceDetailRepositoryImpl extends AbstractRepository<String, A
 	public String getInternalCacheName() {
 		return "attendanceDetail";
 	}
-	
 
-	
+
+	@Override
+	public List<AttendanceDetailPo> findByPaiBanId(String paiBanId) {
+		return findByKey("findByPaiBanId", "findIdsByPaiBanId", paiBanId);
+	}
 }

+ 12 - 0
ibps-provider-root/modules/provider-business/src/main/resources/com/lc/ibps/employee/persistence/mapping/AttendanceDetail.map.xml

@@ -76,6 +76,18 @@
 	<select id="queryIds" parameterType="java.util.Map" resultMap="AttendanceDetailPo">
 		SELECT ID_ FROM (<include refid="querySql"/>) T
 	</select>
+
+	<select id="findByPaiBanId" parameterType="java.lang.String" resultMap="AttendanceDetailPo">
+		SELECT <include refid="columns"/> FROM T_ATTENDANCE_DETAIL
+		WHERE
+		PAI_BAN_ID_ = #{paiBanId}
+	</select>
+
+	<select id="findIdsByPaiBanId" parameterType="java.lang.String" resultMap="AttendanceDetailPo">
+		SELECT ID_ FROM T_ATTENDANCE_DETAIL
+		WHERE
+			PAI_BAN_ID_ = #{paiBanId}
+	</select>
 	
 	<select id="findByIds" resultMap="AttendanceDetailPo">
 		SELECT <include refid="columns"/> FROM T_ATTENDANCE_DETAIL