提交 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()));
......
......@@ -42,7 +42,7 @@ class ActionEdit extends BaseAction {
if (null == room) {
throw new ExceptionRoomNotExist(wi.getRoom());
}
//判断开始时间或者结束时间有没有修改过
boolean modifyTime = false;
Date StartTime = wi.getStartTime();
......@@ -53,15 +53,17 @@ class ActionEdit extends BaseAction {
if(CompletedTime.getTime() != meeting.getCompletedTime().getTime()) {
modifyTime = true;
}
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());
......@@ -69,7 +71,7 @@ class ActionEdit extends BaseAction {
emc.persist(meeting, CheckPersistType.all);
emc.commit();
if (ConfirmStatus.allow.equals(meeting.getConfirmStatus())) {
if(modifyTime) { //开始时间或者结束时间有修改过
for (String _s : wi.getInvitePersonList()) {
MessageFactory.meeting_invite(_s, meeting, room);
......@@ -79,7 +81,10 @@ class ActionEdit extends BaseAction {
MessageFactory.meeting_invite(_s, meeting, room);
}
}
for (String _s : inviteDelPersonList) {
MessageFactory.meeting_deleteInvitePerson(_s, meeting);
}
this.notifyMeetingInviteMessage(business, meeting);
}
Wo wo = new Wo();
......
......@@ -42,7 +42,7 @@ class ActionModify extends BaseAction {
if (null == room) {
throw new ExceptionRoomNotExist(wi.getRoom());
}
//判断开始时间或者结束时间有没有修改过
boolean modifyTime = false;
Date StartTime = wi.getStartTime();
......@@ -53,25 +53,27 @@ class ActionModify extends BaseAction {
if(CompletedTime.getTime() != meeting.getCompletedTime().getTime()) {
modifyTime = true;
}
emc.beginTransaction(Meeting.class);
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())) {
throw new ExceptionRoomNotAvailable(room.getName());
}
emc.persist(meeting, CheckPersistType.all);
emc.commit();
if (ConfirmStatus.allow.equals(meeting.getConfirmStatus())) {
if(modifyTime) { //开始时间或者结束时间有修改过
for (String _s : wi.getInvitePersonList()) {
MessageFactory.meeting_invite(_s, meeting, room);
......@@ -81,7 +83,11 @@ class ActionModify extends BaseAction {
MessageFactory.meeting_invite(_s, meeting, room);
}
}
for (String _s : inviteDelPersonList) {
MessageFactory.meeting_deleteInvitePerson(_s, meeting);
}
this.notifyMeetingInviteMessage(business, meeting);
}
Wo wo = new Wo();
......
......@@ -86,12 +86,23 @@ 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);
os.addAll(business.organization().person().list(category.getPersonList()));
os.addAll(business.organization().person().listWithIdentity(category.getIdentityList()));
os.addAll(business.organization().person().listWithUnitSubDirect(category.getUnitList()));
os.addAll(business.organization().person().list( category.getUnknownList()) );
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()));
}
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;
}
}
\ No newline at end of file
}
......@@ -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
......@@ -142,8 +154,8 @@ public class Meeting extends SliceJpaObject {
@ElementIndex(name = TABLE + IndexNameMiddle + invitePersonList_FIELDNAME + ElementIndexNameSuffix)
@CheckPersist(allowEmpty = true)
private List<String> invitePersonList;
public static final String inviteDelPersonList_FIELDNAME = "inviteDelPersonList";
@FieldDescribe("邀请人员,身份,组织已删列表.")
@PersistentCollection(fetch = FetchType.EAGER)
......@@ -416,7 +428,7 @@ public class Meeting extends SliceJpaObject {
/**
* 添加一个签到人员
*
*
* @param distinguishedName
*/
public void addCheckinPerson(String distinguishedName) {
......@@ -425,7 +437,7 @@ public class Meeting extends SliceJpaObject {
/**
* 删除一个签到人员
*
*
* @param distinguishedName
*/
public void removeCheckinPerson(String distinguishedName) {
......@@ -439,7 +451,12 @@ public class Meeting extends SliceJpaObject {
public void setInviteDelPersonList(List<String> inviteDelPersonList) {
this.inviteDelPersonList = inviteDelPersonList;
}
}
\ No newline at end of file
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();
......@@ -86,4 +92,4 @@ class ActionListWithGroup extends BaseAction {
}
}
\ No newline at end of file
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册