物料导入优化
This commit is contained in:
parent
a14577ebd4
commit
61065050b0
|
@ -127,10 +127,10 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin {
|
||||||
|
|
||||||
private String checkMaterial(String materialName, String materialModel) {
|
private String checkMaterial(String materialName, String materialModel) {
|
||||||
QFilter qFilter = new QFilter("name", QCP.equals, materialName);
|
QFilter qFilter = new QFilter("name", QCP.equals, materialName);
|
||||||
qFilter.and("modelnum", QCP.equals, materialModel);
|
qFilter.and("modelnum", QCP.equals, materialModel==null ? "":materialModel);
|
||||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("bd_material", qFilter.toArray());
|
DynamicObject[] dynamicObject = BusinessDataServiceHelper.load("bd_material", "id,number",qFilter.toArray());
|
||||||
if (dynamicObject != null) {
|
if (dynamicObject.length!=0){
|
||||||
return dynamicObject.getString("number");
|
return dynamicObject[0].getString("number");
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -150,25 +150,16 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin {
|
||||||
public void beforeImportEntry(BeforeImportEntryEventArgs e) {
|
public void beforeImportEntry(BeforeImportEntryEventArgs e) {
|
||||||
super.beforeImportEntry(e);
|
super.beforeImportEntry(e);
|
||||||
try {
|
try {
|
||||||
// 提前加载所有物料类型
|
|
||||||
Set<String> validMaterialTypes = new HashSet<>();
|
|
||||||
DynamicObject[] typeList = BusinessDataServiceHelper.load("bd_materialgroup", "id,name", null);
|
|
||||||
for (DynamicObject obj : typeList) {
|
|
||||||
validMaterialTypes.add(obj.getString("name"));
|
|
||||||
}
|
|
||||||
|
|
||||||
materialList.clear();
|
materialList.clear();
|
||||||
Set<String> existComb = new HashSet<>();
|
|
||||||
|
// 提前加载所有系统物料类型
|
||||||
|
Set<String> validMaterialTypes = this.getSysMaterialType();
|
||||||
|
|
||||||
|
//加载映射表中默认物料类型名称
|
||||||
|
String typeName=this.getMapBillMaterialTypeName();
|
||||||
|
|
||||||
// 获取已存在的物料名称+规格组合
|
// 获取已存在的物料名称+规格组合
|
||||||
DynamicObjectCollection orderFormEntry = (DynamicObjectCollection) this.getModel().getValue("qeug_orderformentry");
|
//Set<String> existComb = this.getExitMaterialArray();
|
||||||
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());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 处理导入数据
|
// 处理导入数据
|
||||||
HashMap itemEntry = (HashMap) e.getSource();
|
HashMap itemEntry = (HashMap) e.getSource();
|
||||||
|
@ -203,7 +194,6 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin {
|
||||||
importMaterial.setMaterialNumber(material.getString("number"));
|
importMaterial.setMaterialNumber(material.getString("number"));
|
||||||
}
|
}
|
||||||
//物料类型校验
|
//物料类型校验
|
||||||
String typeName="待分类";
|
|
||||||
JSONObject materialType = (JSONObject) map.get("qeug_materialtypeid");//物料分类
|
JSONObject materialType = (JSONObject) map.get("qeug_materialtypeid");//物料分类
|
||||||
if (materialType!=null && validMaterialTypes.contains(materialType.getString("name"))){
|
if (materialType!=null && validMaterialTypes.contains(materialType.getString("name"))){
|
||||||
typeName = materialType.getString("name");
|
typeName = materialType.getString("name");
|
||||||
|
@ -228,7 +218,7 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 进行校验
|
// 进行校验
|
||||||
Map<Integer, String> indexVsMsgMap = validateEntry(entryEntityImportDataList, existComb);
|
Map<Integer, String> indexVsMsgMap = validateEntry(entryEntityImportDataList);
|
||||||
Set<Integer> indexSet = indexVsMsgMap.keySet();
|
Set<Integer> indexSet = indexVsMsgMap.keySet();
|
||||||
Map<String, List<Object>> logMap = e.getEntryDataMap();
|
Map<String, List<Object>> logMap = e.getEntryDataMap();
|
||||||
ImportLogger importLogger = (ImportLogger) logMap.get(entryName).get(0);
|
ImportLogger importLogger = (ImportLogger) logMap.get(entryName).get(0);
|
||||||
|
@ -260,10 +250,10 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin {
|
||||||
/**
|
/**
|
||||||
* 校验物料名称、物料单位
|
* 校验物料名称、物料单位
|
||||||
* @param entryDataList
|
* @param entryDataList
|
||||||
* @param existComb
|
* @param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private Map<Integer, String> validateEntry(List<ImportEntryData> entryDataList,Set<String> existComb) {
|
private Map<Integer, String> validateEntry(List<ImportEntryData> entryDataList) {
|
||||||
Map<Integer, String> indexVsMsgMap = new HashMap<>();
|
Map<Integer, String> indexVsMsgMap = new HashMap<>();
|
||||||
|
|
||||||
for (int i = 0; i < entryDataList.size(); i++) {
|
for (int i = 0; i < entryDataList.size(); i++) {
|
||||||
|
@ -282,13 +272,13 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin {
|
||||||
indexVsMsgMap.put(rowNum, "第" + (i + 1) + "行:物料单位不能为空或空字符串");
|
indexVsMsgMap.put(rowNum, "第" + (i + 1) + "行:物料单位不能为空或空字符串");
|
||||||
}
|
}
|
||||||
|
|
||||||
String name = (String) map.get("qeug_materialnames"); // 物料单位
|
// String name = (String) map.get("qeug_materialnames"); // 物料单位
|
||||||
String model = (String) map.get("qeug_importmodel"); // 物料规格
|
// String model = (String) map.get("qeug_importmodel")==null ? "":(String) map.get("qeug_importmodel"); // 物料规格
|
||||||
|
//
|
||||||
// 校验物料编码是否已经存在于当前页面的表格中
|
// // 校验物料编码是否已经存在于当前页面的表格中
|
||||||
if (existComb.contains(name.trim()+model.trim())) {
|
// if (existComb.contains(name.trim()+model.trim())) {
|
||||||
indexVsMsgMap.put(rowNum, "第" + (i + 1) + "行:物料+规格已存在,请勿重复导入");
|
// indexVsMsgMap.put(rowNum, "第" + (i + 1) + "行:物料+规格已存在,请勿重复导入");
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
return indexVsMsgMap;
|
return indexVsMsgMap;
|
||||||
|
@ -309,4 +299,56 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin {
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加载系统物料类型
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private HashSet<String> getSysMaterialType(){
|
||||||
|
HashSet<String> 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<String> getExitMaterialArray(){
|
||||||
|
Set<String> 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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,6 +84,9 @@ public class MaterialSaveCarryNumberPlugin extends AbstractBillPlugIn implements
|
||||||
for (int i = 0; i < entryEntity.size(); i++) {
|
for (int i = 0; i < entryEntity.size(); i++) {
|
||||||
DynamicObject material = entryEntity.get(i).getDynamicObject(materialIdLogotype);//物料-基础资料
|
DynamicObject material = entryEntity.get(i).getDynamicObject(materialIdLogotype);//物料-基础资料
|
||||||
String type = entryEntity.get(i).getString("qeug_materialtypeid.name");//物料分类
|
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 model = entryEntity.get(i).getString("qeug_importmodel");//规格型号
|
||||||
String unit = entryEntity.get(i).getString("qeug_importunit");//规格型号
|
String unit = entryEntity.get(i).getString("qeug_importunit");//规格型号
|
||||||
String brand = entryEntity.get(i).getString("qeug_brand");//规格型号
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue