如题 :
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());