|
|
|
@ -772,7 +772,8 @@ public class DmServiceImpl implements DmService { |
|
|
|
@Override |
|
|
|
public List<DmAttributeTemplateItemData> dmAttributeTemplateItemGetRow1(DmAttributeTemplateItemData data) { |
|
|
|
// 左侧:可选项目 = 模板范围内项目 - 已有项目(并集结果) |
|
|
|
List<DmAttributeTemplateItemData> templateItems = dmMapper.dmAttributeTemplateItemPropertyList(data); |
|
|
|
//List<DmAttributeTemplateItemData> templateItems = dmMapper.dmAttributeTemplateItemPropertyList(data); |
|
|
|
List<DmAttributeTemplateItemData> templateItems = dmMapper.dmAttributeTemplateItemList(data); |
|
|
|
List<DmAttributeTemplateItemData> existing = dmAttributeTemplateItemDetailsSearch(data); |
|
|
|
java.util.HashSet<String> existNos = new java.util.HashSet<>(); |
|
|
|
if (existing != null) { |
|
|
|
@ -912,6 +913,7 @@ public class DmServiceImpl implements DmService { |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public void dmAttributeTemplateDelete(DmAttributeTemplateData data) { |
|
|
|
if (data.getItemList() != null && !data.getItemList().isEmpty()) { // 批量删除 |
|
|
|
for (DmTemplateData partData : data.getItemList()) { |
|
|
|
@ -920,25 +922,85 @@ public class DmServiceImpl implements DmService { |
|
|
|
partData.setAttributeNo(data.getAttributeNo()); |
|
|
|
partData.setAttributeType(data.getAttributeType()); |
|
|
|
dmMapper.dmAttributeTemplateDelete(partData); |
|
|
|
|
|
|
|
// 同步删除覆盖项目表(dm_attribute_template_item) |
|
|
|
DmAttributeTemplateItemData del = new DmAttributeTemplateItemData(); |
|
|
|
del.setSite(partData.getSite()); |
|
|
|
del.setBuNo(partData.getBuNo()); |
|
|
|
del.setAttributeNo(partData.getAttributeNo()); |
|
|
|
del.setTemplateId(partData.getTemplateId()); |
|
|
|
dmMapper.dmAttributeTemplateItemDeleteByKey(del); |
|
|
|
deleteDmAttributeTemplateItemsByTemplateKey( |
|
|
|
partData.getSite(), partData.getBuNo(), partData.getAttributeNo(), partData.getTemplateId()); |
|
|
|
} |
|
|
|
} else { // 单条删除 |
|
|
|
dmMapper.dmAttributeTemplateDelete(data); |
|
|
|
deleteDmAttributeTemplateItemsByTemplateKey( |
|
|
|
data.getSite(), data.getBuNo(), data.getAttributeNo(), data.getTemplateId()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 同步删除覆盖项目表(dm_attribute_template_item) |
|
|
|
DmAttributeTemplateItemData del = new DmAttributeTemplateItemData(); |
|
|
|
del.setSite(data.getSite()); |
|
|
|
del.setBuNo(data.getBuNo()); |
|
|
|
del.setAttributeNo(data.getAttributeNo()); |
|
|
|
del.setTemplateId(data.getTemplateId()); |
|
|
|
dmMapper.dmAttributeTemplateItemDeleteByKey(del); |
|
|
|
/** 按 site + bu + attributeNo + templateId 删除 dm_attribute_template_item。 */ |
|
|
|
private void deleteDmAttributeTemplateItemsByTemplateKey(String site, String buNo, String attributeNo, String templateId) { |
|
|
|
DmAttributeTemplateItemData del = new DmAttributeTemplateItemData(); |
|
|
|
del.setSite(site); |
|
|
|
del.setBuNo(buNo); |
|
|
|
del.setAttributeNo(attributeNo); |
|
|
|
del.setTemplateId(templateId); |
|
|
|
dmMapper.dmAttributeTemplateItemDeleteByKey(del); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 822/823时,按 site+bu+attributeNo+templateId 将模板明细中的检验项目写入 dm_attribute_template_item。 |
|
|
|
*/ |
|
|
|
private void insertDmAttributeTemplateItemsAfterBind822823(DmTemplateData partData, DmAttributeTemplateData request) { |
|
|
|
DmAttributeTemplateItemData ctx = new DmAttributeTemplateItemData(); |
|
|
|
ctx.setSite(partData.getSite()); |
|
|
|
ctx.setBuNo(partData.getBuNo()); |
|
|
|
ctx.setAttributeNo(partData.getAttributeNo()); |
|
|
|
ctx.setTemplateId(partData.getTemplateId()); |
|
|
|
|
|
|
|
List<DmAttributeTemplateItemData> fromTemplateDetailed = dmMapper.dmAttributeTemplateItemPropertyList(ctx); |
|
|
|
if (fromTemplateDetailed == null || fromTemplateDetailed.isEmpty()) { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
List<DmAttributeTemplateItemData> inOverlay = dmMapper.dmAttributeTemplateItemDetailsSearch(ctx); |
|
|
|
Set<String> existingItemNos = new HashSet<>(); |
|
|
|
int maxOrder = 0; |
|
|
|
if (inOverlay != null) { |
|
|
|
for (DmAttributeTemplateItemData row : inOverlay) { |
|
|
|
if (row != null && row.getItemNo() != null) { |
|
|
|
existingItemNos.add(row.getItemNo()); |
|
|
|
} |
|
|
|
if (row != null && row.getOrderId() != null && row.getOrderId() > maxOrder) { |
|
|
|
maxOrder = row.getOrderId(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
String createBy = request.getCreateBy() != null ? request.getCreateBy() : partData.getCreateBy(); |
|
|
|
String updateBy = request.getUpdateBy() != null ? request.getUpdateBy() : partData.getUpdateBy(); |
|
|
|
|
|
|
|
List<DmAttributeTemplateItemData> insertRows = new ArrayList<>(); |
|
|
|
int nextOrder = maxOrder + 1; |
|
|
|
boolean overlayEmpty = inOverlay == null || inOverlay.isEmpty(); |
|
|
|
for (DmAttributeTemplateItemData src : fromTemplateDetailed) { |
|
|
|
if (src == null || src.getItemNo() == null || existingItemNos.contains(src.getItemNo())) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
DmAttributeTemplateItemData row = new DmAttributeTemplateItemData(); |
|
|
|
row.setSite(partData.getSite()); |
|
|
|
row.setBuNo(partData.getBuNo()); |
|
|
|
row.setAttributeNo(partData.getAttributeNo()); |
|
|
|
row.setTemplateId(partData.getTemplateId()); |
|
|
|
row.setItemNo(src.getItemNo()); |
|
|
|
row.setDefaultValue(src.getDefaultValue()); |
|
|
|
row.setMaxValue(src.getMaxValue()); |
|
|
|
row.setMinValue(src.getMinValue()); |
|
|
|
if (overlayEmpty) { |
|
|
|
row.setOrderId(src.getOrderId() != null ? src.getOrderId() : nextOrder++); |
|
|
|
} else { |
|
|
|
row.setOrderId(nextOrder++); |
|
|
|
} |
|
|
|
row.setCreateBy(createBy); |
|
|
|
row.setUpdateBy(updateBy); |
|
|
|
insertRows.add(row); |
|
|
|
} |
|
|
|
if (!insertRows.isEmpty()) { |
|
|
|
dmMapper.dmAttributeTemplateItemInsertList(insertRows); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -966,13 +1028,14 @@ public class DmServiceImpl implements DmService { |
|
|
|
|
|
|
|
// 根据检验类型写入 operation / resource / manufacturer |
|
|
|
if ("822".equals(partData.getInspectionTypeNo()) || "823".equals(partData.getInspectionTypeNo())) { |
|
|
|
partData.setOperation(data.getOperation()); |
|
|
|
partData.setResourceID(data.getResourceID()); |
|
|
|
DmTemplateData repeat = dmMapper.searchDmPartRepeat(partData); |
|
|
|
if (repeat != null) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
dmMapper.dmAttributeTemplateSave(partData); |
|
|
|
partData.setOperation(data.getOperation()); |
|
|
|
partData.setResourceID(data.getResourceID()); |
|
|
|
DmTemplateData repeat = dmMapper.searchDmPartRepeat(partData); |
|
|
|
if (repeat != null) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
dmMapper.dmAttributeTemplateSave(partData); |
|
|
|
insertDmAttributeTemplateItemsAfterBind822823(partData, data); |
|
|
|
} else if ("105".equals(partData.getInspectionTypeNo())) { // IQC |
|
|
|
if (data.getManufacturerList() != null && !data.getManufacturerList().isEmpty()) { |
|
|
|
for (String manufacturer : data.getManufacturerList()) { |
|
|
|
|