Просмотр исходного кода

Merge branch 'wrdp' into 'develop'

Wrdp

See merge request o2oa/o2oa!2912
o2null 5 лет назад
Родитель
Сommit
4a1c6abb2f

+ 18 - 11
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubDirectLike.java

@@ -82,6 +82,11 @@ class ActionListWithUnitSubDirectLike extends BaseAction {
 	}
 
 	private Wo list(Business business, Wi wi, List<String> ids) throws Exception {
+		Wo wo = new Wo();
+		if(StringUtils.isBlank(wi.getKey()) &&
+				(ListTools.isEmpty(wi.getUnitList()) || ListTools.isEmpty(ids))){
+			return wo;
+		}
 		String str = StringUtils.lowerCase(StringTools.escapeSqlLikeKey(wi.getKey()));
 		EntityManager em = business.entityManagerContainer().get(Person.class);
 		CriteriaBuilder cb = em.getCriteriaBuilder();
@@ -97,22 +102,24 @@ class ActionListWithUnitSubDirectLike extends BaseAction {
 		List<String> list = em.createQuery(cq.select(root.get(Person_.id)).where(p))
 				.getResultList().stream().distinct().collect(Collectors.toList());
 		List<String> values = business.person().listPersonDistinguishedNameSorted(list);
-		Wo wo = new Wo();
 		wo.getPersonList().addAll(values);
 		return wo;
 	}
 
 	private List<String> people(Business business, Wi wi) throws Exception {
-		List<Unit> os = business.unit().pick(wi.getUnitList());
-		List<String> unitIds = ListTools.extractField(os, Unit.id_FIELDNAME, String.class, true, true);
-		EntityManager em = business.entityManagerContainer().get(Identity.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Identity> root = cq.from(Identity.class);
-		Predicate p = root.get(Identity_.unit).in(unitIds);
-		List<String> list = em.createQuery(cq.select(root.get(Identity_.person)).where(p))
-				.getResultList().stream().distinct().collect(Collectors.toList());
+		List<String> list = new ArrayList<>();
+		if(ListTools.isNotEmpty(wi.getUnitList())) {
+			List<Unit> os = business.unit().pick(wi.getUnitList());
+			List<String> unitIds = ListTools.extractField(os, Unit.id_FIELDNAME, String.class, true, true);
+			EntityManager em = business.entityManagerContainer().get(Identity.class);
+			CriteriaBuilder cb = em.getCriteriaBuilder();
+			CriteriaQuery<String> cq = cb.createQuery(String.class);
+			Root<Identity> root = cq.from(Identity.class);
+			Predicate p = root.get(Identity_.unit).in(unitIds);
+			list = em.createQuery(cq.select(root.get(Identity_.person)).where(p))
+					.getResultList().stream().distinct().collect(Collectors.toList());
+		}
 		return list;
 	}
 
-}
+}

+ 4 - 0
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubDirectLikeObject.java

@@ -82,6 +82,10 @@ class ActionListWithUnitSubDirectLikeObject extends BaseAction {
 
 	private List<Wo> list(Business business, Wi wi, List<Identity> identityList) throws Exception {
 		List<Wo> wos = new ArrayList<>();
+		if(StringUtils.isBlank(wi.getKey()) &&
+				(ListTools.isEmpty(wi.getUnitList()) || ListTools.isEmpty(identityList))){
+			return wos;
+		}
 		EntityManager em = business.entityManagerContainer().get(Person.class);
 		CriteriaBuilder cb = em.getCriteriaBuilder();
 		CriteriaQuery<String> cq = cb.createQuery(String.class);

+ 6 - 3
o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/jaxrs/task/ActionAppend.java

@@ -25,7 +25,6 @@ import com.x.base.core.project.script.ScriptFactory;
 import com.x.base.core.project.tools.ListTools;
 import com.x.base.core.project.webservices.WebservicesClient;
 import com.x.processplatform.core.entity.content.Data;
-import com.x.processplatform.core.entity.content.ProcessingType;
 import com.x.processplatform.core.entity.content.Task;
 import com.x.processplatform.core.entity.content.TaskCompleted;
 import com.x.processplatform.core.entity.content.Work;
@@ -41,7 +40,6 @@ import com.x.processplatform.service.processing.ThisApplication;
 import com.x.processplatform.service.processing.WorkContext;
 import com.x.processplatform.service.processing.WorkDataHelper;
 import com.x.processplatform.service.processing.processor.manual.TaskIdentities;
-import com.x.processplatform.service.processing.processor.manual.TaskIdentity;
 
 class ActionAppend extends BaseAction {
 
@@ -111,10 +109,15 @@ class ActionAppend extends BaseAction {
 					TaskIdentities taskIdentities = empower(business, process, task, identities);
 					identities = taskIdentities.identities();
 					if (ListTools.isNotEmpty(identities)) {
+//						List<TaskCompleted> os = emc.listEqualAndInAndNotEqual(TaskCompleted.class,
+//								TaskCompleted.activityToken_FIELDNAME, work.getActivityToken(),
+//								TaskCompleted.identity_FIELDNAME, identities, TaskCompleted.joinInquire_FIELDNAME,
+//								true);
+						// 同一环节办理后再转交给已经有已办的人员,需要将已办置为joinInquire=false
 						List<TaskCompleted> os = emc.listEqualAndInAndNotEqual(TaskCompleted.class,
 								TaskCompleted.activityToken_FIELDNAME, work.getActivityToken(),
 								TaskCompleted.identity_FIELDNAME, identities, TaskCompleted.joinInquire_FIELDNAME,
-								true);
+								false);
 						if (ListTools.isNotEmpty(os)) {
 							emc.beginTransaction(TaskCompleted.class);
 							for (TaskCompleted o : os) {

+ 3 - 1
o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/jaxrs/workcompleted/ActionRollback.java

@@ -162,6 +162,8 @@ class ActionRollback extends BaseAction {
 		work.setActivityType(workLog.getFromActivityType());
 //		work.setErrorRetry(0);
 		work.setWorkStatus(WorkStatus.processing);
+		//因为workCompleted没有workCreateType属性,回溯到任何环节都必须要有待办,默认置为assign
+		work.setWorkCreateType(Work.WORKCREATETYPE_ASSIGN);
 		return work;
 	}
 
@@ -273,4 +275,4 @@ class ActionRollback extends BaseAction {
 	public static class Wo extends WoId {
 	}
 
-}
+}