手动新增物料保存后带出编码等字段
This commit is contained in:
parent
4d4949dba4
commit
1d7488aa40
|
@ -123,7 +123,7 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin {
|
||||||
this.getView().showMessage(e.getMessage());
|
this.getView().showMessage(e.getMessage());
|
||||||
}
|
}
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
||||||
|
|
|
@ -0,0 +1,174 @@
|
||||||
|
package shkd.repc.recon.formplugin;
|
||||||
|
|
||||||
|
import kd.bos.coderule.api.CodeRuleInfo;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.form.control.events.BeforeItemClickEvent;
|
||||||
|
import kd.bos.form.plugin.AbstractFormPlugin;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.coderule.CodeRuleServiceHelper;
|
||||||
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||||
|
import kd.bos.servicehelper.org.OrgUnitServiceHelper;
|
||||||
|
import kd.sdk.plugin.Plugin;
|
||||||
|
import shkd.repc.recon.formplugin.dynamic.ImportMaterial;
|
||||||
|
|
||||||
|
import java.util.EventObject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 动态表单插件
|
||||||
|
* 带出物料编码
|
||||||
|
*/
|
||||||
|
public class MaterialSaveCarryNumberPlugin extends AbstractFormPlugin implements Plugin {
|
||||||
|
|
||||||
|
private static final String BOS_ORG = "bos_org";//组织实体
|
||||||
|
|
||||||
|
private static final String BD_MATERIAL = "bd_material";//物料实体
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerListener(EventObject e) {
|
||||||
|
super.registerListener(e);
|
||||||
|
this.addItemClickListeners("tbmain");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void beforeItemClick(BeforeItemClickEvent evt) {
|
||||||
|
super.beforeItemClick(evt);
|
||||||
|
String key = evt.getItemKey().toLowerCase();
|
||||||
|
if ("bar_save".equals(key)) {
|
||||||
|
this.carryMaterialNumber();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 携带物料编码
|
||||||
|
*/
|
||||||
|
private void carryMaterialNumber() {
|
||||||
|
DynamicObjectCollection entryEntity = this.getModel().getEntryEntity("qeug_orderformentry");
|
||||||
|
if (entryEntity != null && entryEntity.size() != 0) {
|
||||||
|
for (int i = 0; i < entryEntity.size(); i++) {
|
||||||
|
DynamicObject material = entryEntity.get(i).getDynamicObject("qeug_material");//物料-基础资料
|
||||||
|
String type = entryEntity.get(i).getString("qeug_importmaterialtype");//物料分类
|
||||||
|
String model = entryEntity.get(i).getString("qeug_importmodel");//规格型号
|
||||||
|
String unit = entryEntity.get(i).getString("qeug_importunit");//规格型号
|
||||||
|
String brand = entryEntity.get(i).getString("qeug_brand");//规格型号
|
||||||
|
String extModel = entryEntity.get(i).getString("qeug_model");//规格型号
|
||||||
|
Long id;
|
||||||
|
if (material==null){
|
||||||
|
String name = entryEntity.get(i).getString("qeug_materialnames");
|
||||||
|
if (name!=null&&!"".equals(name)){
|
||||||
|
//查询系统已有编码
|
||||||
|
id = this.getExitMaterialId(name,model);
|
||||||
|
if (id==null){
|
||||||
|
//新增物料
|
||||||
|
id=this.addNewMaterial(name,type,model,unit,brand,extModel);
|
||||||
|
}
|
||||||
|
this.getModel().setValue("qeug_material",id,i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询系统中有的物料id
|
||||||
|
* @param materialName 名称
|
||||||
|
* @param materialModel 规格类型
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Long getExitMaterialId(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.getLong("id");
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增物料-带出id
|
||||||
|
* @param name 名称
|
||||||
|
* @param type 分类
|
||||||
|
* @param model 规格型号
|
||||||
|
* @param unit 单位
|
||||||
|
* @param brand 品牌
|
||||||
|
* @param extModel 型号
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Long addNewMaterial(String name, String type, String model, String unit, String brand, String extModel) {
|
||||||
|
DynamicObject bd_material;
|
||||||
|
Long id = null;
|
||||||
|
try {
|
||||||
|
bd_material = BusinessDataServiceHelper.newDynamicObject(BD_MATERIAL);
|
||||||
|
//物料编码
|
||||||
|
DynamicObject dynamicObject = BusinessDataServiceHelper.newDynamicObject("bd_material");
|
||||||
|
CodeRuleInfo codeRule = CodeRuleServiceHelper.getCodeRule(dynamicObject.getDataEntityType().getName(),
|
||||||
|
dynamicObject, null);
|
||||||
|
bd_material.set("number", CodeRuleServiceHelper.getNumber(codeRule, dynamicObject));
|
||||||
|
//物料名称
|
||||||
|
bd_material.set("name", name);
|
||||||
|
//所属组织
|
||||||
|
long rootOrgId = OrgUnitServiceHelper.getRootOrgId();
|
||||||
|
DynamicObject org = BusinessDataServiceHelper.loadSingle(rootOrgId, BOS_ORG);
|
||||||
|
if (null != org) {
|
||||||
|
bd_material.set("createorg", org);
|
||||||
|
}
|
||||||
|
//物料单位
|
||||||
|
QFilter unitQFilter = new QFilter("name", QCP.equals, unit);
|
||||||
|
DynamicObject measureUnits = BusinessDataServiceHelper.loadSingle("bd_measureunits", unitQFilter.toArray());
|
||||||
|
if (null != measureUnits) {
|
||||||
|
bd_material.set("baseunit", measureUnits);
|
||||||
|
}
|
||||||
|
bd_material.set("modelnum", model);//规格
|
||||||
|
bd_material.set("materialtype", "1");//物料类型:物资
|
||||||
|
//业务属性
|
||||||
|
DynamicObjectCollection collection = bd_material.getDynamicObjectCollection("serviceattribute");
|
||||||
|
DynamicObject serviceAttribute = BusinessDataServiceHelper.loadSingle("bd_serviceattribute", (new QFilter("number", QCP.equals, "1001")).toArray());
|
||||||
|
if (serviceAttribute!=null){
|
||||||
|
DynamicObject dynamicObject1 = new DynamicObject(collection.getDynamicObjectType());
|
||||||
|
dynamicObject1.set("fbasedataId",serviceAttribute);
|
||||||
|
collection.add(dynamicObject1);
|
||||||
|
}
|
||||||
|
bd_material.set("qeug_brand",brand);//品牌
|
||||||
|
bd_material.set("qeug_model",extModel);//型号
|
||||||
|
bd_material.set("enable", "1");//使用状态:可用
|
||||||
|
bd_material.set("status", "C");//数据状态:审核
|
||||||
|
bd_material.set("ctrlstrategy", "5");//控制策略:全局共享
|
||||||
|
bd_material.set("enablepur",true);//可采购
|
||||||
|
bd_material.set("enablesale",true);//可销售
|
||||||
|
bd_material.set("enableinv",true);//可库存
|
||||||
|
|
||||||
|
SaveServiceHelper.save(new DynamicObject[]{bd_material});
|
||||||
|
//物料分类映射
|
||||||
|
DynamicObject group = BusinessDataServiceHelper.loadSingle("bd_materialgroup", (new QFilter("name", QCP.equals, type)).toArray());
|
||||||
|
if (group==null) {
|
||||||
|
//待分类
|
||||||
|
group = BusinessDataServiceHelper.loadSingle("bd_materialgroup", (new QFilter("number", QCP.equals, "waitgroup")).toArray());
|
||||||
|
}
|
||||||
|
id = bd_material.getLong("id");
|
||||||
|
this.newMaterialType(id,group);
|
||||||
|
} catch (Exception e) {
|
||||||
|
this.getView().showMessage(e.getMessage());
|
||||||
|
}
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增物料分类映射表数据
|
||||||
|
* @param materialId
|
||||||
|
* @param group
|
||||||
|
*/
|
||||||
|
private void newMaterialType(Long materialId, DynamicObject group) {
|
||||||
|
DynamicObject materialType = BusinessDataServiceHelper.newDynamicObject("bd_materialgroupdetail");
|
||||||
|
//分类标准
|
||||||
|
DynamicObject standard = BusinessDataServiceHelper.loadSingle("bd_materialgroupstandard", (new QFilter("number", QCP.equals, "JBFLBZ")).toArray());
|
||||||
|
materialType.set("standard",standard);
|
||||||
|
materialType.set("group",group);
|
||||||
|
//物料
|
||||||
|
materialType.set("material",materialId);
|
||||||
|
SaveServiceHelper.save(new DynamicObject[]{materialType});
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue