其他入库申请单调FW_获取流程流转数据(OtherInApplyWorkflowDataListPlugin)

This commit is contained in:
pan-houxiang 2025-12-19 14:23:41 +08:00
parent 10b8ede110
commit 19901ba992
1 changed files with 45 additions and 38 deletions

View File

@ -10,13 +10,18 @@ import kd.bos.entity.datamodel.ListSelectedRowCollection;
import kd.bos.entity.datamodel.events.PackageDataEvent;
import kd.bos.list.BillList;
import kd.bos.list.plugin.AbstractListPlugin;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.QueryServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.sdk.plugin.Plugin;
import org.apache.commons.lang3.StringUtils;
import tqq9.lc123.cloud.app.plugin.utils.ConfigUtils;
import tqq9.lc123.cloud.app.plugin.utils.FWRestfulUtils;
import tqq9.lc123.cloud.app.plugin.utils.FWUtils;
import java.util.EventObject;
import java.util.HashSet;
@ -28,6 +33,7 @@ import java.util.Set;
*/
public class OtherInApplyWorkflowDataListPlugin extends AbstractListPlugin implements Plugin {
private static final Log log = LogFactory.getLog(OtherInApplyWorkflowDataListPlugin.class);
@Override
public void afterBindData(EventObject e) {
@ -39,64 +45,65 @@ public class OtherInApplyWorkflowDataListPlugin extends AbstractListPlugin imple
Long primaryKeyValue = (Long) row.getPrimaryKeyValue();
idSet.add(primaryKeyValue);
}
//获取第三方配置表的泛微用户ID
String userid = ConfigUtils.getThirdConfigByNumber("FW_WorkFlowInfo_UserId");
QFilter f = new QFilter("id", "in", idSet);
DynamicObject[] billArr = BusinessDataServiceHelper.load("tqq9_otherinapply",
"id,billno,tqq9_fwrequestid,tqq9_fwstate,tqq9_auditor,tqq9_auditornode", new QFilter[]{f});
for (DynamicObject tqq9_otherinapply : billArr) {
String billno = tqq9_otherinapply.getString("billno");
log.info("billno:"+billno);
String tqq9_fwrequestid = tqq9_otherinapply.getString("tqq9_fwrequestid");
String tqq9_fwstate = tqq9_otherinapply.getString("tqq9_fwstate");
if(StringUtils.isNotBlank(tqq9_fwrequestid) && "B".equals(tqq9_fwstate)){
String userid = null;
//获取当前用户id
Long id = RequestContext.get().getCurrUserId();
DynamicObject user = BusinessDataServiceHelper.loadSingle("bos_user",
new QFilter[]{new QFilter("id", QCP.equals, id)});
DynamicObjectCollection entryentity = (DynamicObjectCollection) user.get("entryentity");
if (entryentity != null && entryentity.size() > 0) {
for (DynamicObject entry : entryentity) {
userid = entry.getString("tqq9_fwuserid");
if (StringUtils.isNotBlank(userid)) {
break;
}
if(StringUtils.isBlank(userid)){
//获取当前用户id对应的泛微用户ID
Long id = RequestContext.get().getCurrUserId();
QFilter f1 = new QFilter("id", "=", id);
QFilter f2 = new QFilter("entryentity.ispartjob", "=", false);
DynamicObject bos_user = QueryServiceHelper.queryOne("bos_user", "id,entryentity.tqq9_fwuserid", new QFilter[]{f1, f2});
if (bos_user != null) {
userid = bos_user.getString("entryentity.tqq9_fwuserid");
}
if (userid == null) {
//获取泛微人员id失败
if (StringUtils.isBlank(userid)) {
log.info("没有获取到泛微用户ID当前用户ID:"+id);
return;
}
}
String requestName = "FW_获取流程流转数据";
//调用泛微接口获取下一步处理人
String bodyString = FWRestfulUtils.getFwWorkFlowInfo(requestName, billno, tqq9_fwrequestid, userid);
log.info("billno:"+billno+",bodyString:"+bodyString);
JSONObject map = JSONObject.parseObject(bodyString);
JSONArray data = map.getJSONArray("data");//节点id
if (data != null && data.size() > 0) {
String nodeName = null;
String fwuserid = null;
for (int i = 0; i < data.size(); i++) {
JSONObject data0 = (JSONObject) data.get(i);
Integer isremark = data0.getInteger("isremark");
nodeName = data0.getString("nodeName");
if (StringUtils.isNotBlank(nodeName) && isremark != null) {
if (isremark == 0 && !nodeName.contains("归档")) {
fwuserid = String.valueOf(data0.getInteger("userid"));
break;
if (map != null) {
JSONArray data = map.getJSONArray("data");//节点id
if (data != null && data.size() > 0) {
String nodeName = null;
String fwuserid = null;
for (int i = 0; i < data.size(); i++) {
JSONObject data0 = (JSONObject) data.get(i);
Integer isremark = data0.getInteger("isremark");
nodeName = data0.getString("nodeName");
if (StringUtils.isNotBlank(nodeName) && isremark != null) {
if (isremark == 0 && !nodeName.contains("归档")) {
fwuserid = String.valueOf(data0.getInteger("userid"));
break;
}
}
}
}
if (StringUtils.isNotBlank(fwuserid)) {
DynamicObject[] fwuserArr = BusinessDataServiceHelper.load("bos_user", "id,name,number",
new QFilter[]{new QFilter("entryentity.tqq9_fwuserid", QCP.equals, fwuserid)});
if (fwuserArr != null && fwuserArr.length > 0) {
tqq9_otherinapply.set("tqq9_auditor", fwuserArr[0]);//待审批人
tqq9_otherinapply.set("tqq9_auditornode", nodeName);//节点名称
SaveServiceHelper.save(new DynamicObject[]{tqq9_otherinapply});
if (StringUtils.isNotBlank(fwuserid)) {
DynamicObject[] fwuserArr = BusinessDataServiceHelper.load("bos_user", "id,name,number",
new QFilter[]{new QFilter("entryentity.tqq9_fwuserid", QCP.equals, fwuserid)});
if (fwuserArr != null && fwuserArr.length > 0) {
tqq9_otherinapply.set("tqq9_auditor", fwuserArr[0]);//待审批人
tqq9_otherinapply.set("tqq9_auditornode", nodeName);//节点名称
SaveServiceHelper.save(new DynamicObject[]{tqq9_otherinapply});
}
}
}
}
} }
}