diff --git a/main/java/shkd/repc/recon/formplugin/ContractMaterialImportPlugin.java b/main/java/shkd/repc/recon/formplugin/ContractMaterialImportPlugin.java index 0a53722..28f2c71 100644 --- a/main/java/shkd/repc/recon/formplugin/ContractMaterialImportPlugin.java +++ b/main/java/shkd/repc/recon/formplugin/ContractMaterialImportPlugin.java @@ -283,7 +283,7 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin { } String name = (String) map.get("qeug_materialnames"); // 物料单位 - String model = (String) map.get("qeug_importmodel"); // 物料单位 + String model = (String) map.get("qeug_importmodel"); // 物料规格 // 校验物料编码是否已经存在于当前页面的表格中 if (existComb.contains(name.trim()+model.trim())) { diff --git a/main/java/shkd/repc/recon/formplugin/MaterialSaveCarryNumberPlugin.java b/main/java/shkd/repc/recon/formplugin/MaterialSaveCarryNumberPlugin.java index 0244169..c29ad53 100644 --- a/main/java/shkd/repc/recon/formplugin/MaterialSaveCarryNumberPlugin.java +++ b/main/java/shkd/repc/recon/formplugin/MaterialSaveCarryNumberPlugin.java @@ -36,9 +36,20 @@ public class MaterialSaveCarryNumberPlugin extends AbstractBillPlugIn implements public void registerListener(EventObject e) { super.registerListener(e); this.addItemClickListeners("tbmain"); - //监听分录物料F7 - BasedataEdit bEdit = this.getView().getControl("qeug_material"); - bEdit.addAfterF7SelectListener(this); + String name = this.getModel().getDataEntityType().getName(); + if (StringUtils.equals(name,"recon_contractbill")){ + //监听分录物料F7-合同非定额物料 + BasedataEdit bEdit = this.getView().getControl("qeug_material"); + bEdit.addAfterF7SelectListener(this); + }else if (StringUtils.equals(name,"repe_orderform")){ + //监听分录物料F7-采购订单物料 + BasedataEdit bEdit = this.getView().getControl("material"); + bEdit.addAfterF7SelectListener(this); + }else if (StringUtils.equals(name,"recon_settleplanbill")){ + //监听分录物料F7-采购订单物料 + BasedataEdit bEdit = this.getView().getControl("qeug_materialmasterid"); + bEdit.addAfterF7SelectListener(this); + } } @Override diff --git a/main/java/shkd/repc/recon/formplugin/SettlePlanMaterialImportPlugin.java b/main/java/shkd/repc/recon/formplugin/SettlePlanMaterialImportPlugin.java index d3c98c3..4f436d7 100644 --- a/main/java/shkd/repc/recon/formplugin/SettlePlanMaterialImportPlugin.java +++ b/main/java/shkd/repc/recon/formplugin/SettlePlanMaterialImportPlugin.java @@ -157,14 +157,15 @@ public class SettlePlanMaterialImportPlugin extends AbstractFormPlugin implement } materialList.clear(); - Set existCodes = new HashSet<>(); + Set existComb = new HashSet<>(); // 获取已存在的物料编码 DynamicObjectCollection orderFormEntry = (DynamicObjectCollection) this.getModel().getValue("qeug_cgxqentry"); if (orderFormEntry != null && !orderFormEntry.isEmpty()) { for (DynamicObject dynamicObject : orderFormEntry) { - String number = dynamicObject.getString("qeug_materialmasterid.number"); - existCodes.add(number); + String name = dynamicObject.getString("qeug_materialname"); + String model = dynamicObject.getString("qeug_importmodel"); + existComb.add(name.trim()+model.trim()); } } @@ -201,12 +202,14 @@ public class SettlePlanMaterialImportPlugin extends AbstractFormPlugin implement importMaterial.setMaterialNumber(material.getString("number")); } //物料类型校验 - String impMaterialType = (String) map.get("qeug_importmaterialtype"); - if (!validMaterialTypes.contains(impMaterialType)) { - map.replace("qeug_importmaterialtype", "待分类"); + String typeName="待分类"; + JSONObject materialType = (JSONObject) map.get("qeug_materialtypeid");//物料分类 + if (materialType!=null && validMaterialTypes.contains(materialType.getString("name"))){ + typeName = materialType.getString("name"); + } importMaterial.setMaterialName((String) map.get("qeug_materialname")); - importMaterial.setMaterialType((String) map.get("qeug_importmaterialtype")); + importMaterial.setMaterialType(typeName); importMaterial.setMaterialModel((String) map.get("qeug_importmodel")); importMaterial.setMaterialUnit((String) map.get("qeug_importunit")); importMaterial.setMaterialBrand((String) map.get("qeug_brand")); @@ -224,7 +227,7 @@ public class SettlePlanMaterialImportPlugin extends AbstractFormPlugin implement } // 进行校验 - Map indexVsMsgMap = validateEntry(entryEntityImportDataList, existCodes); + Map indexVsMsgMap = validateEntry(entryEntityImportDataList, existComb); Set indexSet = indexVsMsgMap.keySet(); Map> logMap = e.getEntryDataMap(); ImportLogger importLogger = (ImportLogger) logMap.get(entryName).get(0); @@ -256,12 +259,11 @@ public class SettlePlanMaterialImportPlugin extends AbstractFormPlugin implement /** * 校验物料名称、物料单位 * @param entryDataList - * @param existingMaterialCodes + * @param existComb * @return */ - private Map validateEntry(List entryDataList,Set existingMaterialCodes) { + private Map validateEntry(List entryDataList,Set existComb) { Map indexVsMsgMap = new HashMap<>(); -// Set encounteredMaterialCodes = new HashSet<>(); // 用于记录当前批次中的物料编码 for (int i = 0; i < entryDataList.size(); i++) { ImportEntryData entryData = entryDataList.get(i); @@ -269,33 +271,23 @@ public class SettlePlanMaterialImportPlugin extends AbstractFormPlugin implement // 获取当前行的 JSONObject 数据 JSONObject data = entryData.getData(); Map map = data.toJavaObject(Map.class); - //JSONObject material = (JSONObject) map.get("qeug_materialmasterid"); - // 获取物料编码和物料单位 - //String materialCode = material.getString("number"); // 物料编码 String materialUnit = (String) map.get("qeug_importunit"); // 物料单位 // 获取当前行号 Integer rowNum = (Integer) entryData.getData().get("rowNum"); - // 校验物料编码和物料单位 -// if (materialCode == null || materialCode.trim().isEmpty()) { -// indexVsMsgMap.put(rowNum, "第" + (i + 1) + "行:物料编码不能为空或空字符串"); -// } + if (materialUnit == null || materialUnit.trim().isEmpty()) { indexVsMsgMap.put(rowNum, "第" + (i + 1) + "行:物料单位不能为空或空字符串"); } - // 校验物料编码是否重复 -// if (encounteredMaterialCodes.contains(materialCode)) { -// indexVsMsgMap.put(rowNum, "第" + (i + 1) + "行:物料编码重复"); -// } else { -// encounteredMaterialCodes.add(materialCode); -// } -// -// // 校验物料编码是否已经存在于当前页面的表格中 -// if (existingMaterialCodes.contains(materialCode)) { -// indexVsMsgMap.put(rowNum, "第" + (i + 1) + "行:物料编码已存在,不能重复"); -// } + String name = (String) map.get("qeug_materialname"); // 物料名称 + String model = (String) map.get("qeug_importmodel"); // 物料规格 + + // 校验物料编码是否已经存在于当前页面的表格中 + if (existComb.contains(name.trim()+model.trim())) { + indexVsMsgMap.put(rowNum, "第" + (i + 1) + "行:物料+规格已存在,请勿重复导入"); + } } return indexVsMsgMap; diff --git a/main/java/shkd/repc/repe/formplugin/OrderFormMaterialImportPlugin.java b/main/java/shkd/repc/repe/formplugin/OrderFormMaterialImportPlugin.java index 7896501..2e53b08 100644 --- a/main/java/shkd/repc/repe/formplugin/OrderFormMaterialImportPlugin.java +++ b/main/java/shkd/repc/repe/formplugin/OrderFormMaterialImportPlugin.java @@ -159,14 +159,15 @@ public class OrderFormMaterialImportPlugin extends AbstractFormPlugin implements } materialList.clear(); - Set existCodes = new HashSet<>(); + Set existComb = new HashSet<>(); // 获取已存在的物料编码 DynamicObjectCollection orderFormEntry = (DynamicObjectCollection) this.getModel().getValue("orderformentry"); if (orderFormEntry != null && !orderFormEntry.isEmpty()) { for (DynamicObject dynamicObject : orderFormEntry) { - String number = dynamicObject.getString("material.number"); - existCodes.add(number); + String name = dynamicObject.getString("qeug_materialnames"); + String model = dynamicObject.getString("qeug_importmodel"); + existComb.add(name.trim()+model.trim()); } } @@ -203,12 +204,14 @@ public class OrderFormMaterialImportPlugin extends AbstractFormPlugin implements importMaterial.setMaterialNumber(material.getString("number")); } //物料类型校验 - String impMaterialType = (String) map.get("qeug_importmaterialtype"); - if (!validMaterialTypes.contains(impMaterialType)) { - map.replace("qeug_importmaterialtype", "待分类"); + String typeName="待分类"; + JSONObject materialType = (JSONObject) map.get("qeug_materialtypeid");//物料分类 + if (materialType!=null && validMaterialTypes.contains(materialType.getString("name"))){ + typeName = materialType.getString("name"); + } importMaterial.setMaterialName((String) map.get("qeug_materialnames")); - importMaterial.setMaterialType((String) map.get("qeug_importmaterialtype")); + importMaterial.setMaterialType(typeName); importMaterial.setMaterialModel((String) map.get("qeug_importmodel")); importMaterial.setMaterialUnit((String) map.get("qeug_importunit")); importMaterial.setMaterialBrand((String) map.get("qeug_brand")); @@ -226,7 +229,7 @@ public class OrderFormMaterialImportPlugin extends AbstractFormPlugin implements } // 进行校验 - Map indexVsMsgMap = validateEntry(entryEntityImportDataList, existCodes); + Map indexVsMsgMap = validateEntry(entryEntityImportDataList, existComb); Set indexSet = indexVsMsgMap.keySet(); Map> logMap = e.getEntryDataMap(); ImportLogger importLogger = (ImportLogger) logMap.get(entryName).get(0); @@ -258,10 +261,10 @@ public class OrderFormMaterialImportPlugin extends AbstractFormPlugin implements /** * 校验物料名称、物料单位 * @param entryDataList - * @param existingMaterialCodes + * @param existComb * @return */ - private Map validateEntry(List entryDataList,Set existingMaterialCodes) { + private Map validateEntry(List entryDataList,Set existComb) { Map indexVsMsgMap = new HashMap<>(); for (int i = 0; i < entryDataList.size(); i++) { @@ -278,6 +281,13 @@ public class OrderFormMaterialImportPlugin extends AbstractFormPlugin implements if (materialUnit == null || materialUnit.trim().isEmpty()) { indexVsMsgMap.put(rowNum, "第" + (i + 1) + "行:物料单位不能为空或空字符串"); } + String name = (String) map.get("qeug_materialnames"); // 物料名称 + String model = (String) map.get("qeug_importmodel"); // 物料规格 + + // 校验物料编码是否已经存在于当前页面的表格中 + if (existComb.contains(name.trim()+model.trim())) { + indexVsMsgMap.put(rowNum, "第" + (i + 1) + "行:物料+规格已存在,请勿重复导入"); + } } return indexVsMsgMap;