EAS物料导入 分配到分公司后F7中取不到的问题

如题 :

  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());
	    			
 

你可能感兴趣的:(EAS物料导入 分配到分公司后F7中取不到的问题)