From a6077615d835d96ded47f2d170e22ea88e9a3099 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期一, 11 五月 2026 15:23:19 +0800
Subject: [PATCH] 不合格处理:对接OA报错问题修复
---
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java | 90 +++++++++++++++++++++++++--------------------
1 files changed, 50 insertions(+), 40 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 bd46323..fd57189 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
@@ -1,7 +1,6 @@
package com.ruoyi.inspect.service.impl;
import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.io.IoUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
@@ -15,6 +14,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.core.domain.entity.SysDictData;
+import com.ruoyi.common.enums.ContractType;
import com.ruoyi.common.oa.OAProcess;
import com.ruoyi.common.oa.OAProperty;
import com.ruoyi.common.oa.OAResult;
@@ -34,22 +34,17 @@
import com.ruoyi.inspect.service.InsUnqualifiedHandlerFileService;
import com.ruoyi.inspect.service.InsUnqualifiedHandlerService;
import com.ruoyi.inspect.vo.UnqualifiedHandlerVO;
-import com.ruoyi.system.mapper.UserMapper;
-import com.ruoyi.system.service.ISysDictDataService;
import com.ruoyi.system.service.ISysDictTypeService;
-import com.ruoyi.system.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
-import java.io.InputStream;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
-import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
@@ -93,23 +88,17 @@
response.reset();
try{
//鏌ヨ瀛楀吀
- List<SysDictData> materialPropType = sysDictTypeService.selectDictDataByType("material_prop_type");
+ List<SysDictData> materialPropType = sysDictTypeService.selectDictDataByType("material_prop_type");//鐗╂枡灞炴��
+ List<SysDictData> categoriesNoConformities = sysDictTypeService.selectDictDataByType("categories_no_conformities");//涓嶅悎鏍煎垎绫�
+ List<SysDictData> attributionNoConformities = sysDictTypeService.selectDictDataByType("attribution_no_conformities");// 涓嶅悎鏍煎綊灞�
//鏌ヨ涓嶅悎鏍煎鐞嗚褰�
IPage<UnqualifiedHandlerVO> pageList = pageList(new Page<>(-1, -1), unqualifiedHandlerDto);
List<InsUnqualifiedHandlerExcelData> records = pageList.getRecords().stream().map(m->{
InsUnqualifiedHandlerExcelData handlerExcelData = new InsUnqualifiedHandlerExcelData();
BeanUtil.copyProperties(m,handlerExcelData);
handlerExcelData.setMaterialProp(materialPropType.stream().filter(f-> StringUtils.equals(f.getDictValue(),handlerExcelData.getMaterialProp())).findFirst().orElse(new SysDictData()).getDictLabel());
- if(StringUtils.equals(handlerExcelData.getClassification(),"0")){
- handlerExcelData.setClassification("涓�绫讳笉鍚堟牸");
- }else if(StringUtils.equals(handlerExcelData.getClassification(),"1")){
- handlerExcelData.setClassification("浜岀被涓嶅悎鏍�");
- }
- if(StringUtils.equals(handlerExcelData.getOffGradeAscription(),"0")){
- handlerExcelData.setOffGradeAscription("鐢熶骇鍙嶉涓嶅悎鏍�");
- }else if(StringUtils.equals(handlerExcelData.getOffGradeAscription(),"1")){
- handlerExcelData.setOffGradeAscription("妫�娴嬩笉鍚堟牸");
- }
+ handlerExcelData.setClassification(categoriesNoConformities.stream().filter(f-> StringUtils.equals(f.getDictValue(),handlerExcelData.getClassification())).findFirst().orElse(new SysDictData()).getDictLabel());
+ handlerExcelData.setOffGradeAscription(attributionNoConformities.stream().filter(f-> StringUtils.equals(f.getDictValue(),handlerExcelData.getOffGradeAscription())).findFirst().orElse(new SysDictData()).getDictLabel());
return handlerExcelData;
}).collect(Collectors.toList());
//璁剧疆response
@@ -137,25 +126,33 @@
//鑾峰彇涓嶅悎鏍煎鐞嗚褰�
UnqualifiedHandlerVO vo = baseMapper.findById(pushOADto.getHandlerId());
- if (vo.getRequestId() != null) {
- throw new ErrorException("璇ヤ笉鍚堟牸澶勭悊宸叉彁浜よ繃OA");
- }
-
//鎻愪氦oa鐩稿叧瀛楁璧嬪��
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
Map<String, String> mainFields = new HashMap<>();
- mainFields.put("bh", vo.getNo());//缂栧彿
- mainFields.put("gysmc", vo.getSupplierName());//渚涘簲鍟嗗悕绉�
- mainFields.put("wlmc", vo.getMaterialName());//鐗╂枡鍚嶇О
- mainFields.put("scpc", vo.getProductionBatch());//鐢熶骇鎵规
- mainFields.put("dhsl", vo.getCargoQuantity());//鍒拌揣鏁伴噺
- mainFields.put("ggxh", vo.getSpecsModels());//瑙勬牸鍨嬪彿
- mainFields.put("bjrq", vo.getInspectTime().format(formatter));//鎶ユ鏃ユ湡
- mainFields.put("fkr", SecurityUtils.getUsername());//鍙嶉浜�
- mainFields.put("fkrq", vo.getFeedbackTime().format(formatter));//鍙嶉鏃ユ湡
- mainFields.put("fl", vo.getClassification());//鍒嗙被
- mainFields.put("bhggs", vo.getOffGradeAscription());//涓嶅悎鏍煎綊灞�
- mainFields.put("bhgqkms", vo.getUnqualifiedDesc());//涓嶅悎鏍兼儏鍐垫弿杩�
+// mainFields.put("bh", vo.getNo());//缂栧彿
+// mainFields.put("gysmc", vo.getSupplierName());//渚涘簲鍟嗗悕绉�
+// mainFields.put("wlmc", vo.getMaterialName());//鐗╂枡鍚嶇О
+// mainFields.put("scpc", vo.getProductionBatch());//鐢熶骇鎵规
+// mainFields.put("dhsl", vo.getCargoQuantity());//鍒拌揣鏁伴噺
+// mainFields.put("ggxh", vo.getSpecsModels());//瑙勬牸鍨嬪彿
+// mainFields.put("bjrq", vo.getInspectTime().format(formatter));//鎶ユ鏃ユ湡
+// mainFields.put("fkr", SecurityUtils.getUsername());//鍙嶉浜�
+// mainFields.put("fkrq", vo.getFeedbackTime().format(formatter));//鍙嶉鏃ユ湡
+// mainFields.put("fl", vo.getClassification());//鍒嗙被
+// mainFields.put("bhggs", vo.getOffGradeAscription());//涓嶅悎鏍煎綊灞�
+// mainFields.put("bhgqkms", vo.getUnqualifiedDesc());//涓嶅悎鏍兼儏鍐垫弿杩�
+// mainFields.put("bh", vo.getNo());//缂栧彿
+ mainFields.put("gysmcsuppliername", vo.getSupplierName());//渚涘簲鍟嗗悕绉�
+ mainFields.put("wlmcmaterialname", vo.getMaterialName());//鐗╂枡鍚嶇О
+ mainFields.put("scpcproductionbatch", vo.getProductionBatch());//鐢熶骇鎵规
+ mainFields.put("dhslcargoquantity", vo.getCargoQuantity());//鍒拌揣鏁伴噺
+ mainFields.put("ggxhspecificationsmodels", vo.getSpecsModels());//瑙勬牸鍨嬪彿
+ mainFields.put("bjrqdeclarationinspectdate", vo.getInspectTime().format(formatter));//鎶ユ鏃ユ湡
+ mainFields.put("fkrprovideroffeedback", SecurityUtils.getUsername());//鍙嶉浜�
+ mainFields.put("fkrqfeedbacktime", vo.getFeedbackTime().format(formatter));//鍙嶉鏃ユ湡
+ mainFields.put("flclassification", vo.getClassification());//鍒嗙被
+ mainFields.put("bhggsoffgradeascription", vo.getOffGradeAscription());//涓嶅悎鏍煎綊灞�
+ mainFields.put("bhgqkmsunqualifieddescription", vo.getUnqualifiedDesc());//涓嶅悎鏍兼儏鍐垫弿杩�
//鏌ヨ闄勪欢
List<InsUnqualifiedHandlerFile> handlerFiles = insUnqualifiedHandlerFileService.list(Wrappers.<InsUnqualifiedHandlerFile>lambdaQuery()
@@ -163,7 +160,7 @@
if (CollectionUtils.isNotEmpty(handlerFiles)) {
StringBuilder fileUrl = new StringBuilder();
for (int i = 0; i < handlerFiles.size(); i++) {
- String path = handlerFiles.get(i).getType().equals(1) ? "/lims/img/" : "/lims/word/";
+ String path = handlerFiles.get(i).getType().equals(1) ? "/img/" : "/word/";
if (i == handlerFiles.size() - 1) {
fileUrl.append("<a href='" + oaProperty.getProdIp()).append(path + handlerFiles.get(i).getFileUrl()
+ "'target='_blank'>" + handlerFiles.get(i).getFileName() + "</a>");
@@ -172,7 +169,7 @@
+ "'target='_blank'>" + handlerFiles.get(i).getFileName() + "</a>").append("<br/>");
}
}
- mainFields.put("xlimsfj", fileUrl.toString());
+ mainFields.put("fjlj", fileUrl.toString());
}
//娴佺▼鏍囬
String requestName = vo.getHeadline();
@@ -180,9 +177,14 @@
boolean oa = false;
try {
log.info("鍙戣捣涓嶅悎鏍煎鐞哋A瀹℃牳娴佺▼");
- String unqualifiedProcessId = oaProperty.getUnqualifiedProcessId();
+ //鏍规嵁IFS鍩熻幏鍙栧搴旂殑娴佺▼id
+ if(StringUtils.isBlank(pushOADto.getContract())){
+ throw new RuntimeException("IFS鍩熴��"+pushOADto.getContract()+"銆戜笉瀛樺湪锛孫A娴佺▼鎻愪氦澶辫触");
+ }
+ String unqualifiedProcessId = StringUtils.equals(ContractType.ZTNS.getValue(),pushOADto.getContract())?oaProperty.getUnqualifiedProcessId():oaProperty.getUnqualifiedProcessIdByKJNS();
+ log.info("涓嶅悎鏍兼祦绋嬭姹傚弬鏁�:{},{},{},{}",mainFields, requestName, unqualifiedProcessId,SecurityUtils.getUsername());
OAResult oaResult = OAProcess.start(mainFields, requestName, unqualifiedProcessId,SecurityUtils.getUsername());
- log.info("涓嶅悎鏍煎鐞哋A瀹℃牳娴佺▼缁撴潫锛岃繑鍥炵粨鏋�->{}" + oaResult);
+ log.info("涓嶅悎鏍兼祦绋婭D:{},涓嶅悎鏍煎鐞哋A瀹℃牳娴佺▼缁撴潫锛岃繑鍥炵粨鏋�->{}",unqualifiedProcessId,oaResult);
oa = oaResult.success();
if (oa) {
String addWorkflowResult = oaResult.getAddWorkflowResult();
@@ -295,6 +297,7 @@
* @return
*/
@Override
+ @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
public boolean updateUnqualifiedHandler(UnqualifiedHandlerDto unqualifiedHandlerDto) {
// 鍒犻櫎闄勪欢, 閲嶆柊娣诲姞
insUnqualifiedHandlerFileService.remove(Wrappers.<InsUnqualifiedHandlerFile>lambdaQuery()
@@ -305,8 +308,15 @@
}
insUnqualifiedHandlerFileService.updateBatchById(unqualifiedHandlerDto.getUnqualifiedHandlerFiles());
}
-
- return this.updateById(unqualifiedHandlerDto);
+ boolean isUpdated = this.updateById(unqualifiedHandlerDto);
+ if(isUpdated){
+ //鎺ㄩ�丱A
+ PushOADto pushOADto = new PushOADto();
+ pushOADto.setHandlerId(unqualifiedHandlerDto.getId());
+ pushOADto.setContract(unqualifiedHandlerDto.getContract());
+ pushOA(pushOADto);
+ }
+ return true;
}
/**
--
Gitblit v1.9.3