|
|
@@ -28,6 +28,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.oa.http.OnHttpResultListener;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.oa.http.Request;
|
|
|
import com.xzjmyk.pm.activity.ui.tool.ThreadUtil;
|
|
|
import com.xzjmyk.pm.activity.util.TimeUtils;
|
|
|
+import com.xzjmyk.pm.activity.util.ToastUtil;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
@@ -60,13 +61,30 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
private final int LOAD_FORMAND_GRIDDATA = 0x21;//当前明细表
|
|
|
|
|
|
private IApproval iApproval;
|
|
|
- private boolean submiting;
|
|
|
private ApprovalRecord record;
|
|
|
private DBManager manager;
|
|
|
- public String chchePoints = "";
|
|
|
+ public String chchePoints = "";//审批要点缓存
|
|
|
private String title;
|
|
|
private List<Approval> approvals;
|
|
|
|
|
|
+ private boolean submit, loading, nexting;
|
|
|
+
|
|
|
+ public ApprovaPresenter(IApproval iApproval, Intent intent) {
|
|
|
+ this.iApproval = iApproval;
|
|
|
+ if (intent != null) {
|
|
|
+ int id = intent.getIntExtra("nodeid", -1);
|
|
|
+ String imid = intent.getStringExtra("imid");
|
|
|
+ title = intent.getStringExtra("title");
|
|
|
+ if (id != -1) {
|
|
|
+ initLoad(id, imid);
|
|
|
+ } else {
|
|
|
+ initLoad(0, imid);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ initLoad(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public boolean isApprovaling() {
|
|
|
if (StringUtils.isEmpty(title)) return false;
|
|
|
return title.equals(OACheckUtil.getString(R.string.title_approval));
|
|
|
@@ -96,22 +114,6 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
0x25);
|
|
|
}
|
|
|
|
|
|
- public ApprovaPresenter(IApproval iApproval, Intent intent) {
|
|
|
- this.iApproval = iApproval;
|
|
|
- if (intent != null) {
|
|
|
- int id = intent.getIntExtra("nodeid", -1);
|
|
|
- String imid = intent.getStringExtra("imid");
|
|
|
- title = intent.getStringExtra("title");
|
|
|
- if (id != -1) {
|
|
|
- initLoad(id, imid);
|
|
|
- } else {
|
|
|
- initLoad(0, imid);
|
|
|
- }
|
|
|
- } else {
|
|
|
- initLoad(0);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
public void closeDB() {
|
|
|
if (manager != null) {
|
|
|
manager.closeDB();
|
|
|
@@ -120,10 +122,10 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
}
|
|
|
|
|
|
public String getUrl(String baseUrl, String title) {
|
|
|
- if (StringUtils.isEmpty(baseUrl))
|
|
|
- baseUrl = "jsps/mobile/process.jsp?nodeId=";
|
|
|
- LogUtil.i("title=" + title);
|
|
|
String endStatus = (StringUtils.isEmpty(title) || title.equals(OACheckUtil.getString(R.string.title_approval)) ? "" : "%26_do=1");
|
|
|
+ if (StringUtils.isEmpty(baseUrl) || endStatus.contains("26_do=1")) {
|
|
|
+ baseUrl = "jsps/mobile/process.jsp?nodeId=";
|
|
|
+ }
|
|
|
return baseUrl + record.nodeId + endStatus;
|
|
|
}
|
|
|
|
|
|
@@ -142,20 +144,78 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
if (imid != null)
|
|
|
record.imid = imid;
|
|
|
iApproval.initStatus();
|
|
|
+ submit = false;
|
|
|
+ loading = false;
|
|
|
+ nexting = false;
|
|
|
loadCurrentNode();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * start 提交部分
|
|
|
+ */
|
|
|
+ /*变更处理人 submiting*/
|
|
|
+ public void updateAssignee(String emCode, String nodeLog) {
|
|
|
+ if (StringUtils.isEmpty(nodeLog)) {
|
|
|
+ iApproval.showToast(R.string.approval_opinion_error, R.color.load_submit);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (submit) {
|
|
|
+ iApproval.showToast(R.string.submit_cannot_submit_again, R.color.load_submit);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ iApproval.showLoading();
|
|
|
+ String url = "common/setAssignee.action";
|
|
|
+ Map<String, Object> param = new HashMap<>();
|
|
|
+ param.put("taskId", record.nodeId);
|
|
|
+ param.put("assigneeId", emCode);//新处理人的员工编号
|
|
|
+ param.put("processInstanceId", record.processInstanceId);//流程实例id
|
|
|
+ param.put("description", nodeLog);//流程实例id
|
|
|
+ param.put("_center", "0");//是否集团账套
|
|
|
+ param.put("_noc", 1);//权限管控
|
|
|
+ Request.Bulider bulider = new Request.Bulider()
|
|
|
+ .setUrl(url)
|
|
|
+ .setMode(Request.Mode.POST)
|
|
|
+ .setWhat(LOAD_UPDATE_ASSIGNEE)
|
|
|
+ .setParam(param);
|
|
|
+ OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*接管 submiting*/
|
|
|
+ public void loadTakeOver() {
|
|
|
+ if (submit || loading) return;
|
|
|
+ submit = true;
|
|
|
+ iApproval.showLoading();
|
|
|
+ String url = "common/takeOverTask.action";
|
|
|
+ Map<String, Object> param = new HashMap<>();
|
|
|
+ param.put("em_code", CommonUtil.getEmcode());
|
|
|
+ param.put("nodeId", record.nodeId);
|
|
|
+ param.put("needreturn", true);
|
|
|
+ Request.Bulider bulider = new Request.Bulider()
|
|
|
+ .setUrl(url)
|
|
|
+ .setMode(Request.Mode.POST)
|
|
|
+ .setWhat(LOAD_TAKE_OVER)
|
|
|
+ .setParam(param);
|
|
|
+ OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*提交更新必填字段 submiting*/
|
|
|
public void loadProcessUpdate(String nodeLog, List<Approval> approvals) {
|
|
|
+ if (!canSubmit())
|
|
|
+ return;
|
|
|
+ submit = true;
|
|
|
StringBuilder pointsBuilder = new StringBuilder();
|
|
|
- if (!inputAllPoints(pointsBuilder, approvals))
|
|
|
+ if (!inputAllPoints(pointsBuilder, approvals)) {
|
|
|
+ submit = false;
|
|
|
return;
|
|
|
+ }
|
|
|
chchePoints = pointsBuilder.toString();
|
|
|
- LogUtil.i("chchePoints=" + chchePoints);
|
|
|
String url = "common/processUpdate.action";
|
|
|
Map<String, Object> param = new HashMap<>();
|
|
|
List<Map<String, Object>> params = new ArrayList<>();
|
|
|
Map<String, Object> formStore = new HashMap<>();
|
|
|
if (!inputAllInput(params, formStore, approvals)) {
|
|
|
+ submit = false;
|
|
|
return;
|
|
|
}
|
|
|
if ((formStore.isEmpty() || formStore.size() <= 1) && ListUtils.isEmpty(params)) {
|
|
|
@@ -178,9 +238,8 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
|
|
|
}
|
|
|
|
|
|
+ /*同意 submiting end loadProcessUpdate*/
|
|
|
private void agree(String nodeLog) {
|
|
|
- if (!canSubmit()) return;
|
|
|
- submiting = true;
|
|
|
iApproval.showLoading();
|
|
|
String points = OACheckUtil.getString(chchePoints);
|
|
|
points.replaceAll("@", "").replaceAll("\\@", "").replaceAll("\\\\@", "");
|
|
|
@@ -203,74 +262,79 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
|
|
|
}
|
|
|
|
|
|
- public void disAgree(String nodeLog) {
|
|
|
- if (StringUtils.isEmpty(nodeLog)) {
|
|
|
- iApproval.showToast(R.string.approval_opinion_error, R.color.load_submit);
|
|
|
- return;
|
|
|
- }
|
|
|
- if (!canSubmit()) return;
|
|
|
- submiting = true;
|
|
|
+ //结束流程
|
|
|
+ private void loadEndProcess() {
|
|
|
+ String url = "common/endProcessInstance.action";
|
|
|
+ Map<String, Object> param = new HashMap<>();
|
|
|
+ param.put("processInstanceId", record.processInstanceId);
|
|
|
+ param.put("holdtime", 435);
|
|
|
+ param.put("nodeId", record.nodeId);
|
|
|
+ Request.Bulider bulider = new Request.Bulider()
|
|
|
+ .setUrl(url)
|
|
|
+ .setWhat(LOAD_END_PROCESS)
|
|
|
+ .setParam(param);
|
|
|
+ OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*获取下一个节点 loading*/
|
|
|
+ public void loadNextProcess() {
|
|
|
+ if (loading || nexting) return;
|
|
|
+ nexting = true;
|
|
|
+ iApproval.showToast(R.string.loadtonext_approval, R.color.load_submit);
|
|
|
iApproval.showLoading();
|
|
|
- String url = "common/review.action";
|
|
|
+ String url = "common/getNextProcess.action";
|
|
|
Map<String, Object> param = new HashMap<>();
|
|
|
param.put("taskId", record.nodeId);
|
|
|
- param.put("nodeName", record.nodeName);
|
|
|
- param.put("nodeLog", nodeLog);
|
|
|
- param.put("result", false);
|
|
|
- param.put("backTaskName", "RECORDER");
|
|
|
- param.put("attachs", "");//附件id
|
|
|
param.put("_noc", 1);//权限管控
|
|
|
- param.put("holdtime", 4311);//holdtime
|
|
|
Request.Bulider bulider = new Request.Bulider()
|
|
|
.setUrl(url)
|
|
|
.setMode(Request.Mode.POST)
|
|
|
- .setWhat(LOAD_DISAGREE)
|
|
|
+ .setWhat(LOAD_NEXT_PROCESS)
|
|
|
.setParam(param);
|
|
|
OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
|
|
|
}
|
|
|
|
|
|
- public void updateAssignee(String emCode, String nodeLog) {
|
|
|
+ /*不同意 submiting*/
|
|
|
+ public void disAgree(String nodeLog) {
|
|
|
if (StringUtils.isEmpty(nodeLog)) {
|
|
|
iApproval.showToast(R.string.approval_opinion_error, R.color.load_submit);
|
|
|
return;
|
|
|
}
|
|
|
- if (!canSubmit()) {
|
|
|
- return;
|
|
|
- }
|
|
|
+
|
|
|
+ if (!canSubmit()) return;
|
|
|
iApproval.showLoading();
|
|
|
- submiting = true;
|
|
|
- String url = "common/setAssignee.action";
|
|
|
+ String url = "common/review.action";
|
|
|
Map<String, Object> param = new HashMap<>();
|
|
|
param.put("taskId", record.nodeId);
|
|
|
- param.put("assigneeId", emCode);//新处理人的员工编号
|
|
|
- param.put("processInstanceId", record.processInstanceId);//流程实例id
|
|
|
- param.put("description", nodeLog);//流程实例id
|
|
|
- param.put("_center", "0");//是否集团账套
|
|
|
+ param.put("nodeName", record.nodeName);
|
|
|
+ param.put("nodeLog", nodeLog);
|
|
|
+ param.put("result", false);
|
|
|
+ param.put("backTaskName", "RECORDER");
|
|
|
+ param.put("attachs", "");//附件id
|
|
|
param.put("_noc", 1);//权限管控
|
|
|
+ param.put("holdtime", 4311);//holdtime
|
|
|
Request.Bulider bulider = new Request.Bulider()
|
|
|
.setUrl(url)
|
|
|
.setMode(Request.Mode.POST)
|
|
|
- .setWhat(LOAD_UPDATE_ASSIGNEE)
|
|
|
+ .setWhat(LOAD_DISAGREE)
|
|
|
.setParam(param);
|
|
|
OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
|
|
|
}
|
|
|
|
|
|
- public void loadTakeOver() {
|
|
|
- iApproval.showLoading();
|
|
|
- String url = "common/takeOverTask.action";
|
|
|
+ /*获取下一节点审批人 loading*/
|
|
|
+ public void judgeApprovers() {
|
|
|
+ String url = "common/getMultiNodeAssigns.action";
|
|
|
Map<String, Object> param = new HashMap<>();
|
|
|
- param.put("em_code", CommonUtil.getEmcode());
|
|
|
- param.put("nodeId", record.nodeId);
|
|
|
- param.put("needreturn", true);
|
|
|
+ param.put("caller", record.caller);
|
|
|
+ param.put("id", record.id);
|
|
|
Request.Bulider bulider = new Request.Bulider()
|
|
|
.setUrl(url)
|
|
|
- .setMode(Request.Mode.POST)
|
|
|
- .setWhat(LOAD_TAKE_OVER)
|
|
|
+ .setWhat(LOAD_NEXT_STEPOFP_INSTANCE)
|
|
|
.setParam(param);
|
|
|
OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
|
|
|
}
|
|
|
|
|
|
- //提交动作,增加判断节点是否有多人的情况
|
|
|
+ /*选择审批人后提交给他处理下一节点 submiting end judgeApprovers */
|
|
|
public void loadTakeOver2Other(String emCode) {
|
|
|
iApproval.showLoading();
|
|
|
String url = "common/takeOverTask.action";
|
|
|
@@ -287,26 +351,32 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
.setParam(param);
|
|
|
OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
|
|
|
}
|
|
|
+ /**
|
|
|
+ * end 提交部分
|
|
|
+ */
|
|
|
|
|
|
- public void loadNextProcess() {
|
|
|
- iApproval.showToast(R.string.loadtonext_approval, R.color.load_submit);
|
|
|
+ /**
|
|
|
+ * start下拉部分
|
|
|
+ */
|
|
|
+ /*下拉当前节点数据 loading*/
|
|
|
+ private void loadCurrentNode() {
|
|
|
+ if (loading) return;
|
|
|
iApproval.showLoading();
|
|
|
- if (submiting) return;
|
|
|
- submiting = true;
|
|
|
- String url = "common/getNextProcess.action";
|
|
|
+ String url = "common/getCurrentNode.action";
|
|
|
Map<String, Object> param = new HashMap<>();
|
|
|
- param.put("taskId", record.nodeId);
|
|
|
- param.put("_noc", 1);//权限管控
|
|
|
+ param.put("jp_nodeId", record.nodeId);
|
|
|
+ param.put("_noc", 1);
|
|
|
Request.Bulider bulider = new Request.Bulider()
|
|
|
.setUrl(url)
|
|
|
- .setMode(Request.Mode.POST)
|
|
|
- .setWhat(LOAD_NEXT_PROCESS)
|
|
|
+ .setWhat(LOAD_CURRENT_NODE)
|
|
|
.setParam(param);
|
|
|
OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
|
|
|
}
|
|
|
|
|
|
- //下拉明细表数据
|
|
|
+ /*下拉明细表数据 loading*/
|
|
|
private void loadDetailedList() {
|
|
|
+ if (loading) return;
|
|
|
+ loading = true;
|
|
|
iApproval.showLoading();
|
|
|
String url = "mobile/common/getformandgriddata.action";
|
|
|
Map<String, Object> param = new HashMap<>();
|
|
|
@@ -320,21 +390,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- public void judgeApprovers() {
|
|
|
- String url = "common/getMultiNodeAssigns.action";
|
|
|
- Map<String, Object> param = new HashMap<>();
|
|
|
- param.put("caller", record.caller);
|
|
|
- param.put("id", record.id);
|
|
|
- Request.Bulider bulider = new Request.Bulider()
|
|
|
- .setUrl(url)
|
|
|
- .setWhat(LOAD_NEXT_STEPOFP_INSTANCE)
|
|
|
- .setParam(param);
|
|
|
- OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- //下拉审批要点
|
|
|
+ /*下拉审批要点 loading*/
|
|
|
private void loadCustomSetupOfTask() {
|
|
|
iApproval.showLoading();
|
|
|
String url = "common/getCustomSetupOfTask.action";
|
|
|
@@ -348,7 +404,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
|
|
|
}
|
|
|
|
|
|
- //获取历史节点数据
|
|
|
+ /*获取历史节点数据 loading*/
|
|
|
private void loadJnodes() {
|
|
|
iApproval.showLoading();
|
|
|
String url = "common/getCurrentJnodes.action";
|
|
|
@@ -363,21 +419,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
|
|
|
}
|
|
|
|
|
|
- //下拉当前节点数据
|
|
|
- private void loadCurrentNode() {
|
|
|
- iApproval.showLoading();
|
|
|
- String url = "common/getCurrentNode.action";
|
|
|
- Map<String, Object> param = new HashMap<>();
|
|
|
- param.put("jp_nodeId", record.nodeId);
|
|
|
- param.put("_noc", 1);
|
|
|
- Request.Bulider bulider = new Request.Bulider()
|
|
|
- .setUrl(url)
|
|
|
- .setWhat(LOAD_CURRENT_NODE)
|
|
|
- .setParam(param);
|
|
|
- OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
|
|
|
- }
|
|
|
-
|
|
|
- /*获取文件名称*/
|
|
|
+ /*获取附件 */
|
|
|
private void loadFilePaths(String attachs) {
|
|
|
if (StringUtils.isEmpty(attachs) || "null".equals(attachs)) {
|
|
|
return;
|
|
|
@@ -394,19 +436,9 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
|
|
|
}
|
|
|
|
|
|
- //结束流程
|
|
|
- private void loadEndProcess() {
|
|
|
- String url = "common/endProcessInstance.action";
|
|
|
- Map<String, Object> param = new HashMap<>();
|
|
|
- param.put("processInstanceId", record.processInstanceId);
|
|
|
- param.put("holdtime", 435);
|
|
|
- param.put("nodeId", record.nodeId);
|
|
|
- Request.Bulider bulider = new Request.Bulider()
|
|
|
- .setUrl(url)
|
|
|
- .setWhat(LOAD_END_PROCESS)
|
|
|
- .setParam(param);
|
|
|
- OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * end下拉部分
|
|
|
+ */
|
|
|
|
|
|
@Override
|
|
|
public void result(int what, boolean isJSON, String message, Bundle bundle) {
|
|
|
@@ -424,24 +456,28 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
@Override
|
|
|
public void error(int what, String message, Bundle bundle) {
|
|
|
- if (StringUtils.isEmpty(message)) return;
|
|
|
iApproval.dimssLoading();
|
|
|
- submiting = false;
|
|
|
- if (what == LOAD_AGREE && message.contains("程序错误")) {
|
|
|
- loadEndProcess();
|
|
|
+ switch (what) {
|
|
|
+ case LOAD_AGREE:
|
|
|
+ if (message.contains("程序错误")) {
|
|
|
+ loadEndProcess();
|
|
|
+ }
|
|
|
+ case LOAD_TAKE_OVER: /*提交部分*/
|
|
|
+ case LOAD_PROCESS_UPDATE:
|
|
|
+ case LOAD_NEXT_STEPOFP_INSTANCE:
|
|
|
+ case LOAD_TAKE_OVER_OTHER: submit = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ String errorKey = "exceptionInfo";
|
|
|
+ if (new JsonValidator().validate(message) && !StringUtils.isEmpty(getJson2Text(parseObject(message), errorKey))) {
|
|
|
+ LogUtil.i("new JsonValidator().validate(message) && !StringUtils.isEmpty(getJson2Text(parseObject(message), errorKey)");
|
|
|
+ String remain = getJson2Text(parseObject(message), errorKey);
|
|
|
+ LogUtil.i("remain=" + remain);
|
|
|
+ iApproval.showToast(remain, R.color.load_submit);
|
|
|
} else {
|
|
|
- String errorKey = "exceptionInfo";
|
|
|
- if (new JsonValidator().validate(message) && !StringUtils.isEmpty(getJson2Text(parseObject(message), errorKey))) {
|
|
|
- LogUtil.i("new JsonValidator().validate(message) && !StringUtils.isEmpty(getJson2Text(parseObject(message), errorKey)");
|
|
|
- String remain = getJson2Text(parseObject(message), errorKey);
|
|
|
- LogUtil.i("remain=" + remain);
|
|
|
- iApproval.showToast(remain, R.color.load_submit);
|
|
|
- } else {
|
|
|
- iApproval.showToast(message, R.color.load_submit);
|
|
|
- }
|
|
|
+ iApproval.showToast(message, R.color.load_submit);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -457,7 +493,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
try {
|
|
|
handlerFormandGriddataInThread(OACheckUtil.getJSONObject(object, "datas"));
|
|
|
} catch (Exception e) {
|
|
|
- submiting = false;
|
|
|
+ loading = false;
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
@@ -474,7 +510,8 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
if (nextnode > 0) {
|
|
|
initLoad(nextnode);
|
|
|
} else {
|
|
|
- iApproval.showToast(getString(R.string.load_not_next_data), R.color.load_submit);
|
|
|
+ iApproval.finish();
|
|
|
+ ToastUtil.showToast(MyApplication.getInstance(), R.string.load_not_next_data);
|
|
|
}
|
|
|
break;
|
|
|
case LOAD_UPDATE_ASSIGNEE:
|
|
|
@@ -486,7 +523,6 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
iApproval.showToast(getString(R.string.make_adeal_success) + getString(R.string.load_not_next_data), R.color.load_submit);
|
|
|
iApproval.finish();
|
|
|
}
|
|
|
- submiting = false;
|
|
|
break;
|
|
|
case LOAD_FILE_PATHS:
|
|
|
handlerEnclosure(OACheckUtil.getJsonArray(object, "files"));
|
|
|
@@ -507,20 +543,10 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
iApproval.showToast(getString(R.string.make_adeal_success) + getString(R.string.load_not_next_data), R.color.load_submit);
|
|
|
iApproval.finish();
|
|
|
}
|
|
|
- submiting = false;
|
|
|
break;
|
|
|
case LOAD_AGREE:
|
|
|
iApproval.showToast(R.string.make_adeal_success, R.color.load_submit);
|
|
|
judgeApprovers();
|
|
|
-// nextnode = OACheckUtil.getJsonIntager(object, "nextnode");
|
|
|
-// if (nextnode > 0) {
|
|
|
-// iApproval.showToast(R.string.load_next_approval, R.color.load_submit);
|
|
|
-// initLoad(nextnode);
|
|
|
-// } else {
|
|
|
-// iApproval.showToast(getString(R.string.make_adeal_success) + getString(R.string.load_not_next_data), R.color.load_submit);
|
|
|
-// iApproval.finish();
|
|
|
-// }
|
|
|
- submiting = false;
|
|
|
break;
|
|
|
case LOAD_NEXT_STEPOFP_INSTANCE:
|
|
|
handlerNextStepoInstance(object);
|
|
|
@@ -544,7 +570,6 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
|
|
|
|
|
|
private void handlerNextStepoInstance(JSONObject object) {
|
|
|
- LogUtil.i("handlerNextStepoInstance");
|
|
|
if (object.containsKey("assigns")) {
|
|
|
JSONArray array = OACheckUtil.getJsonArray(object, "assigns");
|
|
|
JSONObject o = array.getJSONObject(0);
|
|
|
@@ -560,15 +585,13 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
loadNextProcess();
|
|
|
}
|
|
|
} else {
|
|
|
- LogUtil.i("不存在");
|
|
|
loadNextProcess();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//处理当前结点信息
|
|
|
private void handlerCurrentNode(JSONObject object) throws Exception {
|
|
|
- if (object != null) {
|
|
|
- String title = "";
|
|
|
+ if (object != null && !loading) {
|
|
|
String instanceId = getJson2Text(object, "InstanceId");
|
|
|
record.processInstanceId = instanceId;
|
|
|
JSONObject currentnode = OACheckUtil.getJSONObject(object, "currentnode");
|
|
|
@@ -579,15 +602,15 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
iApproval.nodeDealMan(nodeDealMan);
|
|
|
String nodeName = getJson2Text(currentnode, "jp_nodeName");
|
|
|
int keyValue = getJsonIntager(currentnode, "jp_keyValue");
|
|
|
- title = getJson2Text(currentnode, "jp_name");
|
|
|
+ record.title = getJson2Text(currentnode, "jp_name");
|
|
|
record.status = OACheckUtil.getJson2Text(currentnode, "jp_status");
|
|
|
String caller = OACheckUtil.getJson2Text(currentnode, "jp_caller");
|
|
|
if (keyValue != 0) {
|
|
|
record.id = keyValue;
|
|
|
}
|
|
|
- if (!StringUtils.isEmpty(title)) {
|
|
|
+ if (!StringUtils.isEmpty(record.title)) {
|
|
|
if (!StringUtils.isEmpty(recordName)) {
|
|
|
- title = recordName + " " + title;
|
|
|
+ record.title = recordName + " " + record.title;
|
|
|
}
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(caller)) {
|
|
|
@@ -604,11 +627,9 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
if (currentnode != null) {
|
|
|
record.needInputKeys = getJson2Text(button, "jt_neccessaryfield");
|
|
|
}
|
|
|
- showTitle(record.imid, title, -1);
|
|
|
loadDetailedList();//获取明细表
|
|
|
- loadCustomSetupOfTask();//获取审批要点
|
|
|
} else {
|
|
|
- submiting = false;
|
|
|
+ loading = false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -664,9 +685,11 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
OAHttpHelper.getInstance().post(new Runnable() {
|
|
|
@Override
|
|
|
public void run() {
|
|
|
- loadJnodes();
|
|
|
+ loadCustomSetupOfTask();//获取审批要点
|
|
|
}
|
|
|
});
|
|
|
+ } else {
|
|
|
+ iApproval.showToast(R.string.not_data_from_formandgrid);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -802,21 +825,25 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
}
|
|
|
}
|
|
|
setData2ListThread(Approval.NODES, approvals);
|
|
|
- OAHttpHelper.getInstance().post(new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- int reId = -1;
|
|
|
- if ("未通过".equals(record.status)) {
|
|
|
- reId = R.drawable.unapproved;
|
|
|
- } else if ("已审批".equals(record.status)) {
|
|
|
- reId = R.drawable.approved;
|
|
|
- }
|
|
|
- showTitle(null, null, reId);
|
|
|
- }
|
|
|
- });
|
|
|
+ int reId = -1;
|
|
|
+ if ("未通过".equals(record.status)) {
|
|
|
+ reId = R.drawable.unapproved;
|
|
|
+ } else if ("已审批".equals(record.status)) {
|
|
|
+ reId = R.drawable.approved;
|
|
|
+ }
|
|
|
+ Approval approval = new Approval(Approval.TITLE);
|
|
|
+ if (!StringUtils.isEmpty(record.title))
|
|
|
+ approval.setCaption(record.title);
|
|
|
+ if (!StringUtils.isEmpty(record.imid))
|
|
|
+ approval.setIdKey(record.imid);
|
|
|
+ if (reId > 0)
|
|
|
+ approval.setId(reId);
|
|
|
+ List<Approval> titleApproval = new ArrayList<>();
|
|
|
+ titleApproval.add(approval);
|
|
|
+ setData2ListThread(Approval.TITLE, titleApproval);
|
|
|
+ loading = false;
|
|
|
}
|
|
|
});
|
|
|
- submiting = false;
|
|
|
}
|
|
|
|
|
|
private void handlerEnclosure(final JSONArray array) throws Exception {
|
|
|
@@ -926,6 +953,12 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
setData2ListThread(Approval.POINTS, pointsList);
|
|
|
}
|
|
|
}
|
|
|
+ OAHttpHelper.getInstance().post(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ loadJnodes();
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -996,6 +1029,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
private int getImByCode(String emCode) {
|
|
|
if (manager == null) manager = new DBManager();
|
|
|
String whichsys = CommonUtil.getMaster();
|
|
|
+ if (StringUtils.isEmpty(emCode) || StringUtils.isEmpty(whichsys)) return 0;
|
|
|
String[] selectionArgs = {emCode, whichsys};
|
|
|
String selection = "em_code=? and whichsys=?";
|
|
|
EmployeesEntity employeesEntity = manager.selectForEmployee(selectionArgs, selection);
|
|
|
@@ -1011,8 +1045,8 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
}
|
|
|
|
|
|
private boolean canSubmit() {
|
|
|
- if (submiting) {
|
|
|
- iApproval.showToast("正在提交请求,请不要重复提交", R.color.load_submit);
|
|
|
+ if (submit || loading) {
|
|
|
+ iApproval.showToast(R.string.submit_cannot_submit_again, R.color.load_submit);
|
|
|
return false;
|
|
|
}
|
|
|
return true;
|
|
|
@@ -1117,51 +1151,37 @@ public class ApprovaPresenter implements OnHttpResultListener {
|
|
|
return formstore;
|
|
|
}
|
|
|
|
|
|
- public void showTitle(String imid, String title, int statusId) {
|
|
|
- Approval approval;
|
|
|
- if (!ListUtils.isEmpty(approvals) && approvals.get(0).getType() == Approval.TITLE) {
|
|
|
- approval = approvals.get(0);
|
|
|
- } else {
|
|
|
- approval = new Approval(Approval.TITLE);
|
|
|
- approvals.add(approval);
|
|
|
- }
|
|
|
- if (statusId > 0)
|
|
|
- approval.setId(statusId);
|
|
|
- if (!StringUtils.isEmpty(title))
|
|
|
- approval.setCaption(title);
|
|
|
- if (!StringUtils.isEmpty(imid))
|
|
|
- approval.setIdKey(imid);
|
|
|
- iApproval.showModels(approvals);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
private synchronized void setData2ListThread(int type, List<Approval> newApprovals) {
|
|
|
- LogUtil.i("come to setData2ListThread=" + type);
|
|
|
final List<Approval> merges = new ArrayList<>();
|
|
|
if (!ListUtils.isEmpty(approvals)) {
|
|
|
- boolean added = false;
|
|
|
- for (int i = 0; i < approvals.size(); i++) {
|
|
|
- int oldType = approvals.get(i).getType();
|
|
|
- if (!added && ((oldType != Approval.TAG && oldType > type)
|
|
|
- || oldType == Approval.TAG && approvals.size() > i + 1 && approvals.get(i + 1).getType() > type)) {
|
|
|
- merges.addAll(i, newApprovals);
|
|
|
- added = true;
|
|
|
+ if (type == Approval.TITLE) {
|
|
|
+ if (approvals.get(0).getType() == Approval.TITLE) {
|
|
|
+ approvals.remove(0);
|
|
|
}
|
|
|
- merges.add(approvals.get(i));
|
|
|
- }
|
|
|
- LogUtil.i("added=" + added);
|
|
|
- if (!added) {
|
|
|
merges.addAll(newApprovals);
|
|
|
+ merges.addAll(approvals);
|
|
|
+ } else {
|
|
|
+ boolean added = false;
|
|
|
+ for (int i = 0; i < approvals.size(); i++) {
|
|
|
+ int oldType = approvals.get(i).getType();
|
|
|
+ if (!added && ((oldType != Approval.TAG && oldType > type)
|
|
|
+ || oldType == Approval.TAG && approvals.size() > i + 1 && approvals.get(i + 1).getType() > type)) {
|
|
|
+ merges.addAll(i, newApprovals);
|
|
|
+ added = true;
|
|
|
+ }
|
|
|
+ merges.add(approvals.get(i));
|
|
|
+ }
|
|
|
+ if (!added) {
|
|
|
+ merges.addAll(newApprovals);
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
merges.addAll(newApprovals);
|
|
|
}
|
|
|
approvals = merges;
|
|
|
- LogUtil.i("end of setData2ListThread");
|
|
|
OAHttpHelper.getInstance().post(new Runnable() {
|
|
|
@Override
|
|
|
public void run() {
|
|
|
- LogUtil.i("showModel");
|
|
|
iApproval.showModels(merges);
|
|
|
|
|
|
}
|