diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/mapper/SafetyCenterSubitemContactsMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/mapper/SafetyCenterSubitemContactsMapper.java index c90c9b10..e681f914 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/mapper/SafetyCenterSubitemContactsMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/mapper/SafetyCenterSubitemContactsMapper.java @@ -2,6 +2,9 @@ package com.jero.functionalsafetycenter.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.jero.functionalsafetycenter.entity.SafetyCenterSubitemContacts; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @@ -9,4 +12,5 @@ import com.jero.functionalsafetycenter.entity.SafetyCenterSubitemContacts; *@date 2024-06-12 15:13 */ public interface SafetyCenterSubitemContactsMapper extends BaseMapper { + List listByParentIdAndContactIdList(@Param("parentId") String parentId, @Param("contactIdList") List contactIdList); } \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/mapper/xml/SafetyCenterSubitemContactsMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/mapper/xml/SafetyCenterSubitemContactsMapper.xml index 692d7a22..4c9c14b0 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/mapper/xml/SafetyCenterSubitemContactsMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/mapper/xml/SafetyCenterSubitemContactsMapper.xml @@ -21,4 +21,18 @@ id, project_id, subitem_id, company_id, contacts_id, remarks, order_num, create_by, create_time, update_by, update_time + + \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/service/SafetyCenterSubitemContactsService.java b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/service/SafetyCenterSubitemContactsService.java index f7de7294..41fd66e3 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/service/SafetyCenterSubitemContactsService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/service/SafetyCenterSubitemContactsService.java @@ -29,4 +29,7 @@ public class SafetyCenterSubitemContactsService extends ServiceImpl listByParentIdAndContactIdList(String parentId, List contactIdList){ + return baseMapper.listByParentIdAndContactIdList(parentId,contactIdList); + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/service/SafetyCenterSubitemService.java b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/service/SafetyCenterSubitemService.java index 06d20cc2..4d64c455 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/service/SafetyCenterSubitemService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/functionalsafetycenter/service/SafetyCenterSubitemService.java @@ -134,6 +134,13 @@ public class SafetyCenterSubitemService extends ServiceImpl oldContactList = contactsService.listBySubitemId(subitemId); + List oldContactIdList = oldContactList.stream().map(SafetyCenterSubitemContacts::getContactsId).distinct().collect(Collectors.toList()); + //取差值,得到删除的联系人 + oldContactIdList.removeAll(contactIdList); + //删除子项目的联系人 + this.deleteChildrenByParentId(parentId,contactIdList); } this.updateById(safetyCenterSubitem); //先删除之前保存的 @@ -210,4 +217,17 @@ public class SafetyCenterSubitemService extends ServiceImpl listByParentIdAndCompanyId(String parentId,String companyId){ return baseMapper.listByParentIdAndCompanyId(parentId,companyId); } + + /** + * 删除子项目的联系人 + */ + public void deleteChildrenByParentId(String parentId, List contactIdList) { + List contactList = contactsService.listByParentIdAndContactIdList(parentId, contactIdList); + List collect = contactList.stream().map(SafetyCenterSubitemContacts::getId).collect(Collectors.toList()); + contactsService.removeByIds(collect); + List projectIdList = contactList.stream().map(SafetyCenterSubitemContacts::getProjectId).distinct().collect(Collectors.toList()); + for (String projectId : projectIdList) { + deleteChildrenByParentId(projectId,contactIdList); + } + } }