箱变-启源-删除质检报告同步启源
This commit is contained in:
		
							parent
							
								
									354ce97839
								
							
						
					
					
						commit
						832e648ee9
					
				|  | @ -51,18 +51,20 @@ public class SyncDeleteQcQmsRule implements IRule<ReportVO> { | |||
|                 throw new BusinessException("箱变的QMS接口缺少配置"); | ||||
|             } | ||||
|             Set<String> firstIds = new HashSet<>(); | ||||
|             List<String> cfirstbids = new ArrayList<>(); | ||||
|             List<String> delIdSet = new ArrayList<>(); | ||||
|             // 收集被删除的质检报告明细(关键优化:直接从删除的VO中获取,避免查库丢失) | ||||
|             List<ReportItemVO> deletedItems = new ArrayList<>(); | ||||
| 
 | ||||
|             for (ReportVO vo : reportVOS) { | ||||
|                 ReportHeaderVO hvo = vo.getHVO(); | ||||
|                 String pkReportbill = hvo.getPk_reportbill(); | ||||
|                 delIdSet.add(pkReportbill); | ||||
|                 ReportItemVO[] bvo = vo.getBVO(); | ||||
|                 if (bvo == null) { | ||||
|                     continue; | ||||
|                 } | ||||
|                 for (ReportItemVO itemVO : bvo) { | ||||
|                     firstIds.add(itemVO.getCfirstid()); | ||||
|                     cfirstbids.add(itemVO.getCfirstbid()); | ||||
|                     deletedItems.add(itemVO); // 保存被删除的明细 | ||||
|                 } | ||||
|             } | ||||
|  | @ -71,7 +73,7 @@ public class SyncDeleteQcQmsRule implements IRule<ReportVO> { | |||
|                 BillQuery<ArriveVO> billquery = new BillQuery(ArriveVO.class); | ||||
|                 ArriveVO[] arriveVOS = billquery.query(firstIds.toArray(new String[0])); | ||||
|                 // 传递删除的明细到构建方法 | ||||
|                 buildSyncData(arriveVOS, cfirstbids, deletedItems); | ||||
|                 buildSyncData(arriveVOS, delIdSet, deletedItems); | ||||
|             } | ||||
|         } catch (Exception e) { | ||||
|             logger.error("SyncQcQmsRule-exp:" + e.getMessage(), e); | ||||
|  | @ -82,7 +84,7 @@ public class SyncDeleteQcQmsRule implements IRule<ReportVO> { | |||
|     /** | ||||
|      * 构建同步数据(新增deletedItems参数,接收被删除的明细) | ||||
|      */ | ||||
|     private void buildSyncData(ArriveVO[] arriveVOS, List<String> cfirstbids, List<ReportItemVO> deletedItems) throws BusinessException { | ||||
|     private void buildSyncData(ArriveVO[] arriveVOS, List<String> delIdSet, List<ReportItemVO> deletedItems) throws BusinessException { | ||||
|         for (ArriveVO arriveVO : arriveVOS) { | ||||
|             ArriveHeaderVO hvo = arriveVO.getHVO(); | ||||
|             ArriveItemVO[] bvo = arriveVO.getBVO(); | ||||
|  | @ -164,7 +166,7 @@ public class SyncDeleteQcQmsRule implements IRule<ReportVO> { | |||
|                 itemObj.put("wlxhgg", materialtype + materialspec); // 物料型号规格 | ||||
| 
 | ||||
|                 // 被删除的明细标记为0(关键逻辑) | ||||
|                 if (cfirstbids.contains(reportItemVO.getCfirstbid())) { | ||||
|                 if (delIdSet.contains(pkReportbill)) { | ||||
|                     itemObj.put("sjsl", "0"); // 删除的记录数量设为0 | ||||
|                 } else { | ||||
|                     itemObj.put("sjsl", reportHeaderVO.getNapplynum() != null ? reportHeaderVO.getNapplynum().toString() : "0"); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue