如题 :
eas7.0 物料使用后台代码导入时,只保存了物料基础信息,这样的物料需要在eas客户端物料编辑界面手动保存一下 然后再分配到下级公司后可以正常使用。如果不进行保存操作直接分配到下级公司的话物料 在F7查询不到。
解决这个问题可以在 代码导入后 手动的保存物料分组明细信息。(可能是程序bimbug)
截取部分代码
MaterialInfo newMaterial = new MaterialInfo();
newMaterial.setName(name);
newMaterial.setNumber(number);
newMaterial.setPricePrecision(6);
newMaterial.setVersion(1);
// newMaterial.setStatus(UsedStatusEnum.)
// 导入后设置状态
newMaterial.setStatus(UsedStatusEnum.APPROVED);
// newMaterial.sets
// newMaterial.setInt("effectedStatus",2);
/*************************************************************/
MeasureUnitInfo measureUnitInfo = cm.getMeasureUnitInfoByNumber(ctx, unit);
newMaterial.setBaseUnit(measureUnitInfo);
// 管理单元
newMaterial.setCU(cm.getCommCtrlUnitInfo(ctx));
newMaterial.setEffectedStatus(2);
// newMaterial.setStatus(item)
// newMaterial.set
// newMaterial.
/************************************************************************/
/*************************************************************************/
// 设置分类
String materialGroupNumber = CONSTANT.MATERIALGROUPNUM_OTHER;
if(number != null && number.length() > 3){
materialGroupNumber = groupNumber[0];
}
IMaterialGroup materialGroup = MaterialGroupFactory.getLocalInstance(ctx);
EntityViewInfo evi1 = new EntityViewInfo();
FilterInfo fi1 = new FilterInfo();//建立过滤条件
fi1.getFilterItems().add(
new FilterItemInfo("number", materialGroupNumber, CompareType.EQUALS));
// i. setMaskString(" (#0 )");
evi1.setFilter(fi1);//添加过滤条件
// 获取所有属性
evi1.getSelector().add(new SelectorItemInfo("id"));//添加获取属性
evi1.getSelector().add(new SelectorItemInfo("*"));
MaterialGroupCollection mgc= materialGroup.getMaterialGroupCollection(evi1);
String groupID = StringUtils.EMPTY;
MaterialGroupInfo mgInfo = null;
MaterialGroupStandardInfo mgsInfo = null;
String groupStandardID = StringUtils.EMPTY;
if(mgc != null && mgc.size() > 0){
MaterialGroupInfo mgi = mgc.get(0);
mgInfo = mgi;
newMaterial.setMaterialGroup(mgi);
groupID = mgi.getId().toString();
mgsInfo = mgi.getGroupStandard();
groupStandardID = mgi.getGroupStandard().getId().toString();
}else{
String[][] result = new String[][]{{"9002","找不到对应的物料类别:"+ materialGroupNumber}};
materialsIDs.add(result);
continue;
}
/**************************************************************************/
IMaterial material = MaterialFactory.getLocalInstance(ctx);
try{
IObjectPK id = material.addnew(newMaterial);
newMaterial = material.getMaterialInfo(id);
// MaterialGroupDetialInfo mgdInfo = new MaterialGroupDetialInfo();
// mgdInfo.setMaterial(newMaterial);
// mgdInfo.setMaterialGroup(mgInfo);
// mgdInfo.setMaterialGroupStandard(mgsInfo);
// IObjectPK mgdID = MaterialGroupDetialFactory.getRemoteInstance().
StringBuilder addSDetailInfo = new StringBuilder("/*ditalect*/ insert into T_BD_MaterialGroupDetial values(newbosid('mgdeinfo'),'");
addSDetailInfo.append(id.toString());
addSDetailInfo.append("','");
addSDetailInfo.append(groupStandardID);
addSDetailInfo.append("','");
addSDetailInfo.append(groupID);
addSDetailInfo.append("')");
ICommFacade commFacade = CommFacadeFactory.getLocalInstance(ctx);
commFacade.execSql(addSDetailInfo.toString());