更新已阅数据

This commit is contained in:
zhal 2023-07-31 21:30:38 +08:00
parent 85f8cee2ce
commit 4a3066f09a
2 changed files with 1205 additions and 1147 deletions

View File

@ -1,33 +1,14 @@
package com.awspaas.user.apps.integration.oauth;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.sql.Connection;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
import com.actionsoft.apps.coe.pal.constant.CoEConstant;
import com.actionsoft.apps.coe.pal.pal.output.OutputAPIManager;
import com.actionsoft.apps.coe.pal.pal.output.constant.OutputConst;
import com.actionsoft.apps.coe.pal.pal.output.dao.OutputTask;
import com.actionsoft.apps.coe.pal.pal.output.extend.OutputAppManager;
import com.actionsoft.apps.coe.pal.pal.output.extend.OutputAppProfile;
import com.actionsoft.apps.coe.pal.pal.output.model.OutputTaskModel;
import com.actionsoft.apps.coe.pal.pal.repository.PALRepositoryQueryAPIManager;
import com.actionsoft.apps.coe.pal.pal.repository.upfile.model.UpfileModel;
import com.actionsoft.apps.coe.pal.pal.repository.upfile.web.UpfileWeb;
import com.actionsoft.apps.coe.pal.util.HighSecurityUtil;
import com.actionsoft.apps.resource.plugin.profile.DCPluginProfile;
import com.actionsoft.bpms.bo.engine.BO;
import com.actionsoft.bpms.bpmn.engine.model.run.delegate.HistoryTaskInstance;
import com.actionsoft.bpms.bpmn.engine.model.run.delegate.ProcessInstance;
import com.actionsoft.bpms.bpmn.engine.model.run.delegate.TaskInstance;
import com.actionsoft.bpms.client.form.UserTaskFormsWeb;
@ -43,31 +24,36 @@ import com.actionsoft.bpms.server.bind.annotation.Controller;
import com.actionsoft.bpms.server.bind.annotation.Mapping;
import com.actionsoft.bpms.server.fs.DCContext;
import com.actionsoft.bpms.util.DBSql;
import com.actionsoft.bpms.util.UUIDGener;
import com.actionsoft.bpms.util.UtilString;
import com.actionsoft.exception.AWSException;
import com.actionsoft.exception.AWSQuotaException;
import com.actionsoft.sdk.local.SDK;
import com.actionsoft.sdk.local.api.AppAPI;
import com.actionsoft.sdk.local.api.ORGAPI;
import com.actionsoft.sdk.local.api.TaskAPI;
import com.actionsoft.sdk.local.api.*;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.awspaas.user.apps.integration.event.OutputDCFileProcessor;
import com.awspaas.user.apps.integration.util.HttpClientUtils;
import com.awspaas.user.apps.integration.util.UtilUrl;
import com.google.common.io.ByteStreams;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.commons.lang.StringUtils;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.sql.Connection;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
@SuppressWarnings("all")
@Controller
public class TaskController {
/**
* OA系统单点访问PAL系统
*
* @return
*/
@Mapping("com.yili_pal_portal_open")
@ -117,9 +103,9 @@ public class TaskController {
}
/**
* 用户登录日志
*
* @param userid
* @param logType
*/
@ -141,18 +127,27 @@ public class TaskController {
//将已读数据插入至BO_ACT_ALREADY_DATAID 并把BO_ACT_DATAID中此条已读数据删除
String sql = "INSERT INTO BO_ACT_ALREADY_DATAID (\"ID\",ORGID,BINDID,CREATEDATE,CREATEUSER,UPDATEDATE,UPDATEUSER,PROCESSDEFID,ISEND,PROCESSID,USER_ID,USERDEP,READTIMES,DATAID,\"RESULT\",TITLE,SENDTYPE,READSTATE,READCOUNT,\"TYPE\")\n" +
/*String sql = "INSERT INTO BO_ACT_ALREADY_DATAID (\"ID\",ORGID,BINDID,CREATEDATE,CREATEUSER,UPDATEDATE,UPDATEUSER,PROCESSDEFID,ISEND,PROCESSID,USER_ID,USERDEP,READTIMES,DATAID,\"RESULT\",TITLE,SENDTYPE,READSTATE,READCOUNT,\"TYPE\")\n" +
"\t\t\t\tSELECT \"ID\",ORGID,BINDID,CREATEDATE,CREATEUSER,UPDATEDATE,UPDATEUSER,PROCESSDEFID,ISEND,PROCESSID,USER_ID,USERDEP,READTIMES,DATAID,\"RESULT\",TITLE,SENDTYPE,READSTATE,READCOUNT,\"TYPE\"\n" +
"\t\t\t\tFROM BO_ACT_DATAID WHERE READSTATE='已读' AND PROCESSID = '" + processInstId + "' AND USER_ID = '" + userid + "'";
DBSql.update(sql);
DBSql.update(sql);*/
// 示例代码
BOQueryAPI query = SDK.getBOAPI().query("BO_ACT_DATAID").addQuery("PROCESSID=", processInstId).addQuery("USER_ID=",userid);
// 指定将要复制到新的bo表以及流程实例ID
BOCopyAPI copyAPI = query.copyTo("BO_ACT_ALREADY_DATAID", processInstId);
// 如果新表需要新的值请添加新数据
copyAPI.addNewData("USER", "");
// 执行复制操作
copyAPI.exec();
String sql1 = "DELETE FROM BO_ACT_DATAID WHERE READSTATE='已读' AND PROCESSID = '" + processInstId + "' AND USER_ID = '" + userid + "'";
DBSql.update(sql1);
}
String logTime = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
BO bo = new BO();
@ -174,6 +169,7 @@ public class TaskController {
/**
* OA系统单点访问表单数据
*
* @param me
* @param params
* @return
@ -261,8 +257,7 @@ public class TaskController {
try {
// 记录门户待阅
setRecord(me.getUID(), processInstId, instanceById.getTitle());
// 用户打开阅览界面日志
setUserLog(processInstId, me.getUID(), "3");
} catch (Exception e) {
}
@ -667,6 +662,7 @@ public class TaskController {
List<BO> bo_act_dataid = SDK.getBOAPI().query("BO_ACT_DATAID").addQuery("PROCESSID=", processInstId)
.addQuery("USER_ID=", usercode).list();
if (bo_act_dataid.size() > 0) {
System.out.println("查询未读数据=============" + processInstId + "USER_ID=========" + usercode);
for (BO bo : bo_act_dataid) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("action", "read");
@ -680,7 +676,36 @@ public class TaskController {
int timeout = 10000;
String readurl = SDK.getAppAPI().getProperty("com.awspaas.user.apps.yili.integration", "readurl");
String s = UtilUrl.doPostSoap(readurl, xmlStr, "");
// System.err.println(instanceById.getTitle()+"OA待阅PC端阅读返回=======>"+s);
System.err.println(instanceById.getTitle() + "OA待阅PC端阅读返回=======>" + s);
String nums = DBSql.getString(
"select READNUM from BO_EU_PAL_READ_LOG where PROCESSID = '" + processInstId + "'");
if (UtilString.isNotEmpty(nums)) {
Integer read_num = Integer.valueOf(nums);
read_num += 1;
DBSql.update("update BO_EU_PAL_READ_LOG set READNUM = '" + read_num + "' where PROCESSID = '"
+ processInstId + "'");
}
}
} else {
List<BO> actAlreadyDataid = SDK.getBOAPI().query("BO_ACT_ALREADY_DATAID").addQuery("PROCESSID=", processInstId)
.addQuery("USER_ID=", usercode).list();
if (actAlreadyDataid.size() > 0) {
System.out.println("查询已读数据=============" + processInstId + "USER_ID=========" + usercode);
for (BO bo : actAlreadyDataid) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("action", "read");
jsonObject.put("status", "1");
jsonObject.put("dataid", bo.getString("DATAID"));
String xmlStr = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:web=\"webservices.yili.weaver.com.cn\">\n"
+ " <soapenv:Header/>" + " <soapenv:Body>" + " <web:service>"
+ " <web:in0>" + "<![CDATA[" + jsonObject + "]]>" + " </web:in0>"
+ " </web:service>" + " </soapenv:Body>" + "</soapenv:Envelope>";
HttpClient client = new HttpClient();
int timeout = 10000;
String readurl = SDK.getAppAPI().getProperty("com.awspaas.user.apps.yili.integration", "readurl");
String s = UtilUrl.doPostSoap(readurl, xmlStr, "");
System.err.println(instanceById.getTitle() + "OA待阅PC端阅读返回=======>" + s);
String nums = DBSql.getString(
"select READNUM from BO_EU_PAL_READ_LOG where PROCESSID = '" + processInstId + "'");
if (UtilString.isNotEmpty(nums)) {
@ -692,6 +717,11 @@ public class TaskController {
}
}
}
// 用户打开阅览界面日志
setUserLog(processInstId, me.getUID(), "3");
// }
} catch (Exception e) {
e.printStackTrace();
@ -743,8 +773,7 @@ public class TaskController {
try {
//记录门户待阅
setRecord(me.getUID(), processInstId, instanceById.getTitle());
// 用户打开阅览界面日志
setUserLog(processInstId, me.getUID(), "3");
} catch (Exception e) {
}
@ -1356,8 +1385,37 @@ public class TaskController {
}
}
} else {
List<BO> alreadyDataid = SDK.getBOAPI().query("BO_ACT_ALREADY_DATAID").addQuery("PROCESSID=", processInstId)
.addQuery("USER_ID=", usercode).list();
if (alreadyDataid.size() > 0) {
for (BO bo : alreadyDataid) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("status", "1");
jsonObject.put("action", "read");
jsonObject.put("dataid", bo.getString("DATAID"));
String xmlStr = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:web=\"webservices.yili.weaver.com.cn\">\n"
+ " <soapenv:Header/>" + " <soapenv:Body>" + " <web:service>"
+ " <web:in0>" + "<![CDATA[" + jsonObject + "]]>" + " </web:in0>"
+ " </web:service>" + " </soapenv:Body>" + "</soapenv:Envelope>";
int timeout = 10000;
String readurl = SDK.getAppAPI().getProperty("com.awspaas.user.apps.yili.integration", "readurl");
String s = UtilUrl.doPostSoap(readurl, xmlStr, "");
System.err.println(instanceById.getTitle() + "_OA待阅移动端阅读返回=======>" + s);
String nums = DBSql.getString(
"select READNUM from BO_EU_PAL_READ_LOG where PROCESSID = '" + processInstId + "'");
if (UtilString.isNotEmpty(nums)) {
Integer read_num = Integer.valueOf(nums);
read_num += 1;
DBSql.update("update BO_EU_PAL_READ_LOG set READNUM = '" + read_num + "' where PROCESSID = '"
+ processInstId + "'");
}
}
}
}
// 用户打开阅览界面日志
setUserLog(processInstId, me.getUID(), "3");
/*
* JSONObject jsonObject = new JSONObject(); SimpleDateFormat sdf = new
* SimpleDateFormat("yyyy-MM-dd"); String sql =
@ -1412,6 +1470,7 @@ public class TaskController {
/**
* String 中提取数字
*
* @param string
* @return
*/
@ -1440,5 +1499,4 @@ public class TaskController {
}
}