fix: E采通获取标准信息从绑定零部件中获取信息
This commit is contained in:
+1
-1
@@ -190,7 +190,7 @@ public class SrmsApiController {
|
||||
log.error("E采通获取标准信息异常:", e);
|
||||
return ResponsesUtil.getJsonResult(
|
||||
srmsApiService.getMessageHandler("interface_id", uuid, "SCM"),
|
||||
ResponsesUtil.getJsonErrUpper("操作失败", CommonConstant.SC_INTERNAL_SERVER_ERROR_500));
|
||||
ResponsesUtil.getJsonErrUpper(e.getMessage(), CommonConstant.SC_INTERNAL_SERVER_ERROR_500));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+51
-18
@@ -20,6 +20,8 @@ import com.jero.common.util.MD5Util;
|
||||
import com.jero.common.util.RedisUtil;
|
||||
import com.jero.common.util.TokenUtils;
|
||||
import com.jero.modules.bindPart.entity.BindPartStandardVO;
|
||||
import com.jero.modules.bindPart.entity.LawsBindPartDoc;
|
||||
import com.jero.modules.bindPart.service.ILawsBindPartDocService;
|
||||
import com.jero.modules.docking.srms.dto.ByTokenRequests;
|
||||
import com.jero.modules.docking.srms.dto.ProductDesign;
|
||||
import com.jero.modules.docking.srms.entity.LawsPartStandard;
|
||||
@@ -119,6 +121,9 @@ public class SrmsApiServiceImpl implements SrmsApiService {
|
||||
private IDocumentSplitService documentSplitService;
|
||||
@Resource
|
||||
private CommonAPI commonAPI;
|
||||
@Resource
|
||||
private ILawsBindPartDocService lawsBindPartDocService;
|
||||
|
||||
|
||||
@Value("${srms.font_url_pdf}")
|
||||
private String fontUrlPdf;
|
||||
@@ -782,12 +787,42 @@ public class SrmsApiServiceImpl implements SrmsApiService {
|
||||
partNumList.add(js.getString("PartNum"));
|
||||
}
|
||||
|
||||
// 根据所有零部件分类码获取相关联的标准
|
||||
LambdaQueryWrapper<LawsPartStandard> partStandardQueryWrapper = new LambdaQueryWrapper<>();
|
||||
partStandardQueryWrapper.in(LawsPartStandard::getPartCategoryNum, partNumList);
|
||||
this.syncPartStandard();
|
||||
List<LawsPartStandard> partStandardList = lawsPartStandardService.list(partStandardQueryWrapper);
|
||||
Set<String> standardIdSet = partStandardList.stream().map(LawsPartStandard::getStandardId).collect(Collectors.toSet());
|
||||
// 根据所有零部件号获取相关联的标准
|
||||
LambdaQueryWrapper<LawsBindPart> bindPartLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
bindPartLambdaQueryWrapper.in(LawsBindPart::getPartNo, partNumList);
|
||||
List<LawsBindPart> partStandardList = lawsBindPartService.list(bindPartLambdaQueryWrapper);
|
||||
Set<String> standardIdSet = partStandardList.stream().map(LawsBindPart::getStandardId).collect(Collectors.toSet());
|
||||
Map<String, List<LawsBindPart>> standardIdMap = partStandardList.stream()
|
||||
.collect(Collectors.groupingBy(LawsBindPart::getStandardId));
|
||||
|
||||
if (CollectionUtils.isEmpty(standardIdSet)) {
|
||||
throw new JeroBootException("无零部件号对应的绑定关系");
|
||||
}
|
||||
|
||||
Map<String, Set<String>> standardIdClauseIdMap = new HashMap<>();
|
||||
Set<String> allClauseIdSet = new HashSet<>();
|
||||
for (String id : standardIdSet) {
|
||||
List<LawsBindPart> lawsBindParts = standardIdMap.get(id);
|
||||
// 获取所有记录id
|
||||
List<String> idList = lawsBindParts.stream().map(LawsBindPart::getId).collect(Collectors.toList());
|
||||
// 获取所有绑定的条款记录
|
||||
List<LawsBindPartDoc> lawsBindPartDocs = lawsBindPartDocService.list(new QueryWrapper<LawsBindPartDoc>().in("bind_id", idList));
|
||||
if (CollectionUtils.isEmpty(lawsBindPartDocs)) {
|
||||
continue;
|
||||
}
|
||||
Set<String> clauseIdSet = lawsBindPartDocs.stream().map(LawsBindPartDoc::getClauseId).collect(Collectors.toSet());
|
||||
allClauseIdSet.addAll(clauseIdSet);
|
||||
standardIdClauseIdMap.put(id, clauseIdSet);
|
||||
}
|
||||
|
||||
// 找到所有拆分条款信息
|
||||
Map<String, LawsDocumentSplit> docDetailMap = new HashMap<>();
|
||||
if (CollectionUtils.isNotEmpty(allClauseIdSet)) {
|
||||
List<LawsDocumentSplit> lawsClauseList = lawsDocumentSplitMapper
|
||||
.selectList(new QueryWrapper<LawsDocumentSplit>().in("id", allClauseIdSet));
|
||||
docDetailMap = lawsClauseList.stream()
|
||||
.collect(Collectors.toMap(LawsDocumentSplit::getId, e -> e));
|
||||
}
|
||||
|
||||
// 获取所有可选的标准
|
||||
List<BindPartStandardVO> allStandardInfoList = this.getAllStandardInfo();
|
||||
@@ -811,15 +846,13 @@ public class SrmsApiServiceImpl implements SrmsApiService {
|
||||
for (String standardId : standardIdSet) {
|
||||
// 获取标准相关信息
|
||||
BindPartStandardVO standard = allStandardInfoMap.get(standardId);
|
||||
// 判断是否有拆分信息
|
||||
String infoId = standard.getInfoId();
|
||||
boolean isSplit = StrUtil.isNotBlank(infoId);
|
||||
// 判断是否有绑定条款信息
|
||||
Set<String> clauseIds = standardIdClauseIdMap.get(standardId);
|
||||
boolean isBindDoc = CollectionUtils.isNotEmpty(clauseIds);
|
||||
// 根据info_id 获取所有拆分数据 后按照拆分数据条数填充rows
|
||||
if (isSplit) {
|
||||
parameter.put("info_id", infoId);
|
||||
IPage<Map<String, Object>> data = documentSplitService.queryDocumentSplitDetail(parameter, false);
|
||||
List<Map<String, Object>> records = data.getRecords();
|
||||
for (Map<String, Object> r : records) {
|
||||
if (isBindDoc) {
|
||||
for (String clauseId : clauseIds) {
|
||||
LawsDocumentSplit split = docDetailMap.get(clauseId);
|
||||
JSONObject row = new JSONObject();
|
||||
row.put("standardNumber", standard.getStandardNumber());
|
||||
row.put("standardName", standard.getStandardName());
|
||||
@@ -833,10 +866,10 @@ public class SrmsApiServiceImpl implements SrmsApiService {
|
||||
row.put("Remark2", "");
|
||||
row.put("Remark3", "");
|
||||
JSONObject documentSplitDetail = new JSONObject();
|
||||
documentSplitDetail.put("id", r.get("id"));
|
||||
documentSplitDetail.put("itemNum", r.get("item_num"));
|
||||
documentSplitDetail.put("itemTitle", r.get("item_title"));
|
||||
documentSplitDetail.put("itemContent", r.get("item_content"));
|
||||
documentSplitDetail.put("id", split.getId());
|
||||
documentSplitDetail.put("itemNum", split.getItemNum());
|
||||
documentSplitDetail.put("itemTitle", split.getItemTitle());
|
||||
documentSplitDetail.put("itemContent", split.getItemTitle());
|
||||
documentSplitDetail.put("Remark1", "");
|
||||
documentSplitDetail.put("Remark2", "");
|
||||
documentSplitDetail.put("Remark3", "");
|
||||
|
||||
Reference in New Issue
Block a user