From b0cce93617ea3d4940f1304f2150d8481e1b8a2b Mon Sep 17 00:00:00 2001
From: 上海郢昱 <15922366+miu-haiqing@user.noreply.gitee.com>
Date: 星期一, 07 九月 2026 15:33:20 +0800
Subject: [PATCH] 不合格处理:OA回调新增结束标识字段,每个节点审批结束都更新一次流程信息
---
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java | 68 +++++++++++++++++++++------------
1 files changed, 43 insertions(+), 25 deletions(-)
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java
index c2ad66c..4b910ca 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java
@@ -151,7 +151,7 @@
//鏌ヨ闄勪欢
List<InsUnqualifiedHandlerFile> handlerFiles = insUnqualifiedHandlerFileService.list(Wrappers.<InsUnqualifiedHandlerFile>lambdaQuery()
- .eq(InsUnqualifiedHandlerFile::getUnqualifiedId, vo.getHandlerId()));
+ .eq(InsUnqualifiedHandlerFile::getGroupId, vo.getGroupId()));
if (CollectionUtils.isNotEmpty(handlerFiles)) {
StringBuilder fileUrl = new StringBuilder();
for (int i = 0; i < handlerFiles.size(); i++) {
@@ -191,9 +191,28 @@
return Result.success();
}
+ /**
+ * 杩斿洖绗竴涓笉涓虹┖鐨勫瓧绗︿覆
+ * @param values
+ * @return
+ */
+ public static String firstNotBlank(String... values) {
+ if (values == null) {
+ return null;
+ }
+
+ for (String value : values) {
+ if (StringUtils.isNotBlank(value)) {
+ return value;
+ }
+ }
+
+ return null;
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
- public void unqualifiedHandlerOACallback(Long oaWorkId, String checkResult, JSONObject response) {
+ public void unqualifiedHandlerOACallback(Long oaWorkId, String checkResult,String endFlag, JSONObject response) {
// 娌℃湁杩欎釜灏辩粨鏉�
Long count1 = baseMapper.selectCount(Wrappers.<InsUnqualifiedHandler>lambdaQuery()
.eq(InsUnqualifiedHandler::getRequestId, Integer.valueOf(String.valueOf(oaWorkId))));
@@ -206,10 +225,12 @@
clcsMap.put("1","閫�璐�");
clcsMap.put("2","閮ㄥ垎閫�璐�");
clcsMap.put("3","闄嶇骇浣跨敤");
+ //娴佺▼缁撴潫鎵嶄慨鏀筼a鐘舵��
+ boolean hasChangeOaState = StringUtils.isNotBlank(endFlag) && endFlag.equals("1");
//oa鐘舵�侊細3閫氳繃 4椹冲洖
Integer oaState = "1".equals(checkResult) ? 3 : 4;
baseMapper.update(null, new LambdaUpdateWrapper<InsUnqualifiedHandler>()
- .set(InsUnqualifiedHandler::getOaState, oaState)
+ .set(hasChangeOaState,InsUnqualifiedHandler::getOaState, oaState)
.set(InsUnqualifiedHandler::getClassification,response.getString("flclassification"))
.eq(InsUnqualifiedHandler::getRequestId, Integer.valueOf(String.valueOf(oaWorkId))));
//淇濆瓨oa瀹℃壒娴佺▼璁板綍
@@ -218,30 +239,31 @@
for (Object workflowRequestLog : workflowRequestLogs) {
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(workflowRequestLog));
CommonOa oa = new CommonOa();
- oa.setApprover(jsonObject.getString("operatorName"));
- oa.setOperateId(jsonObject.getLong("operateId"));
- oa.setWorkflowId(oaWorkId);
- oa.setOperation(jsonObject.getString("operateType"));
- oa.setApprovalDate(jsonObject.getString("operateDate"));
- oa.setNodeName(jsonObject.getString("nodeName"));
- oa.setApprovalTime(jsonObject.getString("operateTime"));
//璁剧疆鍚勮妭鐐圭殑澶勭悊鎰忚
+ oa.setApprover(jsonObject.getString("operatorName"));//瀹℃壒浜�
+ oa.setOperateId(jsonObject.getLong("operateId"));//瀹℃壒浜篿d
+ oa.setWorkflowId(oaWorkId);//娴佺▼id
+ oa.setApprovalDate(jsonObject.getString("operateDate"));//瀹℃壒鏃ユ湡
+ oa.setNodeName(jsonObject.getString("nodeName"));//鑺傜偣鍚嶇О
+ oa.setApprovalTime(jsonObject.getString("operateTime"));//瀹℃壒鏃堕棿
if(StringUtils.isNotBlank(oa.getNodeName())){
+ String operateType = jsonObject.getString("operateType");//鑺傜偣鎿嶄綔
+ String approvalOpinion = jsonObject.getString("remark");//澶勭悊鎰忚鎻忚堪
+ oa.setOperation(operateType);
+ oa.setApprovalOpinion(approvalOpinion);
if(oa.getNodeName().contains("璐ㄩ噺")){
- oa.setOperation(clcsMap.get(response.getString("clcs1")));
- oa.setApprovalOpinion(response.getString("dbhgcpdclyqdealwiththenonconfo"));//1.瀵逛笉鍚堟牸浜у搧鐨勫鐞嗚姹�
+ oa.setOperation(firstNotBlank(clcsMap.get(response.getString("clcs1")),operateType));
+ oa.setApprovalOpinion(firstNotBlank(response.getString("dbhgcpdclyqdealwiththenonconfo"),approvalOpinion));//1.瀵逛笉鍚堟牸浜у搧鐨勫鐞嗚姹�
}else if(oa.getNodeName().contains("宸ヨ壓")){
- oa.setApprovalOpinion(response.getString("gjyqimprovementrequirements"));//2.鏀硅繘瑕佹眰
+ oa.setApprovalOpinion(firstNotBlank(response.getString("gjyqimprovementrequirements"),approvalOpinion));//2.鏀硅繘瑕佹眰
}else if(oa.getNodeName().contains("鎶�鏈�")){
- oa.setOperation(clcsMap.get(response.getString("clcs2")));
- oa.setApprovalOpinion(response.getString("csyqactionrequirement"));//3.鎺柦瑕佹眰
+ oa.setOperation(firstNotBlank(clcsMap.get(response.getString("clcs2")),operateType));
+ oa.setApprovalOpinion(firstNotBlank(response.getString("csyqactionrequirement"),approvalOpinion));//3.鎺柦瑕佹眰
}else if(oa.getNodeName().contains("鎬荤粡鐞�")){
- oa.setOperation(clcsMap.get(response.getString("clcs3")));
- oa.setApprovalOpinion(response.getString("zzclyqfinaltreatmentrequiremen"));//4.鏈�缁堝鐞嗚姹�
+ oa.setOperation(firstNotBlank(clcsMap.get(response.getString("clcs3")),operateType));
+ oa.setApprovalOpinion(firstNotBlank(response.getString("zzclyqfinaltreatmentrequiremen"),approvalOpinion));//4.鏈�缁堝鐞嗚姹�
}else if(oa.getNodeName().contains("鏍哥畻")){
- oa.setApprovalOpinion(response.getString("spyqcompensationrequirement"));//5.绱㈣禂瑕佹眰
- }else{
- oa.setApprovalOpinion(jsonObject.getString("remark"));
+ oa.setApprovalOpinion(firstNotBlank(response.getString("spyqcompensationrequirement"),approvalOpinion));//5.绱㈣禂瑕佹眰
}
}
@@ -276,11 +298,6 @@
@Override
@Transactional(rollbackFor = Exception.class)
public boolean addUnqualifiedHandler(UnqualifiedHandlerDto unqualifiedHandlerDto) {
- long count = this.count(Wrappers.<InsUnqualifiedHandler>lambdaQuery()
- .in(InsUnqualifiedHandler::getInsOrderId, unqualifiedHandlerDto.getSelectOrderIds()));
- if (count > 0) {
- throw new ErrorException("瀛樺湪宸叉彁浜よ繃涓嶅悎鏍煎鐞嗙殑璁㈠崟");
- }
//鐢熸垚鍒嗙粍id
String groupId = insUnqualifiedHandlerNumberGenerator.generateNumberWithPrefix(6, "GROUP", InsUnqualifiedHandler::getGroupId);
// 鍘熸潗鏂欑紪鍙峰垏鍓�
@@ -328,6 +345,7 @@
if(isUpdated){
//鎺ㄩ�丱A
PushOADto pushOADto = new PushOADto();
+ pushOADto.setGroupId(unqualifiedHandlerDto.getGroupId());
pushOADto.setHandlerId(unqualifiedHandlerDto.getId());
pushOADto.setContract(unqualifiedHandlerDto.getContract());
pushOA(pushOADto);
--
Gitblit v1.9.3