提交 228f7221 编写于 作者: Z zhourui

splitValueList

上级 8674ca6f
......@@ -598,4 +598,12 @@ public class ListTools {
return list.subList(start, end);
}
public static <E> void set(List<E> list, int index, E element) {
if (index < 0) {
list.set(list.size() + index, element);
} else {
list.set(index, element);
}
}
}
\ No newline at end of file
......@@ -19,8 +19,18 @@ import javax.persistence.PostLoad;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import javax.persistence.UniqueConstraint;
import org.apache.commons.lang3.StringUtils;
import org.apache.openjpa.persistence.Persistent;
import org.apache.openjpa.persistence.PersistentCollection;
import org.apache.openjpa.persistence.jdbc.ContainerTable;
import org.apache.openjpa.persistence.jdbc.ElementColumn;
import org.apache.openjpa.persistence.jdbc.ElementIndex;
import org.apache.openjpa.persistence.jdbc.Index;
import org.apache.openjpa.persistence.jdbc.Strategy;
import com.x.base.core.entity.JpaObject;
import com.x.base.core.entity.SliceJpaObject;
import com.x.base.core.entity.annotation.CheckPersist;
......@@ -34,15 +44,6 @@ import com.x.base.core.project.tools.StringTools;
import com.x.processplatform.core.entity.PersistenceProperties;
import com.x.processplatform.core.entity.element.ActivityType;
import org.apache.commons.lang3.StringUtils;
import org.apache.openjpa.persistence.Persistent;
import org.apache.openjpa.persistence.PersistentCollection;
import org.apache.openjpa.persistence.jdbc.ContainerTable;
import org.apache.openjpa.persistence.jdbc.ElementColumn;
import org.apache.openjpa.persistence.jdbc.ElementIndex;
import org.apache.openjpa.persistence.jdbc.Index;
import org.apache.openjpa.persistence.jdbc.Strategy;
@Entity
@ContainerEntity(dumpSize = 1000, type = ContainerEntity.Type.content, reference = ContainerEntity.Reference.strong)
@Table(name = PersistenceProperties.Content.Work.table, uniqueConstraints = {
......@@ -96,6 +97,7 @@ public class Work extends SliceJpaObject implements ProjectionInterface {
public void postLoad() {
if ((null != this.properties) && StringUtils.isNotEmpty(this.getProperties().getTitle())) {
this.title = this.getProperties().getTitle();
this.splitValueList = this.getProperties().getSplitValueList();
}
}
......@@ -145,8 +147,20 @@ public class Work extends SliceJpaObject implements ProjectionInterface {
: WORKCREATETYPE_SURFACE;
}
public List<String> getSplitValueList() {
return this.splitValueList;
}
public void setSplitValueList(List<String> splitValueList) {
this.splitValueList = splitValueList;
this.getProperties().setSplitValueList(splitValueList);
}
/* 修改过的Set Get 方法 */
@Transient
private List<String> splitValueList;
public static final String job_FIELDNAME = "job";
@FieldDescribe("工作")
@Column(length = JpaObject.length_id, name = ColumnNamePrefix + job_FIELDNAME)
......@@ -161,14 +175,6 @@ public class Work extends SliceJpaObject implements ProjectionInterface {
@CheckPersist(allowEmpty = true)
private String title;
// public static final String titleLob_FIELDNAME = "titleLob";
// @FieldDescribe("标题,长文本")
// @Lob
// @Basic(fetch = FetchType.EAGER)
// @Column(length = JpaObject.length_1M, name = ColumnNamePrefix +
// titleLob_FIELDNAME)
// private String titleLob;
public static final String startTime_FIELDNAME = "startTime";
@FieldDescribe("工作开始时间")
@Temporal(TemporalType.TIMESTAMP)
......
......@@ -7,9 +7,11 @@ import com.x.base.core.entity.JsonProperties;
public class WorkLogProperties extends JsonProperties {
private static final long serialVersionUID = -4149341123576111783L;
private List<String> splitTokenList;
private List<String> splitValueList;
private List<String> splitValueList = new ArrayList<>();
private String splitToken;
......@@ -17,14 +19,14 @@ public class WorkLogProperties extends JsonProperties {
public List<String> getSplitTokenList() {
if (null == splitTokenList) {
this.splitTokenList = new ArrayList<String>();
this.splitTokenList = new ArrayList<>();
}
return splitTokenList;
}
public List<String> getSplitValueList() {
if (null == splitValueList) {
this.splitValueList = new ArrayList<String>();
this.splitValueList = new ArrayList<>();
}
return splitValueList;
}
......
......@@ -3,27 +3,33 @@ package com.x.processplatform.core.entity.content;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import com.x.base.core.entity.JsonProperties;
import com.x.base.core.project.annotation.FieldDescribe;
public class WorkProperties extends JsonProperties {
private static final long serialVersionUID = -62236689373222398L;
@FieldDescribe("强制待办处理人")
private List<String> manualForceTaskIdentityList = new ArrayList<>();
@FieldDescribe("授权对象")
private LinkedHashMap<String, String> manualEmpowerMap = new LinkedHashMap<>();
private Map<String, String> manualEmpowerMap = new LinkedHashMap<>();
@FieldDescribe("服务回调值")
private LinkedHashMap<String, Object> serviceValue = new LinkedHashMap<>();
private Map<String, Object> serviceValue = new LinkedHashMap<>();
@FieldDescribe("标题")
private String title;
@FieldDescribe("拆分值列表")
private List<String> splitValueList = new ArrayList<>();
public List<String> getManualForceTaskIdentityList() {
if (this.manualForceTaskIdentityList == null) {
this.manualForceTaskIdentityList = new ArrayList<String>();
this.manualForceTaskIdentityList = new ArrayList<>();
}
return this.manualForceTaskIdentityList;
}
......@@ -32,25 +38,25 @@ public class WorkProperties extends JsonProperties {
this.manualForceTaskIdentityList = manualForceTaskIdentityList;
}
public LinkedHashMap<String, String> getManualEmpowerMap() {
public Map<String, String> getManualEmpowerMap() {
if (this.manualEmpowerMap == null) {
this.manualEmpowerMap = new LinkedHashMap<String, String>();
this.manualEmpowerMap = new LinkedHashMap<>();
}
return this.manualEmpowerMap;
}
public void setManualEmpowerMap(LinkedHashMap<String, String> manualEmpowerMap) {
public void setManualEmpowerMap(Map<String, String> manualEmpowerMap) {
this.manualEmpowerMap = manualEmpowerMap;
}
public LinkedHashMap<String, Object> getServiceValue() {
public Map<String, Object> getServiceValue() {
if (this.serviceValue == null) {
this.serviceValue = new LinkedHashMap<String, Object>();
this.serviceValue = new LinkedHashMap<>();
}
return this.serviceValue;
}
public void setServiceValue(LinkedHashMap<String, Object> serviceValue) {
public void setServiceValue(Map<String, Object> serviceValue) {
this.serviceValue = serviceValue;
}
......@@ -62,4 +68,15 @@ public class WorkProperties extends JsonProperties {
this.title = title;
}
public List<String> getSplitValueList() {
if (null == this.splitValueList) {
this.splitValueList = new ArrayList<>();
}
return this.splitValueList;
}
public void setSplitValueList(List<String> splitValueList) {
this.splitValueList = splitValueList;
}
}
......@@ -58,7 +58,6 @@ public class MergeProcessor extends AbstractMergeProcessor {
aeiObjects.getDeleteWorkLogs().add(obj);
});
} else {
/* 完全找不到合并的文档,唯一一份 */
Work branch = this.findWorkBranch(aeiObjects);
if (null != branch) {
aeiObjects.getWork().setSplitting(true);
......@@ -69,10 +68,12 @@ public class MergeProcessor extends AbstractMergeProcessor {
aeiObjects.getWork().setSplitValue("");
results.add(aeiObjects.getWork());
} else {
// 完全找不到合并的文档,唯一一份
aeiObjects.getWork().setSplitting(false);
aeiObjects.getWork().setSplitTokenList(new ArrayList<String>());
aeiObjects.getWork().setSplitToken("");
aeiObjects.getWork().setSplitTokenList(new ArrayList<>());
aeiObjects.getWork().setSplitValue("");
aeiObjects.getWork().setSplitValueList(new ArrayList<>());
results.add(aeiObjects.getWork());
}
}
......
......@@ -2,6 +2,7 @@ package com.x.processplatform.service.processing.processor.split;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import org.apache.commons.lang3.StringUtils;
......@@ -43,36 +44,44 @@ public class SplitProcessor extends AbstractSplitProcessor {
aeiObjects.getWork().setSplitting(true);
aeiObjects.getWork().setSplitToken(StringTools.uniqueToken());
aeiObjects.getWork().getSplitTokenList().add(aeiObjects.getWork().getSplitToken());
aeiObjects.getWork().setSplitValue("");
List<String> splitValues = this.splitWithPath(aeiObjects, split);
if (splitValues.isEmpty()) {
throw new ExceptionSplitEmptySplitValue(split.getName(), aeiObjects.getWork().getTitle(),
aeiObjects.getWork().getId(), aeiObjects.getWork().getJob());
}
/* 先将当前文档标志拆分值 */
// 先将当前文档标志拆分值
aeiObjects.getWork().setSplitValue(splitValues.get(0));
aeiObjects.getWork().getSplitValueList().add(splitValues.get(0));
results.add(aeiObjects.getWork());
WorkLog mainWorkLog = aeiObjects.getWorkLogs().stream()
Optional<WorkLog> optionalWorkLog = aeiObjects.getWorkLogs().stream()
.filter(o -> StringUtils.equals(aeiObjects.getWork().getActivityToken(), o.getFromActivityToken()))
.findFirst().orElse(null);
.findFirst();
if (optionalWorkLog.isPresent()) {
WorkLog mainWorkLog = optionalWorkLog.get();
mainWorkLog.setSplitting(true);
mainWorkLog.setSplitToken(aeiObjects.getWork().getSplitToken());
mainWorkLog.getProperties().getSplitTokenList().add(aeiObjects.getWork().getSplitToken());
mainWorkLog.setSplitValue(splitValues.get(0));
mainWorkLog.getProperties().getSplitValueList().add(aeiObjects.getWork().getSplitValue());
aeiObjects.getUpdateWorkLogs().add(mainWorkLog);
/* 产生后续的拆分文档并标记拆分值 */
// 产生后续的拆分文档并标记拆分值
for (int i = 1; i < splitValues.size(); i++) {
// 将文档存放在一起
Work splitWork = new Work(aeiObjects.getWork());
/* 将文档存放在一起 */
// 替work换拆分值
splitWork.setSplitValue(splitValues.get(i));
ListTools.set(splitWork.getSplitValueList(), -1, splitValues.get(i));
aeiObjects.getCreateWorks().add(splitWork);
WorkLog splitWorkLog = new WorkLog(mainWorkLog);
splitWorkLog.setSplitWork(aeiObjects.getWork().getId());
splitWorkLog.setWork(splitWork.getId());
// 替workLog换拆分值
splitWorkLog.setSplitValue(splitValues.get(i));
ListTools.set(splitWorkLog.getProperties().getSplitValueList(), -1, splitValues.get(i));
aeiObjects.getCreateWorkLogs().add(splitWorkLog);
results.add(splitWork);
}
}
return results;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册