diff --git a/main/java/shkd/repc/recon/formplugin/ContractMaterialImportPlugin.java b/main/java/shkd/repc/recon/formplugin/ContractMaterialImportPlugin.java index 28f2c71..b58c3e3 100644 --- a/main/java/shkd/repc/recon/formplugin/ContractMaterialImportPlugin.java +++ b/main/java/shkd/repc/recon/formplugin/ContractMaterialImportPlugin.java @@ -127,10 +127,10 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin { private String checkMaterial(String materialName, String materialModel) { QFilter qFilter = new QFilter("name", QCP.equals, materialName); - qFilter.and("modelnum", QCP.equals, materialModel); - DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("bd_material", qFilter.toArray()); - if (dynamicObject != null) { - return dynamicObject.getString("number"); + qFilter.and("modelnum", QCP.equals, materialModel==null ? "":materialModel); + DynamicObject[] dynamicObject = BusinessDataServiceHelper.load("bd_material", "id,number",qFilter.toArray()); + if (dynamicObject.length!=0){ + return dynamicObject[0].getString("number"); } return null; } @@ -150,25 +150,16 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin { public void beforeImportEntry(BeforeImportEntryEventArgs e) { super.beforeImportEntry(e); try { - // 提前加载所有物料类型 - Set validMaterialTypes = new HashSet<>(); - DynamicObject[] typeList = BusinessDataServiceHelper.load("bd_materialgroup", "id,name", null); - for (DynamicObject obj : typeList) { - validMaterialTypes.add(obj.getString("name")); - } - materialList.clear(); - Set existComb = new HashSet<>(); + + // 提前加载所有系统物料类型 + Set validMaterialTypes = this.getSysMaterialType(); + + //加载映射表中默认物料类型名称 + String typeName=this.getMapBillMaterialTypeName(); // 获取已存在的物料名称+规格组合 - DynamicObjectCollection orderFormEntry = (DynamicObjectCollection) this.getModel().getValue("qeug_orderformentry"); - if (orderFormEntry != null && !orderFormEntry.isEmpty()) { - for (DynamicObject dynamicObject : orderFormEntry) { - String name = dynamicObject.getString("qeug_materialnames"); - String model = dynamicObject.getString("qeug_importmodel"); - existComb.add(name.trim()+model.trim()); - } - } + //Set existComb = this.getExitMaterialArray(); // 处理导入数据 HashMap itemEntry = (HashMap) e.getSource(); @@ -203,7 +194,6 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin { importMaterial.setMaterialNumber(material.getString("number")); } //物料类型校验 - String typeName="待分类"; JSONObject materialType = (JSONObject) map.get("qeug_materialtypeid");//物料分类 if (materialType!=null && validMaterialTypes.contains(materialType.getString("name"))){ typeName = materialType.getString("name"); @@ -228,7 +218,7 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin { } // 进行校验 - Map indexVsMsgMap = validateEntry(entryEntityImportDataList, existComb); + Map indexVsMsgMap = validateEntry(entryEntityImportDataList); Set indexSet = indexVsMsgMap.keySet(); Map> logMap = e.getEntryDataMap(); ImportLogger importLogger = (ImportLogger) logMap.get(entryName).get(0); @@ -260,10 +250,10 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin { /** * 校验物料名称、物料单位 * @param entryDataList - * @param existComb + * @param * @return */ - private Map validateEntry(List entryDataList,Set existComb) { + private Map validateEntry(List entryDataList) { Map indexVsMsgMap = new HashMap<>(); for (int i = 0; i < entryDataList.size(); i++) { @@ -282,13 +272,13 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin { 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) + "行:物料+规格已存在,请勿重复导入"); - } +// String name = (String) map.get("qeug_materialnames"); // 物料单位 +// String model = (String) map.get("qeug_importmodel")==null ? "":(String) map.get("qeug_importmodel"); // 物料规格 +// +// // 校验物料编码是否已经存在于当前页面的表格中 +// if (existComb.contains(name.trim()+model.trim())) { +// indexVsMsgMap.put(rowNum, "第" + (i + 1) + "行:物料+规格已存在,请勿重复导入"); +// } } return indexVsMsgMap; @@ -309,4 +299,56 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin { } return result; } + + /** + * 加载系统物料类型 + * @return + */ + private HashSet getSysMaterialType(){ + HashSet validMaterialTypes = new HashSet<>(); + DynamicObject[] typeList = BusinessDataServiceHelper.load("bd_materialgroup", "id,name", null); + for (DynamicObject obj : typeList) { + validMaterialTypes.add(obj.getString("name")); + } + return validMaterialTypes; + } + + + /** + *加载映射表中默认物料类型名称 + */ + private String getMapBillMaterialTypeName(){ + String typeName="待确认"; + DynamicObject contractType = (DynamicObject) this.getModel().getValue("contracttype"); + if (contractType!=null){ + //查找映射表 + DynamicObject typeMap = BusinessDataServiceHelper.loadSingle("qeug_materialtypemap", (new QFilter("qeug_contracttype.id", QCP.equals, contractType.getPkValue())).toArray()); + if (typeMap!=null){ + //获取默认物料分类 + DynamicObject materialTypeObj = typeMap.getDynamicObject("qeug_materialtype"); + if (materialTypeObj!=null){ + typeName = materialTypeObj.getString("name"); + } + } + } + return typeName; + } + + /** + * 获取已存在的物料名称+规格组合 + * @return + */ + private Set getExitMaterialArray(){ + Set existComb = new HashSet<>(); + DynamicObjectCollection orderFormEntry = (DynamicObjectCollection) this.getModel().getValue("qeug_orderformentry"); + if (orderFormEntry != null && !orderFormEntry.isEmpty()) { + for (DynamicObject dynamicObject : orderFormEntry) { + String name = dynamicObject.getString("qeug_materialnames"); + String model = dynamicObject.getString("qeug_importmodel"); + existComb.add(name.trim()+model.trim()); + } + } + return existComb; + } + } diff --git a/main/java/shkd/repc/recon/formplugin/MaterialSaveCarryNumberPlugin.java b/main/java/shkd/repc/recon/formplugin/MaterialSaveCarryNumberPlugin.java index c29ad53..8e76afc 100644 --- a/main/java/shkd/repc/recon/formplugin/MaterialSaveCarryNumberPlugin.java +++ b/main/java/shkd/repc/recon/formplugin/MaterialSaveCarryNumberPlugin.java @@ -84,6 +84,9 @@ public class MaterialSaveCarryNumberPlugin extends AbstractBillPlugIn implements for (int i = 0; i < entryEntity.size(); i++) { DynamicObject material = entryEntity.get(i).getDynamicObject(materialIdLogotype);//物料-基础资料 String type = entryEntity.get(i).getString("qeug_materialtypeid.name");//物料分类 + if (type==null||"".equals(type)){ + type=this.getMapBillMaterialTypeName(); + } String model = entryEntity.get(i).getString("qeug_importmodel");//规格型号 String unit = entryEntity.get(i).getString("qeug_importunit");//规格型号 String brand = entryEntity.get(i).getString("qeug_brand");//规格型号 @@ -310,4 +313,21 @@ public class MaterialSaveCarryNumberPlugin extends AbstractBillPlugIn implements } } } + + private String getMapBillMaterialTypeName(){ + String typeName="待确认"; + DynamicObject contractType = (DynamicObject) this.getModel().getValue("contracttype"); + if (contractType!=null){ + //查找映射表 + DynamicObject typeMap = BusinessDataServiceHelper.loadSingle("qeug_materialtypemap", (new QFilter("qeug_contracttype.id", QCP.equals, contractType.getPkValue())).toArray()); + if (typeMap!=null){ + //获取默认物料分类 + DynamicObject materialTypeObj = typeMap.getDynamicObject("qeug_materialtype"); + if (materialTypeObj!=null){ + typeName = materialTypeObj.getString("name"); + } + } + } + return typeName; + } } \ No newline at end of file