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