提交 2697a30e 编写于 作者: 蔡祥熠

Merge branch 'feature/会议管理参会人员支持组织和群组' into 'wrdp'

[会议管理]会议参会人员支持组织和群组

See merge request o2oa/o2oa!5705
package com.x.meeting.assemble.control.jaxrs.meeting;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import org.apache.commons.lang3.StringUtils;
import com.google.gson.JsonElement;
......@@ -22,6 +24,8 @@ import com.x.meeting.core.entity.Room;
class ActionCreate extends BaseAction {
private final static Logger logger = LoggerFactory.getLogger(ActionCreate.class);
ActionResult<Wo> execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
ActionResult<Wo> result = new ActionResult<>();
......@@ -51,15 +55,15 @@ class ActionCreate extends BaseAction {
throw new ExceptionPersonNotExist(applicant);
}
meeting.setApplicant(applicant);
if( ListTools.isNotEmpty( meeting.getInvitePersonList() )) {
for( String str : meeting.getInvitePersonList() ) {
System.out.println(">>>>>>>> before convert invitePersonList:" + str );
if( ListTools.isNotEmpty( meeting.getInviteMemberList() )) {
for( String str : meeting.getInviteMemberList() ) {
logger.debug(">>>>>>>> before convert invitePersonList:" + str );
}
}
meeting.setInvitePersonList(this.convertToPerson(business, meeting.getInvitePersonList()));
meeting.setInvitePersonList(this.convertToPerson(business, meeting.getInviteMemberList()));
if( ListTools.isNotEmpty( meeting.getInvitePersonList() )) {
for( String str : meeting.getInvitePersonList() ) {
System.out.println(">>>>>>>> after convert invitePersonList:" + str );
logger.debug(">>>>>>>> after convert invitePersonList:" + str );
}
}
meeting.setAcceptPersonList(this.convertToPerson(business, meeting.getAcceptPersonList()));
......
......@@ -55,13 +55,15 @@ class ActionEdit extends BaseAction {
}
emc.beginTransaction(Meeting.class);
List<String> modifyInvitePersonList = ListUtils.subtract(
this.convertToPerson(business, ListTools.trim(wi.getInvitePersonList(), true, true)),
meeting.getInvitePersonList());
List<String> invitePersonList = new ArrayList<>(meeting.getInvitePersonList());
invitePersonList.addAll(modifyInvitePersonList);
Wi.copier.copy(wi, meeting);
List<String> invitePersonList = this.convertToPerson(business, ListTools.trim(wi.getInviteMemberList(), true, true));
List<String> modifyInvitePersonList = ListUtils.subtract(invitePersonList, meeting.getInvitePersonList());
List<String> inviteDelPersonList = ListUtils.subtract(meeting.getInvitePersonList(), invitePersonList);
meeting.setInvitePersonList(invitePersonList);
meeting.setInviteDelPersonList(inviteDelPersonList);
if (!business.room().checkIdle(meeting.getRoom(), meeting.getStartTime(), meeting.getCompletedTime(),
meeting.getId())) {
throw new ExceptionRoomNotAvailable(room.getName());
......@@ -79,6 +81,9 @@ class ActionEdit extends BaseAction {
MessageFactory.meeting_invite(_s, meeting, room);
}
}
for (String _s : inviteDelPersonList) {
MessageFactory.meeting_deleteInvitePerson(_s, meeting);
}
this.notifyMeetingInviteMessage(business, meeting);
}
......
......@@ -58,10 +58,12 @@ class ActionModify extends BaseAction {
Wi.copier.copy(wi, meeting);
List<String> personList = this.convertToPerson(business, ListTools.trim(wi.getInvitePersonList(), true, true));
List<String> personList = this.convertToPerson(business, ListTools.trim(wi.getInviteMemberList(), true, true));
meeting.setInvitePersonList(personList);
List<String> modifyInvitePersonList = ListUtils.subtract(personList,meeting.getInvitePersonList());
List<String> inviteDelPersonList = ListUtils.subtract(meeting.getInvitePersonList(), personList);
meeting.setInviteDelPersonList(inviteDelPersonList);
if (!business.room().checkIdle(meeting.getRoom(), meeting.getStartTime(), meeting.getCompletedTime(),
meeting.getId())) {
......@@ -82,6 +84,10 @@ class ActionModify extends BaseAction {
}
}
for (String _s : inviteDelPersonList) {
MessageFactory.meeting_deleteInvitePerson(_s, meeting);
}
this.notifyMeetingInviteMessage(business, meeting);
}
Wo wo = new Wo();
......
......@@ -86,10 +86,21 @@ abstract class BaseAction extends StandardJaxrsAction {
protected List<String> convertToPerson(Business business, List<String> list) throws Exception {
List<String> os = new ArrayList<>();
DistinguishedNameCategory category = OrganizationDefinition.distinguishedNameCategory(list);
if(ListTools.isNotEmpty(category.getPersonList())) {
os.addAll(business.organization().person().list(category.getPersonList()));
}
if(ListTools.isNotEmpty(category.getIdentityList())) {
os.addAll(business.organization().person().listWithIdentity(category.getIdentityList()));
}
if(ListTools.isNotEmpty(category.getUnitList())) {
os.addAll(business.organization().person().listWithUnitSubDirect(category.getUnitList()));
os.addAll(business.organization().person().list( category.getUnknownList()) );
}
if(ListTools.isNotEmpty(category.getGroupList())) {
os.addAll(business.organization().person().listWithGroup(category.getGroupList()));
}
if(ListTools.isNotEmpty(category.getUnknownList())) {
os.addAll(business.organization().person().list(category.getUnknownList()));
}
os = ListTools.trim(os, true, true);
return os;
}
......
......@@ -131,8 +131,20 @@ public class Meeting extends SliceJpaObject {
@CheckPersist(allowEmpty = false)
private Date completedTime;
public static final String inviteMemberList_FIELDNAME = "inviteMemberList";
@FieldDescribe("邀请人员,身份,组织,群组.")
@PersistentCollection(fetch = FetchType.EAGER)
@ContainerTable(name = TABLE + ContainerTableNameMiddle
+ inviteMemberList_FIELDNAME, joinIndex = @Index(name = TABLE + IndexNameMiddle + inviteMemberList_FIELDNAME
+ JoinIndexNameSuffix))
@OrderColumn(name = ORDERCOLUMNCOLUMN)
@ElementColumn(length = length_255B, name = ColumnNamePrefix + inviteMemberList_FIELDNAME)
@ElementIndex(name = TABLE + IndexNameMiddle + inviteMemberList_FIELDNAME + ElementIndexNameSuffix)
@CheckPersist(allowEmpty = true)
private List<String> inviteMemberList;
public static final String invitePersonList_FIELDNAME = "invitePersonList";
@FieldDescribe("邀请人员,身份,组织.")
@FieldDescribe("邀请人员.")
@PersistentCollection(fetch = FetchType.EAGER)
@ContainerTable(name = TABLE + ContainerTableNameMiddle
+ invitePersonList_FIELDNAME, joinIndex = @Index(name = TABLE + IndexNameMiddle + invitePersonList_FIELDNAME
......@@ -440,6 +452,11 @@ public class Meeting extends SliceJpaObject {
this.inviteDelPersonList = inviteDelPersonList;
}
public List<String> getInviteMemberList() {
return inviteMemberList;
}
public void setInviteMemberList(List<String> inviteMemberList) {
this.inviteMemberList = inviteMemberList;
}
}
......@@ -169,4 +169,10 @@ public class IdentityFactory extends AbstractFactory {
return count;
}
public List<String> listPerson(List<String> identityIds) throws Exception {
List<Identity> list = this.entityManagerContainer().fetch(identityIds, Identity.class, ListTools.toList(Identity.id_FIELDNAME, Identity.person_FIELDNAME));
List<String> values = ListTools.extractProperty(list, Identity.person_FIELDNAME, String.class, true, true);
return values;
}
}
......@@ -66,18 +66,24 @@ class ActionListWithGroup extends BaseAction {
}
List<String> personIds = new ArrayList<>();
List<String> unitIds = new ArrayList<>();
List<String> identities = new ArrayList<>();
for (Group o : list) {
personIds.addAll(o.getPersonList());
if (ListTools.isNotEmpty(o.getUnitList())) {
unitIds.addAll(o.getUnitList());
}
identities.addAll(o.getIdentityList());
}
personIds = ListTools.trim(personIds, true, true);
if (ListTools.isNotEmpty(unitIds)) {
unitIds = ListTools.trim(unitIds, true, true);
personIds.addAll(business.expendUnitToPersonId(unitIds));
personIds = ListTools.trim(personIds, true, true);
}
if (ListTools.isNotEmpty(identities)) {
identities = ListTools.trim(identities, true, true);
personIds.addAll(business.identity().listPerson(identities));
}
personIds = ListTools.trim(personIds, true, true);
List<String> values = business.person().listPersonDistinguishedNameSorted(personIds);
Wo wo = new Wo();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册