TSK-1769: TaskQuery on CustomFields distinguishes between empty / null.
This commit is contained in:
parent
bd2c2746cb
commit
2c89353fc7
|
@ -24,7 +24,7 @@ INSERT INTO TASK VALUES('TKI:000000000000000000000000000000000020', 'ETI:0000000
|
||||||
INSERT INTO TASK VALUES('TKI:000000000000000000000000000000000021', 'ETI:000000000000000000000000000000000021', '2018-01-29 15:55:21', null , null , '2018-01-29 15:55:21', null , '2018-01-29 15:55:00', '2018-01-30 15:55:00', 'Widerruf' , 'creator_user_id' , 'Widerruf' , null , 2 , -1 , 'READY' , 'EXTERN' , 'L1050' , 'CLI:100000000000000000000000000000000003', 'WBI:100000000000000000000000000000000001' , 'GPK_KSC' , 'DOMAIN_A', 'PI_0000000000021' , 'DOC_0000000000000000021' , null , '00' , 'PASystem' , '00' , 'SDNR' , '11223344' , false , false , null , 'NONE' , null , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , 'abc' , '' , '' , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 );
|
INSERT INTO TASK VALUES('TKI:000000000000000000000000000000000021', 'ETI:000000000000000000000000000000000021', '2018-01-29 15:55:21', null , null , '2018-01-29 15:55:21', null , '2018-01-29 15:55:00', '2018-01-30 15:55:00', 'Widerruf' , 'creator_user_id' , 'Widerruf' , null , 2 , -1 , 'READY' , 'EXTERN' , 'L1050' , 'CLI:100000000000000000000000000000000003', 'WBI:100000000000000000000000000000000001' , 'GPK_KSC' , 'DOMAIN_A', 'PI_0000000000021' , 'DOC_0000000000000000021' , null , '00' , 'PASystem' , '00' , 'SDNR' , '11223344' , false , false , null , 'NONE' , null , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , 'abc' , '' , '' , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 );
|
||||||
INSERT INTO TASK VALUES('TKI:000000000000000000000000000000000022', 'ETI:000000000000000000000000000000000022', '2018-01-29 15:55:22', null , null , '2018-01-29 15:55:22', null , '2018-01-29 15:55:00', '2018-01-30 15:55:00', 'Widerruf' , 'creator_user_id' , 'Widerruf' , null , 2 , -1 , 'READY' , 'EXTERN' , 'L1050' , 'CLI:100000000000000000000000000000000003', 'WBI:100000000000000000000000000000000001' , 'GPK_KSC' , 'DOMAIN_A', 'PI_0000000000022' , 'DOC_0000000000000000022' , null , '00' , 'PASystem' , '00' , 'SDNR' , '11223344' , false , false , null , 'NONE' , null , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , 'abc' , '' , '' , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 );
|
INSERT INTO TASK VALUES('TKI:000000000000000000000000000000000022', 'ETI:000000000000000000000000000000000022', '2018-01-29 15:55:22', null , null , '2018-01-29 15:55:22', null , '2018-01-29 15:55:00', '2018-01-30 15:55:00', 'Widerruf' , 'creator_user_id' , 'Widerruf' , null , 2 , -1 , 'READY' , 'EXTERN' , 'L1050' , 'CLI:100000000000000000000000000000000003', 'WBI:100000000000000000000000000000000001' , 'GPK_KSC' , 'DOMAIN_A', 'PI_0000000000022' , 'DOC_0000000000000000022' , null , '00' , 'PASystem' , '00' , 'SDNR' , '11223344' , false , false , null , 'NONE' , null , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , 'abc' , '' , '' , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 );
|
||||||
INSERT INTO TASK VALUES('TKI:000000000000000000000000000000000023', 'ETI:000000000000000000000000000000000023', '2018-01-29 15:55:23', null , null , '2018-01-29 15:55:23', null , '2018-01-29 15:55:00', '2018-01-30 15:55:00', 'Widerruf' , 'creator_user_id' , 'Widerruf' , null , 2 , -1 , 'READY' , 'EXTERN' , 'L1050' , 'CLI:100000000000000000000000000000000003', 'WBI:100000000000000000000000000000000001' , 'GPK_KSC' , 'DOMAIN_A', 'PI_0000000000023' , 'DOC_0000000000000000023' , null , '00' , 'PASystem' , '00' , 'SDNR' , '11223344' , false , false , null , 'NONE' , null , '' , '' , '' , '' , '' , '' , '' , 'lnp' , '' , '' , '' , '' , '' , 'abc' , '' , '' , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 );
|
INSERT INTO TASK VALUES('TKI:000000000000000000000000000000000023', 'ETI:000000000000000000000000000000000023', '2018-01-29 15:55:23', null , null , '2018-01-29 15:55:23', null , '2018-01-29 15:55:00', '2018-01-30 15:55:00', 'Widerruf' , 'creator_user_id' , 'Widerruf' , null , 2 , -1 , 'READY' , 'EXTERN' , 'L1050' , 'CLI:100000000000000000000000000000000003', 'WBI:100000000000000000000000000000000001' , 'GPK_KSC' , 'DOMAIN_A', 'PI_0000000000023' , 'DOC_0000000000000000023' , null , '00' , 'PASystem' , '00' , 'SDNR' , '11223344' , false , false , null , 'NONE' , null , '' , '' , '' , '' , '' , '' , '' , 'lnp' , '' , '' , '' , '' , '' , 'abc' , '' , '' , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 );
|
||||||
INSERT INTO TASK VALUES('TKI:000000000000000000000000000000000024', 'ETI:000000000000000000000000000000000024', '2018-01-29 15:55:24', null , null , '2018-01-29 15:55:24', null , '2018-01-29 15:55:00', '2018-01-30 15:55:00', 'Widerruf' , 'creator_user_id' , 'Widerruf' , null , 2 , -1 , 'READY' , 'EXTERN' , 'L1050' , 'CLI:100000000000000000000000000000000003', 'WBI:100000000000000000000000000000000001' , 'GPK_KSC' , 'DOMAIN_A', 'PI_0000000000024' , 'DOC_0000000000000000024' , null , '00' , 'PASystem' , '00' , 'SDNR' , '11223344' , false , false , null , 'NONE' , null , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , 'abc' , '' , '' , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 );
|
INSERT INTO TASK VALUES('TKI:000000000000000000000000000000000024', 'ETI:000000000000000000000000000000000024', '2018-01-29 15:55:24', null , null , '2018-01-29 15:55:24', null , '2018-01-29 15:55:00', '2018-01-30 15:55:00', 'Widerruf' , 'creator_user_id' , 'Widerruf' , null , 2 , -1 , 'READY' , 'EXTERN' , 'L1050' , 'CLI:100000000000000000000000000000000003', 'WBI:100000000000000000000000000000000001' , 'GPK_KSC' , 'DOMAIN_A', 'PI_0000000000024' , 'DOC_0000000000000000024' , null , '00' , 'PASystem' , '00' , 'SDNR' , '11223344' , false , false , null , 'NONE' , null , '' , '' , '' , '' , '' , '' , '' , '' , null , '' , '' , '' , '' , 'abc' , '' , '' , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 );
|
||||||
-- Tasks for WorkOnTaskAccTest
|
-- Tasks for WorkOnTaskAccTest
|
||||||
INSERT INTO TASK VALUES('TKI:000000000000000000000000000000000025', 'ETI:000000000000000000000000000000000025', '2018-01-29 15:55:24', null , null , '2018-01-29 15:55:24', '2018-01-29 15:55:24', '2018-01-29 15:55:00', '2018-01-30 15:55:00', 'Widerruf' , 'creator_user_id' , 'Widerruf' , null , 2 , -1 , 'READY' , 'EXTERN' , 'L1050' , 'CLI:100000000000000000000000000000000003', 'WBI:100000000000000000000000000000000007' , 'USER-1-2' , 'DOMAIN_A', 'PI_0000000000025' , 'DOC_0000000000000000025' , null , 'abcd00' , 'PASystem' , '00' , 'SDNR' , '98765432' , false , false , null , 'NONE' , null , '' , '' , '' , '' , '' , '' , '' , '' , '' , 'ert' , 'ert' , 'ert' , 'ert' , 'abc' , 'ert' , 'ert' , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 );
|
INSERT INTO TASK VALUES('TKI:000000000000000000000000000000000025', 'ETI:000000000000000000000000000000000025', '2018-01-29 15:55:24', null , null , '2018-01-29 15:55:24', '2018-01-29 15:55:24', '2018-01-29 15:55:00', '2018-01-30 15:55:00', 'Widerruf' , 'creator_user_id' , 'Widerruf' , null , 2 , -1 , 'READY' , 'EXTERN' , 'L1050' , 'CLI:100000000000000000000000000000000003', 'WBI:100000000000000000000000000000000007' , 'USER-1-2' , 'DOMAIN_A', 'PI_0000000000025' , 'DOC_0000000000000000025' , null , 'abcd00' , 'PASystem' , '00' , 'SDNR' , '98765432' , false , false , null , 'NONE' , null , '' , '' , '' , '' , '' , '' , '' , '' , '' , 'ert' , 'ert' , 'ert' , 'ert' , 'abc' , 'ert' , 'ert' , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 );
|
||||||
INSERT INTO TASK VALUES('TKI:000000000000000000000000000000000026', 'ETI:000000000000000000000000000000000026', '2018-01-29 15:55:24', '2018-01-30 15:55:24', null , '2018-01-30 15:55:24', '2018-01-29 15:55:24', '2018-01-29 15:55:00', '2018-01-30 15:55:00', 'Widerruf' , 'creator_user_id' , 'Widerruf' , null , 2 , -1 , 'CLAIMED' , 'EXTERN' , 'L1050' , 'CLI:100000000000000000000000000000000003', 'WBI:100000000000000000000000000000000007' , 'USER-1-2' , 'DOMAIN_A', 'PI_0000000000026' , 'DOC_0000000000000000026' , 'user-1-1' , 'bcde00' , 'PASystem' , '00' , 'SDNR' , '98765432' , true , false , null , 'NONE' , null , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , 'abc' , '' , '' , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 );
|
INSERT INTO TASK VALUES('TKI:000000000000000000000000000000000026', 'ETI:000000000000000000000000000000000026', '2018-01-29 15:55:24', '2018-01-30 15:55:24', null , '2018-01-30 15:55:24', '2018-01-29 15:55:24', '2018-01-29 15:55:00', '2018-01-30 15:55:00', 'Widerruf' , 'creator_user_id' , 'Widerruf' , null , 2 , -1 , 'CLAIMED' , 'EXTERN' , 'L1050' , 'CLI:100000000000000000000000000000000003', 'WBI:100000000000000000000000000000000007' , 'USER-1-2' , 'DOMAIN_A', 'PI_0000000000026' , 'DOC_0000000000000000026' , 'user-1-1' , 'bcde00' , 'PASystem' , '00' , 'SDNR' , '98765432' , true , false , null , 'NONE' , null , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , 'abc' , '' , '' , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 );
|
||||||
|
|
|
@ -12,13 +12,22 @@ public class SqlProviderUtil {
|
||||||
private SqlProviderUtil() {}
|
private SqlProviderUtil() {}
|
||||||
|
|
||||||
public static StringBuilder whereIn(String collection, String column, StringBuilder sb) {
|
public static StringBuilder whereIn(String collection, String column, StringBuilder sb) {
|
||||||
return sb.append("<if test='")
|
sb.append("<if test='")
|
||||||
.append(collection)
|
.append(collection)
|
||||||
.append(" != null'>AND ")
|
.append(" != null'>AND (")
|
||||||
|
.append("<choose>")
|
||||||
|
.append("<when test='" + collection + ".length > 0'>")
|
||||||
.append(column)
|
.append(column)
|
||||||
.append(" IN(<foreach item='item' collection='")
|
.append(" IN(<foreach item='item' collection='")
|
||||||
.append(collection)
|
.append(collection)
|
||||||
.append("' separator=',' >#{item}</foreach>)</if> ");
|
.append("' separator=',' >#{item}</foreach>)")
|
||||||
|
.append("</when>")
|
||||||
|
.append("<otherwise>0=1</otherwise>")
|
||||||
|
.append("</choose>");
|
||||||
|
if (column.contains("t.CUSTOM_")) {
|
||||||
|
sb.append("<if test='" + collection + "ContainsNull'> OR " + column + " IS NULL </if>");
|
||||||
|
}
|
||||||
|
return sb.append(")</if> ");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static StringBuilder whereIn(String collection, String column) {
|
public static StringBuilder whereIn(String collection, String column) {
|
||||||
|
@ -26,13 +35,24 @@ public class SqlProviderUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static StringBuilder whereNotIn(String collection, String column, StringBuilder sb) {
|
public static StringBuilder whereNotIn(String collection, String column, StringBuilder sb) {
|
||||||
return sb.append("<if test='")
|
sb.append("<if test='")
|
||||||
.append(collection)
|
.append(collection)
|
||||||
.append(" != null'>AND ")
|
.append(" != null'>AND (")
|
||||||
|
.append("<choose>")
|
||||||
|
.append("<when test='" + collection + ".length > 0'>")
|
||||||
.append(column)
|
.append(column)
|
||||||
.append(" NOT IN(<foreach item='item' collection='")
|
.append(" NOT IN(<foreach item='item' collection='")
|
||||||
.append(collection)
|
.append(collection)
|
||||||
.append("' separator=',' >#{item}</foreach>)</if> ");
|
.append("' separator=',' >#{item}</foreach>)")
|
||||||
|
.append("</when>")
|
||||||
|
.append("<otherwise>1=1</otherwise>")
|
||||||
|
.append("</choose>");
|
||||||
|
if (column.contains("t.CUSTOM_")) {
|
||||||
|
sb.append("<if test='" + collection + "ContainsNull'> AND " + column + " IS NOT NULL </if>");
|
||||||
|
sb.append("<if test='!" + collection + "ContainsNull'> OR " + column + " IS NULL </if>");
|
||||||
|
}
|
||||||
|
sb.append(")</if> ");
|
||||||
|
return sb;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static StringBuilder whereNotIn(String collection, String column) {
|
public static StringBuilder whereNotIn(String collection, String column) {
|
||||||
|
|
|
@ -83,9 +83,6 @@ public class ClassificationImpl extends ClassificationSummaryImpl implements Cla
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCustomAttribute(ClassificationCustomField customField, String value) {
|
public void setCustomAttribute(ClassificationCustomField customField, String value) {
|
||||||
if (value == null) {
|
|
||||||
value = "";
|
|
||||||
}
|
|
||||||
switch (customField) {
|
switch (customField) {
|
||||||
case CUSTOM_1:
|
case CUSTOM_1:
|
||||||
custom1 = value;
|
custom1 = value;
|
||||||
|
|
|
@ -20,14 +20,14 @@ public class ClassificationSummaryImpl implements ClassificationSummary {
|
||||||
protected int priority;
|
protected int priority;
|
||||||
protected String serviceLevel; // PddDThhHmmM
|
protected String serviceLevel; // PddDThhHmmM
|
||||||
protected String type;
|
protected String type;
|
||||||
protected String custom1 = "";
|
protected String custom1;
|
||||||
protected String custom2 = "";
|
protected String custom2;
|
||||||
protected String custom3 = "";
|
protected String custom3;
|
||||||
protected String custom4 = "";
|
protected String custom4;
|
||||||
protected String custom5 = "";
|
protected String custom5;
|
||||||
protected String custom6 = "";
|
protected String custom6;
|
||||||
protected String custom7 = "";
|
protected String custom7;
|
||||||
protected String custom8 = "";
|
protected String custom8;
|
||||||
|
|
||||||
public ClassificationSummaryImpl() {}
|
public ClassificationSummaryImpl() {}
|
||||||
|
|
||||||
|
@ -179,11 +179,7 @@ public class ClassificationSummaryImpl implements ClassificationSummary {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCustom1(String custom1) {
|
public void setCustom1(String custom1) {
|
||||||
if (custom1 == null) {
|
this.custom1 = custom1;
|
||||||
this.custom1 = "";
|
|
||||||
} else {
|
|
||||||
this.custom1 = custom1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom2() {
|
public String getCustom2() {
|
||||||
|
@ -191,11 +187,7 @@ public class ClassificationSummaryImpl implements ClassificationSummary {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCustom2(String custom2) {
|
public void setCustom2(String custom2) {
|
||||||
if (custom2 == null) {
|
this.custom2 = custom2;
|
||||||
this.custom2 = "";
|
|
||||||
} else {
|
|
||||||
this.custom2 = custom2;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom3() {
|
public String getCustom3() {
|
||||||
|
@ -203,11 +195,7 @@ public class ClassificationSummaryImpl implements ClassificationSummary {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCustom3(String custom3) {
|
public void setCustom3(String custom3) {
|
||||||
if (custom3 == null) {
|
this.custom3 = custom3;
|
||||||
this.custom3 = "";
|
|
||||||
} else {
|
|
||||||
this.custom3 = custom3;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom4() {
|
public String getCustom4() {
|
||||||
|
@ -215,11 +203,7 @@ public class ClassificationSummaryImpl implements ClassificationSummary {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCustom4(String custom4) {
|
public void setCustom4(String custom4) {
|
||||||
if (custom4 == null) {
|
this.custom4 = custom4;
|
||||||
this.custom4 = "";
|
|
||||||
} else {
|
|
||||||
this.custom4 = custom4;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom5() {
|
public String getCustom5() {
|
||||||
|
@ -227,11 +211,7 @@ public class ClassificationSummaryImpl implements ClassificationSummary {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCustom5(String custom5) {
|
public void setCustom5(String custom5) {
|
||||||
if (custom5 == null) {
|
this.custom5 = custom5;
|
||||||
this.custom5 = "";
|
|
||||||
} else {
|
|
||||||
this.custom5 = custom5;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom6() {
|
public String getCustom6() {
|
||||||
|
@ -239,11 +219,7 @@ public class ClassificationSummaryImpl implements ClassificationSummary {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCustom6(String custom6) {
|
public void setCustom6(String custom6) {
|
||||||
if (custom6 == null) {
|
this.custom6 = custom6;
|
||||||
this.custom6 = "";
|
|
||||||
} else {
|
|
||||||
this.custom6 = custom6;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom7() {
|
public String getCustom7() {
|
||||||
|
@ -251,11 +227,7 @@ public class ClassificationSummaryImpl implements ClassificationSummary {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCustom7(String custom7) {
|
public void setCustom7(String custom7) {
|
||||||
if (custom7 == null) {
|
this.custom7 = custom7;
|
||||||
this.custom7 = "";
|
|
||||||
} else {
|
|
||||||
this.custom7 = custom7;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom8() {
|
public String getCustom8() {
|
||||||
|
@ -263,11 +235,7 @@ public class ClassificationSummaryImpl implements ClassificationSummary {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCustom8(String custom8) {
|
public void setCustom8(String custom8) {
|
||||||
if (custom8 == null) {
|
this.custom8 = custom8;
|
||||||
this.custom8 = "";
|
|
||||||
} else {
|
|
||||||
this.custom8 = custom8;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -89,9 +89,9 @@ public interface MonitorMapper {
|
||||||
@Result(column = "STATE", property = "state")
|
@Result(column = "STATE", property = "state")
|
||||||
@Result(column = "COUNT", property = "count")
|
@Result(column = "COUNT", property = "count")
|
||||||
List<TaskQueryItem> getTasksCountByState(
|
List<TaskQueryItem> getTasksCountByState(
|
||||||
@Param("domains") List<String> domains,
|
@Param("domains") String[] domains,
|
||||||
@Param("states") List<TaskState> states,
|
@Param("states") TaskState[] states,
|
||||||
@Param("workbasketIds") List<String> workbasketIds,
|
@Param("workbasketIds") String[] workbasketIds,
|
||||||
@Param("priorityMinimum") Integer priorityMinimum);
|
@Param("priorityMinimum") Integer priorityMinimum);
|
||||||
|
|
||||||
@SelectProvider(
|
@SelectProvider(
|
||||||
|
|
|
@ -62,7 +62,7 @@ public class ClassificationReportBuilderImpl
|
||||||
report.getRows().isEmpty()
|
report.getRows().isEmpty()
|
||||||
? null
|
? null
|
||||||
: report.getRows().keySet().toArray(new String[0]))
|
: report.getRows().keySet().toArray(new String[0]))
|
||||||
.domainIn(domains != null ? domains.toArray(new String[0]) : null)
|
.domainIn(this.domains)
|
||||||
.list()
|
.list()
|
||||||
.stream()
|
.stream()
|
||||||
.collect(
|
.collect(
|
||||||
|
@ -106,7 +106,7 @@ public class ClassificationReportBuilderImpl
|
||||||
classificationService
|
classificationService
|
||||||
.createClassificationQuery()
|
.createClassificationQuery()
|
||||||
.keyIn(keys.length == 0 ? null : keys)
|
.keyIn(keys.length == 0 ? null : keys)
|
||||||
.domainIn(domains != null ? domains.toArray(new String[0]) : null)
|
.domainIn(this.domains)
|
||||||
.list()
|
.list()
|
||||||
.stream()
|
.stream()
|
||||||
.collect(
|
.collect(
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package pro.taskana.monitor.internal.reports;
|
package pro.taskana.monitor.internal.reports;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -21,9 +22,9 @@ public class TaskStatusReportBuilderImpl implements TaskStatusReport.Builder {
|
||||||
private final InternalTaskanaEngine taskanaEngine;
|
private final InternalTaskanaEngine taskanaEngine;
|
||||||
private final MonitorMapper monitorMapper;
|
private final MonitorMapper monitorMapper;
|
||||||
private final WorkbasketService workbasketService;
|
private final WorkbasketService workbasketService;
|
||||||
private List<String> domains;
|
private String[] domains;
|
||||||
private List<TaskState> states;
|
private TaskState[] states;
|
||||||
private List<String> workbasketIds;
|
private String[] workbasketIds;
|
||||||
private Integer priorityMinimum;
|
private Integer priorityMinimum;
|
||||||
|
|
||||||
public TaskStatusReportBuilderImpl(
|
public TaskStatusReportBuilderImpl(
|
||||||
|
@ -41,7 +42,8 @@ public class TaskStatusReportBuilderImpl implements TaskStatusReport.Builder {
|
||||||
List<TaskQueryItem> tasks =
|
List<TaskQueryItem> tasks =
|
||||||
this.monitorMapper.getTasksCountByState(
|
this.monitorMapper.getTasksCountByState(
|
||||||
this.domains, this.states, this.workbasketIds, this.priorityMinimum);
|
this.domains, this.states, this.workbasketIds, this.priorityMinimum);
|
||||||
TaskStatusReport report = new TaskStatusReport(this.states);
|
TaskStatusReport report =
|
||||||
|
new TaskStatusReport(this.states != null ? Arrays.asList(this.states) : null);
|
||||||
report.addItems(tasks);
|
report.addItems(tasks);
|
||||||
Map<String, String> displayMap =
|
Map<String, String> displayMap =
|
||||||
taskanaEngine
|
taskanaEngine
|
||||||
|
@ -51,7 +53,7 @@ public class TaskStatusReportBuilderImpl implements TaskStatusReport.Builder {
|
||||||
workbasketService
|
workbasketService
|
||||||
.createWorkbasketQuery()
|
.createWorkbasketQuery()
|
||||||
.keyIn(report.getRows().keySet().toArray(new String[0]))
|
.keyIn(report.getRows().keySet().toArray(new String[0]))
|
||||||
.domainIn(domains != null ? domains.toArray(new String[0]) : null)
|
.domainIn(domains)
|
||||||
.list()
|
.list()
|
||||||
.stream()
|
.stream()
|
||||||
.collect(
|
.collect(
|
||||||
|
@ -68,7 +70,9 @@ public class TaskStatusReportBuilderImpl implements TaskStatusReport.Builder {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TaskStatusReportBuilderImpl stateIn(List<TaskState> states) {
|
public TaskStatusReportBuilderImpl stateIn(List<TaskState> states) {
|
||||||
this.states = states;
|
if (states != null) {
|
||||||
|
this.states = states.toArray(new TaskState[0]);
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,13 +84,17 @@ public class TaskStatusReportBuilderImpl implements TaskStatusReport.Builder {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TaskStatusReportBuilderImpl domainIn(List<String> domains) {
|
public TaskStatusReportBuilderImpl domainIn(List<String> domains) {
|
||||||
this.domains = domains;
|
if (domains != null) {
|
||||||
|
this.domains = domains.toArray(new String[0]);
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Builder workbasketIdsIn(List<String> workbasketIds) {
|
public Builder workbasketIdsIn(List<String> workbasketIds) {
|
||||||
this.workbasketIds = workbasketIds;
|
if (workbasketIds != null) {
|
||||||
|
this.workbasketIds = workbasketIds.toArray(new String[0]);
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package pro.taskana.monitor.internal.reports;
|
package pro.taskana.monitor.internal.reports;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -41,12 +40,12 @@ abstract class TimeIntervalReportBuilderImpl<
|
||||||
protected MonitorMapper monitorMapper;
|
protected MonitorMapper monitorMapper;
|
||||||
protected List<H> columnHeaders;
|
protected List<H> columnHeaders;
|
||||||
protected boolean inWorkingDays;
|
protected boolean inWorkingDays;
|
||||||
protected List<String> workbasketIds;
|
protected String[] workbasketIds;
|
||||||
protected List<TaskState> states;
|
protected TaskState[] states;
|
||||||
protected List<String> classificationCategories;
|
protected String[] classificationCategories;
|
||||||
protected List<String> domains;
|
protected String[] domains;
|
||||||
protected List<String> classificationIds;
|
protected String[] classificationIds;
|
||||||
protected List<String> excludedClassificationIds;
|
protected String[] excludedClassificationIds;
|
||||||
protected WorkingDaysToDaysConverter converter;
|
protected WorkingDaysToDaysConverter converter;
|
||||||
private String[] custom1In;
|
private String[] custom1In;
|
||||||
private String[] custom1NotIn;
|
private String[] custom1NotIn;
|
||||||
|
@ -118,37 +117,49 @@ abstract class TimeIntervalReportBuilderImpl<
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public B workbasketIdIn(List<String> workbasketIds) {
|
public B workbasketIdIn(List<String> workbasketIds) {
|
||||||
this.workbasketIds = new ArrayList<>(workbasketIds);
|
if (workbasketIds != null) {
|
||||||
|
this.workbasketIds = workbasketIds.toArray(new String[0]);
|
||||||
|
}
|
||||||
return _this();
|
return _this();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public B stateIn(List<TaskState> states) {
|
public B stateIn(List<TaskState> states) {
|
||||||
this.states = new ArrayList<>(states);
|
if (states != null) {
|
||||||
|
this.states = states.toArray(new TaskState[0]);
|
||||||
|
}
|
||||||
return _this();
|
return _this();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public B classificationCategoryIn(List<String> classificationCategories) {
|
public B classificationCategoryIn(List<String> classificationCategories) {
|
||||||
this.classificationCategories = new ArrayList<>(classificationCategories);
|
if (classificationCategories != null) {
|
||||||
|
this.classificationCategories = classificationCategories.toArray(new String[0]);
|
||||||
|
}
|
||||||
return _this();
|
return _this();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public B classificationIdIn(List<String> classificationIds) {
|
public B classificationIdIn(List<String> classificationIds) {
|
||||||
this.classificationIds = new ArrayList<>(classificationIds);
|
if (classificationIds != null) {
|
||||||
|
this.classificationIds = classificationIds.toArray(new String[0]);
|
||||||
|
}
|
||||||
return _this();
|
return _this();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public B excludedClassificationIdIn(List<String> excludedClassificationIds) {
|
public B excludedClassificationIdIn(List<String> excludedClassificationIds) {
|
||||||
this.excludedClassificationIds = new ArrayList<>(excludedClassificationIds);
|
if (excludedClassificationIds != null) {
|
||||||
|
this.excludedClassificationIds = excludedClassificationIds.toArray(new String[0]);
|
||||||
|
}
|
||||||
return _this();
|
return _this();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public B domainIn(List<String> domains) {
|
public B domainIn(List<String> domains) {
|
||||||
this.domains = new ArrayList<>(domains);
|
if (domains != null) {
|
||||||
|
this.domains = domains.toArray(new String[0]);
|
||||||
|
}
|
||||||
return _this();
|
return _this();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package pro.taskana.monitor.internal.reports;
|
package pro.taskana.monitor.internal.reports;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -25,12 +24,12 @@ public class WorkbasketPriorityReportBuilderImpl implements WorkbasketPriorityRe
|
||||||
private final MonitorMapper monitorMapper;
|
private final MonitorMapper monitorMapper;
|
||||||
protected List<PriorityColumnHeader> columnHeaders;
|
protected List<PriorityColumnHeader> columnHeaders;
|
||||||
protected boolean inWorkingDays;
|
protected boolean inWorkingDays;
|
||||||
protected List<String> workbasketIds;
|
protected String[] workbasketIds;
|
||||||
protected List<TaskState> states;
|
protected TaskState[] states;
|
||||||
protected List<String> classificationCategories;
|
protected String[] classificationCategories;
|
||||||
protected List<String> domains;
|
protected String[] domains;
|
||||||
protected List<String> classificationIds;
|
protected String[] classificationIds;
|
||||||
protected List<String> excludedClassificationIds;
|
protected String[] excludedClassificationIds;
|
||||||
protected WorkingDaysToDaysConverter converter;
|
protected WorkingDaysToDaysConverter converter;
|
||||||
private WorkbasketType[] workbasketTypes;
|
private WorkbasketType[] workbasketTypes;
|
||||||
private String[] custom1In;
|
private String[] custom1In;
|
||||||
|
@ -121,37 +120,49 @@ public class WorkbasketPriorityReportBuilderImpl implements WorkbasketPriorityRe
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Builder workbasketIdIn(List<String> workbasketIds) {
|
public Builder workbasketIdIn(List<String> workbasketIds) {
|
||||||
this.workbasketIds = new ArrayList<>(workbasketIds);
|
if (workbasketIds != null) {
|
||||||
|
this.workbasketIds = workbasketIds.toArray(new String[0]);
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Builder stateIn(List<TaskState> states) {
|
public Builder stateIn(List<TaskState> states) {
|
||||||
this.states = new ArrayList<>(states);
|
if (states != null) {
|
||||||
|
this.states = states.toArray(new TaskState[0]);
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Builder classificationCategoryIn(List<String> classificationCategories) {
|
public Builder classificationCategoryIn(List<String> classificationCategories) {
|
||||||
this.classificationCategories = new ArrayList<>(classificationCategories);
|
if (classificationCategories != null) {
|
||||||
|
this.classificationCategories = classificationCategories.toArray(new String[0]);
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Builder classificationIdIn(List<String> classificationIds) {
|
public Builder classificationIdIn(List<String> classificationIds) {
|
||||||
this.classificationIds = new ArrayList<>(classificationIds);
|
if (classificationIds != null) {
|
||||||
|
this.classificationIds = classificationIds.toArray(new String[0]);
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Builder excludedClassificationIdIn(List<String> excludedClassificationIds) {
|
public Builder excludedClassificationIdIn(List<String> excludedClassificationIds) {
|
||||||
this.excludedClassificationIds = new ArrayList<>(excludedClassificationIds);
|
if (excludedClassificationIds != null) {
|
||||||
|
this.excludedClassificationIds = excludedClassificationIds.toArray(new String[0]);
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Builder domainIn(List<String> domains) {
|
public Builder domainIn(List<String> domains) {
|
||||||
this.domains = new ArrayList<>(domains);
|
if (domains != null) {
|
||||||
|
this.domains = domains.toArray(new String[0]);
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,7 @@ public class WorkbasketReportBuilderImpl
|
||||||
workbasketService
|
workbasketService
|
||||||
.createWorkbasketQuery()
|
.createWorkbasketQuery()
|
||||||
.keyIn(report.getRows().keySet().toArray(new String[0]))
|
.keyIn(report.getRows().keySet().toArray(new String[0]))
|
||||||
.domainIn(domains != null ? domains.toArray(new String[0]) : null)
|
.domainIn(domains)
|
||||||
.list()
|
.list()
|
||||||
.stream()
|
.stream()
|
||||||
.collect(
|
.collect(
|
||||||
|
|
|
@ -257,67 +257,99 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
// endregion
|
// endregion
|
||||||
// region customAttributes
|
// region customAttributes
|
||||||
private String[] custom1In;
|
private String[] custom1In;
|
||||||
|
private boolean custom1InContainsNull;
|
||||||
private String[] custom1NotIn;
|
private String[] custom1NotIn;
|
||||||
|
private boolean custom1NotInContainsNull;
|
||||||
private String[] custom1Like;
|
private String[] custom1Like;
|
||||||
private String[] custom1NotLike;
|
private String[] custom1NotLike;
|
||||||
private String[] custom2In;
|
private String[] custom2In;
|
||||||
|
private boolean custom2InContainsNull;
|
||||||
private String[] custom2NotIn;
|
private String[] custom2NotIn;
|
||||||
|
private boolean custom2NotInContainsNull;
|
||||||
private String[] custom2Like;
|
private String[] custom2Like;
|
||||||
private String[] custom2NotLike;
|
private String[] custom2NotLike;
|
||||||
private String[] custom3In;
|
private String[] custom3In;
|
||||||
|
private boolean custom3InContainsNull;
|
||||||
private String[] custom3NotIn;
|
private String[] custom3NotIn;
|
||||||
|
private boolean custom3NotInContainsNull;
|
||||||
private String[] custom3Like;
|
private String[] custom3Like;
|
||||||
private String[] custom3NotLike;
|
private String[] custom3NotLike;
|
||||||
private String[] custom4In;
|
private String[] custom4In;
|
||||||
|
private boolean custom4InContainsNull;
|
||||||
private String[] custom4NotIn;
|
private String[] custom4NotIn;
|
||||||
|
private boolean custom4NotInContainsNull;
|
||||||
private String[] custom4Like;
|
private String[] custom4Like;
|
||||||
private String[] custom4NotLike;
|
private String[] custom4NotLike;
|
||||||
private String[] custom5In;
|
private String[] custom5In;
|
||||||
|
private boolean custom5InContainsNull;
|
||||||
private String[] custom5NotIn;
|
private String[] custom5NotIn;
|
||||||
|
private boolean custom5NotInContainsNull;
|
||||||
private String[] custom5Like;
|
private String[] custom5Like;
|
||||||
private String[] custom5NotLike;
|
private String[] custom5NotLike;
|
||||||
private String[] custom6In;
|
private String[] custom6In;
|
||||||
|
private boolean custom6InContainsNull;
|
||||||
private String[] custom6NotIn;
|
private String[] custom6NotIn;
|
||||||
|
private boolean custom6NotInContainsNull;
|
||||||
private String[] custom6Like;
|
private String[] custom6Like;
|
||||||
private String[] custom6NotLike;
|
private String[] custom6NotLike;
|
||||||
private String[] custom7In;
|
private String[] custom7In;
|
||||||
|
private boolean custom7InContainsNull;
|
||||||
private String[] custom7NotIn;
|
private String[] custom7NotIn;
|
||||||
|
private boolean custom7NotInContainsNull;
|
||||||
private String[] custom7Like;
|
private String[] custom7Like;
|
||||||
private String[] custom7NotLike;
|
private String[] custom7NotLike;
|
||||||
private String[] custom8In;
|
private String[] custom8In;
|
||||||
|
private boolean custom8InContainsNull;
|
||||||
private String[] custom8NotIn;
|
private String[] custom8NotIn;
|
||||||
|
private boolean custom8NotInContainsNull;
|
||||||
private String[] custom8Like;
|
private String[] custom8Like;
|
||||||
private String[] custom8NotLike;
|
private String[] custom8NotLike;
|
||||||
private String[] custom9In;
|
private String[] custom9In;
|
||||||
|
private boolean custom9InContainsNull;
|
||||||
private String[] custom9NotIn;
|
private String[] custom9NotIn;
|
||||||
|
private boolean custom9NotInContainsNull;
|
||||||
private String[] custom9Like;
|
private String[] custom9Like;
|
||||||
private String[] custom9NotLike;
|
private String[] custom9NotLike;
|
||||||
private String[] custom10In;
|
private String[] custom10In;
|
||||||
|
private boolean custom10InContainsNull;
|
||||||
private String[] custom10NotIn;
|
private String[] custom10NotIn;
|
||||||
|
private boolean custom10NotInContainsNull;
|
||||||
private String[] custom10Like;
|
private String[] custom10Like;
|
||||||
private String[] custom10NotLike;
|
private String[] custom10NotLike;
|
||||||
private String[] custom11In;
|
private String[] custom11In;
|
||||||
|
private boolean custom11InContainsNull;
|
||||||
private String[] custom11NotIn;
|
private String[] custom11NotIn;
|
||||||
|
private boolean custom11NotInContainsNull;
|
||||||
private String[] custom11Like;
|
private String[] custom11Like;
|
||||||
private String[] custom11NotLike;
|
private String[] custom11NotLike;
|
||||||
private String[] custom12In;
|
private String[] custom12In;
|
||||||
|
private boolean custom12InContainsNull;
|
||||||
private String[] custom12NotIn;
|
private String[] custom12NotIn;
|
||||||
|
private boolean custom12NotInContainsNull;
|
||||||
private String[] custom12Like;
|
private String[] custom12Like;
|
||||||
private String[] custom12NotLike;
|
private String[] custom12NotLike;
|
||||||
private String[] custom13In;
|
private String[] custom13In;
|
||||||
|
private boolean custom13InContainsNull;
|
||||||
private String[] custom13NotIn;
|
private String[] custom13NotIn;
|
||||||
|
private boolean custom13NotInContainsNull;
|
||||||
private String[] custom13Like;
|
private String[] custom13Like;
|
||||||
private String[] custom13NotLike;
|
private String[] custom13NotLike;
|
||||||
private String[] custom14In;
|
private String[] custom14In;
|
||||||
|
private boolean custom14InContainsNull;
|
||||||
private String[] custom14NotIn;
|
private String[] custom14NotIn;
|
||||||
|
private boolean custom14NotInContainsNull;
|
||||||
private String[] custom14Like;
|
private String[] custom14Like;
|
||||||
private String[] custom14NotLike;
|
private String[] custom14NotLike;
|
||||||
private String[] custom15In;
|
private String[] custom15In;
|
||||||
|
private boolean custom15InContainsNull;
|
||||||
private String[] custom15NotIn;
|
private String[] custom15NotIn;
|
||||||
|
private boolean custom15NotInContainsNull;
|
||||||
private String[] custom15Like;
|
private String[] custom15Like;
|
||||||
private String[] custom15NotLike;
|
private String[] custom15NotLike;
|
||||||
private String[] custom16In;
|
private String[] custom16In;
|
||||||
|
private boolean custom16InContainsNull;
|
||||||
private String[] custom16NotIn;
|
private String[] custom16NotIn;
|
||||||
|
private boolean custom16NotInContainsNull;
|
||||||
private String[] custom16Like;
|
private String[] custom16Like;
|
||||||
private String[] custom16NotLike;
|
private String[] custom16NotLike;
|
||||||
// endregion
|
// endregion
|
||||||
|
@ -1363,54 +1395,109 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
throw new InvalidArgumentException(
|
throw new InvalidArgumentException(
|
||||||
"At least one string has to be provided as a search parameter");
|
"At least one string has to be provided as a search parameter");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<String> conditionList = new ArrayList<>(Arrays.asList(strings));
|
||||||
|
boolean containsNull = conditionList.contains(null);
|
||||||
|
if (containsNull) {
|
||||||
|
conditionList.remove(null);
|
||||||
|
}
|
||||||
|
|
||||||
switch (customField) {
|
switch (customField) {
|
||||||
case CUSTOM_1:
|
case CUSTOM_1:
|
||||||
this.custom1In = strings;
|
this.custom1In = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom1InContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_2:
|
case CUSTOM_2:
|
||||||
this.custom2In = strings;
|
this.custom2In = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom2InContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_3:
|
case CUSTOM_3:
|
||||||
this.custom3In = strings;
|
this.custom3In = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom3InContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_4:
|
case CUSTOM_4:
|
||||||
this.custom4In = strings;
|
this.custom4In = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom4InContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_5:
|
case CUSTOM_5:
|
||||||
this.custom5In = strings;
|
this.custom5In = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom5InContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_6:
|
case CUSTOM_6:
|
||||||
this.custom6In = strings;
|
this.custom6In = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom6InContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_7:
|
case CUSTOM_7:
|
||||||
this.custom7In = strings;
|
this.custom7In = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom7InContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_8:
|
case CUSTOM_8:
|
||||||
this.custom8In = strings;
|
this.custom8In = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom8InContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_9:
|
case CUSTOM_9:
|
||||||
this.custom9In = strings;
|
this.custom9In = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom9InContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_10:
|
case CUSTOM_10:
|
||||||
this.custom10In = strings;
|
this.custom10In = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom10InContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_11:
|
case CUSTOM_11:
|
||||||
this.custom11In = strings;
|
this.custom11In = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom11InContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_12:
|
case CUSTOM_12:
|
||||||
this.custom12In = strings;
|
this.custom12In = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom12InContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_13:
|
case CUSTOM_13:
|
||||||
this.custom13In = strings;
|
this.custom13In = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom13InContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_14:
|
case CUSTOM_14:
|
||||||
this.custom14In = strings;
|
this.custom14In = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom14InContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_15:
|
case CUSTOM_15:
|
||||||
this.custom15In = strings;
|
this.custom15In = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom15InContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_16:
|
case CUSTOM_16:
|
||||||
this.custom16In = strings;
|
this.custom16In = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom16InContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new SystemException("Unknown custom attribute '" + customField + "'");
|
throw new SystemException("Unknown custom attribute '" + customField + "'");
|
||||||
|
@ -1426,54 +1513,107 @@ public class TaskQueryImpl implements TaskQuery {
|
||||||
throw new InvalidArgumentException(
|
throw new InvalidArgumentException(
|
||||||
"At least one string has to be provided as a search parameter");
|
"At least one string has to be provided as a search parameter");
|
||||||
}
|
}
|
||||||
|
List<String> conditionList = new ArrayList<>(Arrays.asList(strings));
|
||||||
|
boolean containsNull = conditionList.contains(null);
|
||||||
|
if (containsNull) {
|
||||||
|
conditionList.remove(null);
|
||||||
|
}
|
||||||
switch (customField) {
|
switch (customField) {
|
||||||
case CUSTOM_1:
|
case CUSTOM_1:
|
||||||
this.custom1NotIn = strings;
|
this.custom1NotIn = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom1NotInContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_2:
|
case CUSTOM_2:
|
||||||
this.custom2NotIn = strings;
|
this.custom2NotIn = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom2NotInContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_3:
|
case CUSTOM_3:
|
||||||
this.custom3NotIn = strings;
|
this.custom3NotIn = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom3NotInContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_4:
|
case CUSTOM_4:
|
||||||
this.custom4NotIn = strings;
|
this.custom4NotIn = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom4NotInContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_5:
|
case CUSTOM_5:
|
||||||
this.custom5NotIn = strings;
|
this.custom5NotIn = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom5NotInContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_6:
|
case CUSTOM_6:
|
||||||
this.custom6NotIn = strings;
|
this.custom6NotIn = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom6NotInContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_7:
|
case CUSTOM_7:
|
||||||
this.custom7NotIn = strings;
|
this.custom7NotIn = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom7NotInContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_8:
|
case CUSTOM_8:
|
||||||
this.custom8NotIn = strings;
|
this.custom8NotIn = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom8NotInContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_9:
|
case CUSTOM_9:
|
||||||
this.custom9NotIn = strings;
|
this.custom9NotIn = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom9NotInContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_10:
|
case CUSTOM_10:
|
||||||
this.custom10NotIn = strings;
|
this.custom10NotIn = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom10NotInContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_11:
|
case CUSTOM_11:
|
||||||
this.custom11NotIn = strings;
|
this.custom11NotIn = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom11NotInContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_12:
|
case CUSTOM_12:
|
||||||
this.custom12NotIn = strings;
|
this.custom12NotIn = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom12NotInContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_13:
|
case CUSTOM_13:
|
||||||
this.custom13NotIn = strings;
|
this.custom13NotIn = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom13NotInContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_14:
|
case CUSTOM_14:
|
||||||
this.custom14NotIn = strings;
|
this.custom14NotIn = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom14NotInContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_15:
|
case CUSTOM_15:
|
||||||
this.custom15NotIn = strings;
|
this.custom15NotIn = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom15NotInContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CUSTOM_16:
|
case CUSTOM_16:
|
||||||
this.custom16NotIn = strings;
|
this.custom16NotIn = conditionList.toArray(new String[0]);
|
||||||
|
if (containsNull) {
|
||||||
|
this.custom16NotInContainsNull = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new SystemException("Unknown custom attribute '" + customField + "'");
|
throw new SystemException("Unknown custom attribute '" + customField + "'");
|
||||||
|
|
|
@ -110,9 +110,6 @@ public class TaskImpl extends TaskSummaryImpl implements Task {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCustomAttribute(TaskCustomField customField, String value) {
|
public void setCustomAttribute(TaskCustomField customField, String value) {
|
||||||
if (value == null) {
|
|
||||||
value = "";
|
|
||||||
}
|
|
||||||
switch (customField) {
|
switch (customField) {
|
||||||
case CUSTOM_1:
|
case CUSTOM_1:
|
||||||
custom1 = value;
|
custom1 = value;
|
||||||
|
|
|
@ -46,22 +46,22 @@ public class TaskSummaryImpl implements TaskSummary {
|
||||||
protected boolean isTransferred;
|
protected boolean isTransferred;
|
||||||
// All objects have to be serializable
|
// All objects have to be serializable
|
||||||
protected List<AttachmentSummary> attachmentSummaries = new ArrayList<>();
|
protected List<AttachmentSummary> attachmentSummaries = new ArrayList<>();
|
||||||
protected String custom1 = "";
|
protected String custom1;
|
||||||
protected String custom2 = "";
|
protected String custom2;
|
||||||
protected String custom3 = "";
|
protected String custom3;
|
||||||
protected String custom4 = "";
|
protected String custom4;
|
||||||
protected String custom5 = "";
|
protected String custom5;
|
||||||
protected String custom6 = "";
|
protected String custom6;
|
||||||
protected String custom7 = "";
|
protected String custom7;
|
||||||
protected String custom8 = "";
|
protected String custom8;
|
||||||
protected String custom9 = "";
|
protected String custom9;
|
||||||
protected String custom10 = "";
|
protected String custom10;
|
||||||
protected String custom11 = "";
|
protected String custom11;
|
||||||
protected String custom12 = "";
|
protected String custom12;
|
||||||
protected String custom13 = "";
|
protected String custom13;
|
||||||
protected String custom14 = "";
|
protected String custom14;
|
||||||
protected String custom15 = "";
|
protected String custom15;
|
||||||
protected String custom16 = "";
|
protected String custom16;
|
||||||
|
|
||||||
public TaskSummaryImpl() {}
|
public TaskSummaryImpl() {}
|
||||||
|
|
||||||
|
@ -422,11 +422,7 @@ public class TaskSummaryImpl implements TaskSummary {
|
||||||
|
|
||||||
// auxiliary Method needed by Mybatis
|
// auxiliary Method needed by Mybatis
|
||||||
public void setCustom1(String custom1) {
|
public void setCustom1(String custom1) {
|
||||||
if (custom1 == null) {
|
this.custom1 = custom1;
|
||||||
this.custom1 = "";
|
|
||||||
} else {
|
|
||||||
this.custom1 = custom1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom2() {
|
public String getCustom2() {
|
||||||
|
@ -435,11 +431,7 @@ public class TaskSummaryImpl implements TaskSummary {
|
||||||
|
|
||||||
// auxiliary Method needed by Mybatis
|
// auxiliary Method needed by Mybatis
|
||||||
public void setCustom2(String custom2) {
|
public void setCustom2(String custom2) {
|
||||||
if (custom2 == null) {
|
this.custom2 = custom2;
|
||||||
this.custom2 = "";
|
|
||||||
} else {
|
|
||||||
this.custom2 = custom2;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom3() {
|
public String getCustom3() {
|
||||||
|
@ -448,11 +440,7 @@ public class TaskSummaryImpl implements TaskSummary {
|
||||||
|
|
||||||
// auxiliary Method needed by Mybatis
|
// auxiliary Method needed by Mybatis
|
||||||
public void setCustom3(String custom3) {
|
public void setCustom3(String custom3) {
|
||||||
if (custom3 == null) {
|
this.custom3 = custom3;
|
||||||
this.custom3 = "";
|
|
||||||
} else {
|
|
||||||
this.custom3 = custom3;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom4() {
|
public String getCustom4() {
|
||||||
|
@ -461,11 +449,7 @@ public class TaskSummaryImpl implements TaskSummary {
|
||||||
|
|
||||||
// auxiliary Method needed by Mybatis
|
// auxiliary Method needed by Mybatis
|
||||||
public void setCustom4(String custom4) {
|
public void setCustom4(String custom4) {
|
||||||
if (custom4 == null) {
|
this.custom4 = custom4;
|
||||||
this.custom4 = "";
|
|
||||||
} else {
|
|
||||||
this.custom4 = custom4;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom5() {
|
public String getCustom5() {
|
||||||
|
@ -474,11 +458,7 @@ public class TaskSummaryImpl implements TaskSummary {
|
||||||
|
|
||||||
// auxiliary Method needed by Mybatis
|
// auxiliary Method needed by Mybatis
|
||||||
public void setCustom5(String custom5) {
|
public void setCustom5(String custom5) {
|
||||||
if (custom5 == null) {
|
this.custom5 = custom5;
|
||||||
this.custom5 = "";
|
|
||||||
} else {
|
|
||||||
this.custom5 = custom5;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom6() {
|
public String getCustom6() {
|
||||||
|
@ -487,11 +467,7 @@ public class TaskSummaryImpl implements TaskSummary {
|
||||||
|
|
||||||
// auxiliary Method needed by Mybatis
|
// auxiliary Method needed by Mybatis
|
||||||
public void setCustom6(String custom6) {
|
public void setCustom6(String custom6) {
|
||||||
if (custom6 == null) {
|
this.custom6 = custom6;
|
||||||
this.custom6 = "";
|
|
||||||
} else {
|
|
||||||
this.custom6 = custom6;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom7() {
|
public String getCustom7() {
|
||||||
|
@ -500,11 +476,7 @@ public class TaskSummaryImpl implements TaskSummary {
|
||||||
|
|
||||||
// auxiliary Method needed by Mybatis
|
// auxiliary Method needed by Mybatis
|
||||||
public void setCustom7(String custom7) {
|
public void setCustom7(String custom7) {
|
||||||
if (custom7 == null) {
|
this.custom7 = custom7;
|
||||||
this.custom7 = "";
|
|
||||||
} else {
|
|
||||||
this.custom7 = custom7;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom8() {
|
public String getCustom8() {
|
||||||
|
@ -513,11 +485,7 @@ public class TaskSummaryImpl implements TaskSummary {
|
||||||
|
|
||||||
// auxiliary Method needed by Mybatis
|
// auxiliary Method needed by Mybatis
|
||||||
public void setCustom8(String custom8) {
|
public void setCustom8(String custom8) {
|
||||||
if (custom8 == null) {
|
this.custom8 = custom8;
|
||||||
this.custom8 = "";
|
|
||||||
} else {
|
|
||||||
this.custom8 = custom8;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom9() {
|
public String getCustom9() {
|
||||||
|
@ -526,11 +494,7 @@ public class TaskSummaryImpl implements TaskSummary {
|
||||||
|
|
||||||
// auxiliary Method needed by Mybatis
|
// auxiliary Method needed by Mybatis
|
||||||
public void setCustom9(String custom9) {
|
public void setCustom9(String custom9) {
|
||||||
if (custom9 == null) {
|
this.custom9 = custom9;
|
||||||
this.custom9 = "";
|
|
||||||
} else {
|
|
||||||
this.custom9 = custom9;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom10() {
|
public String getCustom10() {
|
||||||
|
@ -539,11 +503,7 @@ public class TaskSummaryImpl implements TaskSummary {
|
||||||
|
|
||||||
// auxiliary Method needed by Mybatis
|
// auxiliary Method needed by Mybatis
|
||||||
public void setCustom10(String custom10) {
|
public void setCustom10(String custom10) {
|
||||||
if (custom10 == null) {
|
this.custom10 = custom10;
|
||||||
this.custom10 = "";
|
|
||||||
} else {
|
|
||||||
this.custom10 = custom10;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom11() {
|
public String getCustom11() {
|
||||||
|
@ -552,11 +512,7 @@ public class TaskSummaryImpl implements TaskSummary {
|
||||||
|
|
||||||
// auxiliary Method needed by Mybatis
|
// auxiliary Method needed by Mybatis
|
||||||
public void setCustom11(String custom11) {
|
public void setCustom11(String custom11) {
|
||||||
if (custom11 == null) {
|
this.custom11 = custom11;
|
||||||
this.custom11 = "";
|
|
||||||
} else {
|
|
||||||
this.custom11 = custom11;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom12() {
|
public String getCustom12() {
|
||||||
|
@ -565,11 +521,7 @@ public class TaskSummaryImpl implements TaskSummary {
|
||||||
|
|
||||||
// auxiliary Method needed by Mybatis
|
// auxiliary Method needed by Mybatis
|
||||||
public void setCustom12(String custom12) {
|
public void setCustom12(String custom12) {
|
||||||
if (custom12 == null) {
|
this.custom12 = custom12;
|
||||||
this.custom12 = "";
|
|
||||||
} else {
|
|
||||||
this.custom12 = custom12;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom13() {
|
public String getCustom13() {
|
||||||
|
@ -578,11 +530,7 @@ public class TaskSummaryImpl implements TaskSummary {
|
||||||
|
|
||||||
// auxiliary Method needed by Mybatis
|
// auxiliary Method needed by Mybatis
|
||||||
public void setCustom13(String custom13) {
|
public void setCustom13(String custom13) {
|
||||||
if (custom13 == null) {
|
this.custom13 = custom13;
|
||||||
this.custom13 = "";
|
|
||||||
} else {
|
|
||||||
this.custom13 = custom13;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom14() {
|
public String getCustom14() {
|
||||||
|
@ -591,11 +539,7 @@ public class TaskSummaryImpl implements TaskSummary {
|
||||||
|
|
||||||
// auxiliary Method needed by Mybatis
|
// auxiliary Method needed by Mybatis
|
||||||
public void setCustom14(String custom14) {
|
public void setCustom14(String custom14) {
|
||||||
if (custom14 == null) {
|
this.custom14 = custom14;
|
||||||
this.custom14 = "";
|
|
||||||
} else {
|
|
||||||
this.custom14 = custom14;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom15() {
|
public String getCustom15() {
|
||||||
|
@ -604,11 +548,7 @@ public class TaskSummaryImpl implements TaskSummary {
|
||||||
|
|
||||||
// auxiliary Method needed by Mybatis
|
// auxiliary Method needed by Mybatis
|
||||||
public void setCustom15(String custom15) {
|
public void setCustom15(String custom15) {
|
||||||
if (custom15 == null) {
|
this.custom15 = custom15;
|
||||||
this.custom15 = "";
|
|
||||||
} else {
|
|
||||||
this.custom15 = custom15;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom16() {
|
public String getCustom16() {
|
||||||
|
@ -617,11 +557,7 @@ public class TaskSummaryImpl implements TaskSummary {
|
||||||
|
|
||||||
// auxiliary Method needed by Mybatis
|
// auxiliary Method needed by Mybatis
|
||||||
public void setCustom16(String custom16) {
|
public void setCustom16(String custom16) {
|
||||||
if (custom16 == null) {
|
this.custom16 = custom16;
|
||||||
this.custom16 = "";
|
|
||||||
} else {
|
|
||||||
this.custom16 = custom16;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean canEqual(Object other) {
|
protected boolean canEqual(Object other) {
|
||||||
|
|
|
@ -26,9 +26,6 @@ public class WorkbasketImpl extends WorkbasketSummaryImpl implements Workbasket
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCustomAttribute(WorkbasketCustomField customField, String value) {
|
public void setCustomAttribute(WorkbasketCustomField customField, String value) {
|
||||||
if (value == null) {
|
|
||||||
value = "";
|
|
||||||
}
|
|
||||||
switch (customField) {
|
switch (customField) {
|
||||||
case CUSTOM_1:
|
case CUSTOM_1:
|
||||||
custom1 = value;
|
custom1 = value;
|
||||||
|
|
|
@ -17,10 +17,10 @@ public class WorkbasketSummaryImpl implements WorkbasketSummary {
|
||||||
protected String owner;
|
protected String owner;
|
||||||
protected String domain;
|
protected String domain;
|
||||||
protected WorkbasketType type;
|
protected WorkbasketType type;
|
||||||
protected String custom1 = "";
|
protected String custom1;
|
||||||
protected String custom2 = "";
|
protected String custom2;
|
||||||
protected String custom3 = "";
|
protected String custom3;
|
||||||
protected String custom4 = "";
|
protected String custom4;
|
||||||
protected String orgLevel1;
|
protected String orgLevel1;
|
||||||
protected String orgLevel2;
|
protected String orgLevel2;
|
||||||
protected String orgLevel3;
|
protected String orgLevel3;
|
||||||
|
@ -130,11 +130,7 @@ public class WorkbasketSummaryImpl implements WorkbasketSummary {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCustom1(String custom1) {
|
public void setCustom1(String custom1) {
|
||||||
if (custom1 == null) {
|
this.custom1 = custom1;
|
||||||
this.custom1 = "";
|
|
||||||
} else {
|
|
||||||
this.custom1 = custom1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom2() {
|
public String getCustom2() {
|
||||||
|
@ -142,11 +138,7 @@ public class WorkbasketSummaryImpl implements WorkbasketSummary {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCustom2(String custom2) {
|
public void setCustom2(String custom2) {
|
||||||
if (custom2 == null) {
|
this.custom2 = custom2;
|
||||||
this.custom2 = "";
|
|
||||||
} else {
|
|
||||||
this.custom2 = custom2;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom3() {
|
public String getCustom3() {
|
||||||
|
@ -154,11 +146,7 @@ public class WorkbasketSummaryImpl implements WorkbasketSummary {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCustom3(String custom3) {
|
public void setCustom3(String custom3) {
|
||||||
if (custom3 == null) {
|
this.custom3 = custom3;
|
||||||
this.custom3 = "";
|
|
||||||
} else {
|
|
||||||
this.custom3 = custom3;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCustom4() {
|
public String getCustom4() {
|
||||||
|
@ -166,11 +154,7 @@ public class WorkbasketSummaryImpl implements WorkbasketSummary {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCustom4(String custom4) {
|
public void setCustom4(String custom4) {
|
||||||
if (custom4 == null) {
|
this.custom4 = custom4;
|
||||||
this.custom4 = "";
|
|
||||||
} else {
|
|
||||||
this.custom4 = custom4;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -4,14 +4,11 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||||
|
|
||||||
import acceptance.AbstractAccTest;
|
import acceptance.AbstractAccTest;
|
||||||
import java.util.Arrays;
|
|
||||||
import org.assertj.core.api.SoftAssertions;
|
|
||||||
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.TestTemplate;
|
import org.junit.jupiter.api.TestTemplate;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
|
||||||
import pro.taskana.classification.api.ClassificationCustomField;
|
|
||||||
import pro.taskana.classification.api.ClassificationService;
|
import pro.taskana.classification.api.ClassificationService;
|
||||||
import pro.taskana.classification.api.exceptions.ClassificationAlreadyExistException;
|
import pro.taskana.classification.api.exceptions.ClassificationAlreadyExistException;
|
||||||
import pro.taskana.classification.api.exceptions.MalformedServiceLevelException;
|
import pro.taskana.classification.api.exceptions.MalformedServiceLevelException;
|
||||||
|
@ -55,48 +52,6 @@ class CreateClassificationAccTest extends AbstractAccTest {
|
||||||
assertThat(classification.getId()).startsWith(IdGenerator.ID_PREFIX_CLASSIFICATION);
|
assertThat(classification.getId()).startsWith(IdGenerator.ID_PREFIX_CLASSIFICATION);
|
||||||
}
|
}
|
||||||
|
|
||||||
@WithAccessId(user = "businessadmin")
|
|
||||||
@Test
|
|
||||||
void should_InitializeCustomFieldsToEmptyString_When_ClassificationIsCreated() throws Exception {
|
|
||||||
Classification classification = CLASSIFICATION_SERVICE.newClassification("Key01", "", "TASK");
|
|
||||||
classification.setIsValidInDomain(true);
|
|
||||||
classification.setServiceLevel("P1D");
|
|
||||||
Classification createdClassification =
|
|
||||||
CLASSIFICATION_SERVICE.createClassification(classification);
|
|
||||||
|
|
||||||
SoftAssertions softly = new SoftAssertions();
|
|
||||||
Arrays.stream(ClassificationCustomField.values())
|
|
||||||
.forEach(
|
|
||||||
customField ->
|
|
||||||
softly
|
|
||||||
.assertThat(createdClassification.getCustomAttribute(customField))
|
|
||||||
.describedAs("CustomField was null: " + customField)
|
|
||||||
.isNotNull());
|
|
||||||
softly.assertAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
@WithAccessId(user = "businessadmin")
|
|
||||||
@Test
|
|
||||||
void should_SetCustomFieldToEmptyString_When_SetToNullByUser() throws Exception {
|
|
||||||
Classification classification = CLASSIFICATION_SERVICE.newClassification("Key02", "", "TASK");
|
|
||||||
classification.setIsValidInDomain(true);
|
|
||||||
classification.setServiceLevel("P1D");
|
|
||||||
Arrays.stream(ClassificationCustomField.values())
|
|
||||||
.forEach(customField -> classification.setCustomAttribute(customField, null));
|
|
||||||
Classification createdClassification =
|
|
||||||
CLASSIFICATION_SERVICE.createClassification(classification);
|
|
||||||
|
|
||||||
SoftAssertions softly = new SoftAssertions();
|
|
||||||
Arrays.stream(ClassificationCustomField.values())
|
|
||||||
.forEach(
|
|
||||||
customField ->
|
|
||||||
softly
|
|
||||||
.assertThat(createdClassification.getCustomAttribute(customField))
|
|
||||||
.describedAs("CustomField was null: " + customField)
|
|
||||||
.isNotNull());
|
|
||||||
softly.assertAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
@WithAccessId(user = "businessadmin")
|
@WithAccessId(user = "businessadmin")
|
||||||
@Test
|
@Test
|
||||||
void testCreateClassificationWithMasterCopy() throws Exception {
|
void testCreateClassificationWithMasterCopy() throws Exception {
|
||||||
|
|
|
@ -7,9 +7,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||||
import acceptance.AbstractAccTest;
|
import acceptance.AbstractAccTest;
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.assertj.core.api.SoftAssertions;
|
|
||||||
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.TestTemplate;
|
import org.junit.jupiter.api.TestTemplate;
|
||||||
|
@ -76,26 +74,6 @@ class UpdateClassificationAccTest extends AbstractAccTest {
|
||||||
assertThat(modifiedBefore).isBefore(updatedClassification.getModified());
|
assertThat(modifiedBefore).isBefore(updatedClassification.getModified());
|
||||||
}
|
}
|
||||||
|
|
||||||
@WithAccessId(user = "businessadmin")
|
|
||||||
@Test
|
|
||||||
void should_SetCustomAttributeToEmptyString_When_SetToNullDuringUpdate() throws Exception {
|
|
||||||
Classification classification = classificationService.getClassification("T2100", "DOMAIN_A");
|
|
||||||
Arrays.stream(ClassificationCustomField.values())
|
|
||||||
.forEach(customField -> classification.setCustomAttribute(customField, null));
|
|
||||||
Classification updatedClassification =
|
|
||||||
classificationService.updateClassification(classification);
|
|
||||||
|
|
||||||
SoftAssertions softly = new SoftAssertions();
|
|
||||||
Arrays.stream(ClassificationCustomField.values())
|
|
||||||
.forEach(
|
|
||||||
customField ->
|
|
||||||
softly
|
|
||||||
.assertThat(updatedClassification.getCustomAttribute(customField))
|
|
||||||
.describedAs("CustomField was null: " + customField)
|
|
||||||
.isNotNull());
|
|
||||||
softly.assertAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void should_ThrowException_When_UserIsNotAuthorized() throws Exception {
|
void should_ThrowException_When_UserIsNotAuthorized() throws Exception {
|
||||||
Classification classification = classificationService.getClassification("T2100", "DOMAIN_A");
|
Classification classification = classificationService.getClassification("T2100", "DOMAIN_A");
|
||||||
|
|
|
@ -8,7 +8,6 @@ import acceptance.TaskTestMapper;
|
||||||
import acceptance.TaskanaEngineProxy;
|
import acceptance.TaskanaEngineProxy;
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
@ -16,7 +15,6 @@ import java.util.stream.Collectors;
|
||||||
import java.util.stream.IntStream;
|
import java.util.stream.IntStream;
|
||||||
import org.apache.ibatis.session.Configuration;
|
import org.apache.ibatis.session.Configuration;
|
||||||
import org.apache.ibatis.session.SqlSession;
|
import org.apache.ibatis.session.SqlSession;
|
||||||
import org.assertj.core.api.SoftAssertions;
|
|
||||||
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.TestTemplate;
|
import org.junit.jupiter.api.TestTemplate;
|
||||||
|
@ -576,52 +574,6 @@ class CreateTaskAccTest extends AbstractAccTest {
|
||||||
assertThat(createdTask.getName()).isEqualTo("Test Name");
|
assertThat(createdTask.getName()).isEqualTo("Test Name");
|
||||||
}
|
}
|
||||||
|
|
||||||
@WithAccessId(user = "user-1-1")
|
|
||||||
@Test
|
|
||||||
void should_SetCustomFieldToEmptyString_When_SetToNullByUser() throws Exception {
|
|
||||||
|
|
||||||
Task newTask = taskService.newTask("USER-1-1", "DOMAIN_A");
|
|
||||||
newTask.setClassificationKey("T2100");
|
|
||||||
newTask.setPrimaryObjRef(
|
|
||||||
createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", "VNR", "1234567"));
|
|
||||||
newTask.setName("Test Name");
|
|
||||||
Arrays.stream(TaskCustomField.values())
|
|
||||||
.forEach(customField -> newTask.setCustomAttribute(customField, null));
|
|
||||||
Task createdTask = taskService.createTask(newTask);
|
|
||||||
|
|
||||||
SoftAssertions softly = new SoftAssertions();
|
|
||||||
Arrays.stream(TaskCustomField.values())
|
|
||||||
.forEach(
|
|
||||||
customField ->
|
|
||||||
softly
|
|
||||||
.assertThat(createdTask.getCustomAttribute(customField))
|
|
||||||
.describedAs("CustomField was null: " + customField)
|
|
||||||
.isNotNull());
|
|
||||||
softly.assertAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
@WithAccessId(user = "user-1-1")
|
|
||||||
@Test
|
|
||||||
void should_InitializeCustomFieldsToEmptyString_When_TaskIsCreated() throws Exception {
|
|
||||||
|
|
||||||
Task newTask = taskService.newTask("USER-1-1", "DOMAIN_A");
|
|
||||||
newTask.setClassificationKey("T2100");
|
|
||||||
newTask.setPrimaryObjRef(
|
|
||||||
createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", "VNR", "1234567"));
|
|
||||||
newTask.setName("Test Name");
|
|
||||||
Task createdTask = taskService.createTask(newTask);
|
|
||||||
|
|
||||||
SoftAssertions softly = new SoftAssertions();
|
|
||||||
Arrays.stream(TaskCustomField.values())
|
|
||||||
.forEach(
|
|
||||||
customField ->
|
|
||||||
softly
|
|
||||||
.assertThat(createdTask.getCustomAttribute(customField))
|
|
||||||
.describedAs("CustomField was null: " + customField)
|
|
||||||
.isNotNull());
|
|
||||||
softly.assertAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
@WithAccessId(user = "user-1-1")
|
@WithAccessId(user = "user-1-1")
|
||||||
@Test
|
@Test
|
||||||
void testUseClassificationMetadataFromCorrectDomainForNewTask() throws Exception {
|
void testUseClassificationMetadataFromCorrectDomainForNewTask() throws Exception {
|
||||||
|
|
|
@ -343,6 +343,102 @@ class QueryTasksAccTest extends AbstractAccTest {
|
||||||
assertThat(results).isEqualTo(expectedCount);
|
assertThat(results).isEqualTo(expectedCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@WithAccessId(user = "admin")
|
||||||
|
@Test
|
||||||
|
void should_ReturnTasksWithEmptyCustomField_When_QueriedByCustomFieldWhichIsNull()
|
||||||
|
throws InvalidArgumentException {
|
||||||
|
List<TaskSummary> results =
|
||||||
|
taskService
|
||||||
|
.createTaskQuery()
|
||||||
|
.customAttributeIn(TaskCustomField.CUSTOM_9, new String[] {null})
|
||||||
|
.list();
|
||||||
|
assertThat(results).hasSize(1);
|
||||||
|
|
||||||
|
results =
|
||||||
|
taskService
|
||||||
|
.createTaskQuery()
|
||||||
|
.customAttributeIn(TaskCustomField.CUSTOM_9, null, "custom9")
|
||||||
|
.list();
|
||||||
|
assertThat(results).hasSize(2);
|
||||||
|
|
||||||
|
results =
|
||||||
|
taskService
|
||||||
|
.createTaskQuery()
|
||||||
|
.customAttributeIn(TaskCustomField.CUSTOM_9, new String[] {null})
|
||||||
|
.customAttributeIn(TaskCustomField.CUSTOM_14, "abc")
|
||||||
|
.list();
|
||||||
|
assertThat(results).hasSize(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@WithAccessId(user = "admin")
|
||||||
|
@Test
|
||||||
|
void should_ReturnTasksWithNullCustomField_When_QueriedByCustomFieldWhichIsEmpty()
|
||||||
|
throws InvalidArgumentException {
|
||||||
|
List<TaskSummary> results =
|
||||||
|
taskService.createTaskQuery().customAttributeIn(TaskCustomField.CUSTOM_9, "").list();
|
||||||
|
assertThat(results).hasSize(86);
|
||||||
|
}
|
||||||
|
|
||||||
|
@WithAccessId(user = "admin")
|
||||||
|
@Test
|
||||||
|
void should_AllowToQueryTasksByCustomFieldWithNullAndEmptyInParallel()
|
||||||
|
throws InvalidArgumentException {
|
||||||
|
List<TaskSummary> results =
|
||||||
|
taskService
|
||||||
|
.createTaskQuery()
|
||||||
|
.customAttributeIn(TaskCustomField.CUSTOM_9, "", null)
|
||||||
|
.list();
|
||||||
|
assertThat(results).hasSize(87);
|
||||||
|
}
|
||||||
|
|
||||||
|
@WithAccessId(user = "admin")
|
||||||
|
@Test
|
||||||
|
void should_ReturnTasksWithEmptyCustomField_When_QueriedByCustomFieldWhichIsNotNull()
|
||||||
|
throws InvalidArgumentException {
|
||||||
|
List<TaskSummary> results =
|
||||||
|
taskService
|
||||||
|
.createTaskQuery()
|
||||||
|
.customAttributeNotIn(TaskCustomField.CUSTOM_9, new String[] {null})
|
||||||
|
.list();
|
||||||
|
assertThat(results).hasSize(87);
|
||||||
|
|
||||||
|
results =
|
||||||
|
taskService
|
||||||
|
.createTaskQuery()
|
||||||
|
.customAttributeNotIn(TaskCustomField.CUSTOM_9, null, "custom9")
|
||||||
|
.list();
|
||||||
|
assertThat(results).hasSize(86);
|
||||||
|
|
||||||
|
results =
|
||||||
|
taskService
|
||||||
|
.createTaskQuery()
|
||||||
|
.customAttributeNotIn(TaskCustomField.CUSTOM_9, new String[] {null})
|
||||||
|
.customAttributeNotIn(TaskCustomField.CUSTOM_10, "custom10")
|
||||||
|
.list();
|
||||||
|
assertThat(results).hasSize(86);
|
||||||
|
}
|
||||||
|
|
||||||
|
@WithAccessId(user = "admin")
|
||||||
|
@Test
|
||||||
|
void should_ReturnTasksWithNullCustomField_When_QueriedByCustomFieldWhichIsNotEmpty()
|
||||||
|
throws InvalidArgumentException {
|
||||||
|
List<TaskSummary> results =
|
||||||
|
taskService.createTaskQuery().customAttributeNotIn(TaskCustomField.CUSTOM_9, "").list();
|
||||||
|
assertThat(results).hasSize(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@WithAccessId(user = "admin")
|
||||||
|
@Test
|
||||||
|
void should_AllowToQueryTasksByCustomFieldWithNeitherNullOrEmptyInParallel()
|
||||||
|
throws InvalidArgumentException {
|
||||||
|
List<TaskSummary> results =
|
||||||
|
taskService
|
||||||
|
.createTaskQuery()
|
||||||
|
.customAttributeNotIn(TaskCustomField.CUSTOM_9, "", null)
|
||||||
|
.list();
|
||||||
|
assertThat(results).hasSize(1);
|
||||||
|
}
|
||||||
|
|
||||||
@WithAccessId(user = "admin")
|
@WithAccessId(user = "admin")
|
||||||
@Test
|
@Test
|
||||||
void should_ThrowException_When_SearchArgumentInLikeQueryIsNotGiven() {
|
void should_ThrowException_When_SearchArgumentInLikeQueryIsNotGiven() {
|
||||||
|
|
|
@ -15,11 +15,9 @@ import static pro.taskana.task.api.TaskCustomField.CUSTOM_7;
|
||||||
|
|
||||||
import acceptance.AbstractAccTest;
|
import acceptance.AbstractAccTest;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import org.assertj.core.api.SoftAssertions;
|
|
||||||
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.TestTemplate;
|
import org.junit.jupiter.api.TestTemplate;
|
||||||
|
@ -245,25 +243,6 @@ class UpdateTaskAccTest extends AbstractAccTest {
|
||||||
assertThat(updatedTask).isNotNull();
|
assertThat(updatedTask).isNotNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
@WithAccessId(user = "user-1-1")
|
|
||||||
@Test
|
|
||||||
void should_SetCustomAttributeToEmptyString_When_SetToNullDuringUpdate() throws Exception {
|
|
||||||
Task task = taskService.getTask("TKI:000000000000000000000000000000000000");
|
|
||||||
Arrays.stream(TaskCustomField.values())
|
|
||||||
.forEach(customField -> task.setCustomAttribute(customField, null));
|
|
||||||
Task updatedTask = taskService.updateTask(task);
|
|
||||||
|
|
||||||
SoftAssertions softly = new SoftAssertions();
|
|
||||||
Arrays.stream(TaskCustomField.values())
|
|
||||||
.forEach(
|
|
||||||
customField ->
|
|
||||||
softly
|
|
||||||
.assertThat(updatedTask.getCustomAttribute(customField))
|
|
||||||
.describedAs("CustomField was null: " + customField)
|
|
||||||
.isNotNull());
|
|
||||||
softly.assertAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
@WithAccessId(user = "user-1-1")
|
@WithAccessId(user = "user-1-1")
|
||||||
@Test
|
@Test
|
||||||
void should_ThrowException_When_ModificationOfWorkbasketKeyIsAttempted() throws Exception {
|
void should_ThrowException_When_ModificationOfWorkbasketKeyIsAttempted() throws Exception {
|
||||||
|
@ -317,7 +296,7 @@ class UpdateTaskAccTest extends AbstractAccTest {
|
||||||
assertThat(task.getCustomAttribute(CUSTOM_3)).isEqualTo("This is modifiedValue 3");
|
assertThat(task.getCustomAttribute(CUSTOM_3)).isEqualTo("This is modifiedValue 3");
|
||||||
assertThat(task.getCustomAttribute(CUSTOM_7)).isEqualTo("This is modifiedValue 7");
|
assertThat(task.getCustomAttribute(CUSTOM_7)).isEqualTo("This is modifiedValue 7");
|
||||||
assertThat(task.getCustomAttribute(CUSTOM_16)).isEqualTo("This is modifiedValue 16");
|
assertThat(task.getCustomAttribute(CUSTOM_16)).isEqualTo("This is modifiedValue 16");
|
||||||
assertThat(task.getCustomAttribute(CUSTOM_14)).isEmpty();
|
assertThat(task.getCustomAttribute(CUSTOM_14)).isNull();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -345,7 +324,7 @@ class UpdateTaskAccTest extends AbstractAccTest {
|
||||||
assertThat(task.getCustomAttribute(CUSTOM_10)).isEqualTo("This is modifiedValue 10");
|
assertThat(task.getCustomAttribute(CUSTOM_10)).isEqualTo("This is modifiedValue 10");
|
||||||
assertThat(task.getCustomAttribute(CUSTOM_12)).isEqualTo("This is modifiedValue 12");
|
assertThat(task.getCustomAttribute(CUSTOM_12)).isEqualTo("This is modifiedValue 12");
|
||||||
assertThat(task.getCustomAttribute(CUSTOM_2)).isNotNull();
|
assertThat(task.getCustomAttribute(CUSTOM_2)).isNotNull();
|
||||||
assertThat(task.getCustomAttribute(CUSTOM_16)).isEmpty();
|
assertThat(task.getCustomAttribute(CUSTOM_16)).isNull();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||||
|
|
||||||
import acceptance.AbstractAccTest;
|
import acceptance.AbstractAccTest;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.assertj.core.api.SoftAssertions;
|
|
||||||
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.TestTemplate;
|
import org.junit.jupiter.api.TestTemplate;
|
||||||
|
@ -17,7 +15,6 @@ import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
||||||
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
import pro.taskana.common.api.exceptions.NotAuthorizedException;
|
||||||
import pro.taskana.common.test.security.JaasExtension;
|
import pro.taskana.common.test.security.JaasExtension;
|
||||||
import pro.taskana.common.test.security.WithAccessId;
|
import pro.taskana.common.test.security.WithAccessId;
|
||||||
import pro.taskana.workbasket.api.WorkbasketCustomField;
|
|
||||||
import pro.taskana.workbasket.api.WorkbasketPermission;
|
import pro.taskana.workbasket.api.WorkbasketPermission;
|
||||||
import pro.taskana.workbasket.api.WorkbasketService;
|
import pro.taskana.workbasket.api.WorkbasketService;
|
||||||
import pro.taskana.workbasket.api.WorkbasketType;
|
import pro.taskana.workbasket.api.WorkbasketType;
|
||||||
|
@ -102,56 +99,6 @@ class CreateWorkbasketAccTest extends AbstractAccTest {
|
||||||
assertThatThrownBy(call).isInstanceOf(DomainNotFoundException.class);
|
assertThatThrownBy(call).isInstanceOf(DomainNotFoundException.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@WithAccessId(user = "businessadmin")
|
|
||||||
@Test
|
|
||||||
void should_InitializeCustomFieldsToEmptyString_When_WorkbasketIsCreated()
|
|
||||||
throws InvalidArgumentException, WorkbasketAlreadyExistException, DomainNotFoundException,
|
|
||||||
NotAuthorizedException {
|
|
||||||
WorkbasketService workbasketService = taskanaEngine.getWorkbasketService();
|
|
||||||
|
|
||||||
Workbasket workbasket = workbasketService.newWorkbasket("GPK_NULL1", "DOMAIN_A");
|
|
||||||
workbasket.setName("Megabasket");
|
|
||||||
workbasket.setType(WorkbasketType.GROUP);
|
|
||||||
workbasket.setOrgLevel1("company");
|
|
||||||
Workbasket createdWorkbasket = workbasketService.createWorkbasket(workbasket);
|
|
||||||
|
|
||||||
SoftAssertions softly = new SoftAssertions();
|
|
||||||
Arrays.stream(WorkbasketCustomField.values())
|
|
||||||
.forEach(
|
|
||||||
customField ->
|
|
||||||
softly
|
|
||||||
.assertThat(createdWorkbasket.getCustomAttribute(customField))
|
|
||||||
.describedAs("CustomField was null: " + customField)
|
|
||||||
.isNotNull());
|
|
||||||
softly.assertAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
@WithAccessId(user = "businessadmin")
|
|
||||||
@Test
|
|
||||||
void should_SetCustomFieldToEmptyString_When_SetToNullByUser()
|
|
||||||
throws InvalidArgumentException, WorkbasketAlreadyExistException, DomainNotFoundException,
|
|
||||||
NotAuthorizedException {
|
|
||||||
WorkbasketService workbasketService = taskanaEngine.getWorkbasketService();
|
|
||||||
|
|
||||||
Workbasket workbasket = workbasketService.newWorkbasket("GPK_NULL2", "DOMAIN_A");
|
|
||||||
workbasket.setName("Megabasket");
|
|
||||||
workbasket.setType(WorkbasketType.GROUP);
|
|
||||||
workbasket.setOrgLevel1("company");
|
|
||||||
Arrays.stream(WorkbasketCustomField.values())
|
|
||||||
.forEach(customField -> workbasket.setCustomAttribute(customField, null));
|
|
||||||
Workbasket createdWorkbasket = workbasketService.createWorkbasket(workbasket);
|
|
||||||
|
|
||||||
SoftAssertions softly = new SoftAssertions();
|
|
||||||
Arrays.stream(WorkbasketCustomField.values())
|
|
||||||
.forEach(
|
|
||||||
customField ->
|
|
||||||
softly
|
|
||||||
.assertThat(createdWorkbasket.getCustomAttribute(customField))
|
|
||||||
.describedAs("CustomField was null: " + customField)
|
|
||||||
.isNotNull());
|
|
||||||
softly.assertAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
@WithAccessId(user = "businessadmin")
|
@WithAccessId(user = "businessadmin")
|
||||||
@Test
|
@Test
|
||||||
void testCreateWorkbasketWithMissingRequiredField() {
|
void testCreateWorkbasketWithMissingRequiredField() {
|
||||||
|
|
|
@ -7,8 +7,6 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||||
import acceptance.AbstractAccTest;
|
import acceptance.AbstractAccTest;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.Arrays;
|
|
||||||
import org.assertj.core.api.SoftAssertions;
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.TestTemplate;
|
import org.junit.jupiter.api.TestTemplate;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
@ -60,28 +58,6 @@ class UpdateWorkbasketAccTest extends AbstractAccTest {
|
||||||
assertThat(updatedWorkbasket.getModified()).isNotEqualTo(modified);
|
assertThat(updatedWorkbasket.getModified()).isNotEqualTo(modified);
|
||||||
}
|
}
|
||||||
|
|
||||||
@WithAccessId(user = "businessadmin")
|
|
||||||
@Test
|
|
||||||
void should_SetCustomAttributeToEmptyString_When_SetToNullDuringUpdate() throws Exception {
|
|
||||||
WorkbasketService workbasketService = taskanaEngine.getWorkbasketService();
|
|
||||||
Workbasket workbasket = workbasketService.getWorkbasket("GPK_KSC", "DOMAIN_A");
|
|
||||||
Arrays.stream(WorkbasketCustomField.values())
|
|
||||||
.forEach(customField -> workbasket.setCustomAttribute(customField, null));
|
|
||||||
workbasketService.updateWorkbasket(workbasket);
|
|
||||||
|
|
||||||
Workbasket updatedWorkbasket = workbasketService.getWorkbasket("GPK_KSC", "DOMAIN_A");
|
|
||||||
|
|
||||||
SoftAssertions softly = new SoftAssertions();
|
|
||||||
Arrays.stream(WorkbasketCustomField.values())
|
|
||||||
.forEach(
|
|
||||||
customField ->
|
|
||||||
softly
|
|
||||||
.assertThat(updatedWorkbasket.getCustomAttribute(customField))
|
|
||||||
.describedAs("CustomField was null: " + customField)
|
|
||||||
.isNotNull());
|
|
||||||
softly.assertAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
@WithAccessId(user = "businessadmin")
|
@WithAccessId(user = "businessadmin")
|
||||||
@Test
|
@Test
|
||||||
void should_ThrowException_When_UpdatingWorkbasketWithInvalidName() throws Exception {
|
void should_ThrowException_When_UpdatingWorkbasketWithInvalidName() throws Exception {
|
||||||
|
|
|
@ -21,6 +21,7 @@ import pro.taskana.monitor.api.TaskTimestamp;
|
||||||
import pro.taskana.monitor.api.reports.ClassificationCategoryReport;
|
import pro.taskana.monitor.api.reports.ClassificationCategoryReport;
|
||||||
import pro.taskana.monitor.api.reports.ClassificationReport;
|
import pro.taskana.monitor.api.reports.ClassificationReport;
|
||||||
import pro.taskana.monitor.api.reports.TaskCustomFieldValueReport;
|
import pro.taskana.monitor.api.reports.TaskCustomFieldValueReport;
|
||||||
|
import pro.taskana.monitor.api.reports.TaskStatusReport;
|
||||||
import pro.taskana.monitor.api.reports.TimestampReport;
|
import pro.taskana.monitor.api.reports.TimestampReport;
|
||||||
import pro.taskana.monitor.api.reports.WorkbasketPriorityReport;
|
import pro.taskana.monitor.api.reports.WorkbasketPriorityReport;
|
||||||
import pro.taskana.monitor.api.reports.WorkbasketReport;
|
import pro.taskana.monitor.api.reports.WorkbasketReport;
|
||||||
|
@ -298,19 +299,23 @@ public class MonitorController {
|
||||||
@RequestParam(name = "priority-minimum", required = false) Integer priorityMinimum)
|
@RequestParam(name = "priority-minimum", required = false) Integer priorityMinimum)
|
||||||
throws NotAuthorizedException {
|
throws NotAuthorizedException {
|
||||||
|
|
||||||
|
TaskStatusReport.Builder builder = monitorService.createTaskStatusReportBuilder();
|
||||||
|
if (states != null && !states.isEmpty()) {
|
||||||
|
builder = builder.stateIn(states);
|
||||||
|
}
|
||||||
|
if (domains != null && !domains.isEmpty()) {
|
||||||
|
builder.domainIn(domains);
|
||||||
|
}
|
||||||
|
if (workbasketIds != null && !workbasketIds.isEmpty()) {
|
||||||
|
builder.workbasketIdsIn(workbasketIds);
|
||||||
|
}
|
||||||
|
if (priorityMinimum != null) {
|
||||||
|
builder.priorityMinimum(priorityMinimum);
|
||||||
|
}
|
||||||
|
|
||||||
return ResponseEntity.ok(
|
return ResponseEntity.ok(
|
||||||
reportRepresentationModelAssembler.toModel(
|
reportRepresentationModelAssembler.toModel(
|
||||||
monitorService
|
builder.buildReport(), domains, states, workbasketIds, priorityMinimum));
|
||||||
.createTaskStatusReportBuilder()
|
|
||||||
.stateIn(states)
|
|
||||||
.domainIn(domains)
|
|
||||||
.workbasketIdsIn(workbasketIds)
|
|
||||||
.priorityMinimum(priorityMinimum)
|
|
||||||
.buildReport(),
|
|
||||||
domains,
|
|
||||||
states,
|
|
||||||
workbasketIds,
|
|
||||||
priorityMinimum));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue