|  | @@ -0,0 +1,709 @@
 | 
	
		
			
				|  |  | +package nc.ui.ic.m4451.action;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import java.awt.event.ActionEvent;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import javax.swing.JOptionPane;
 | 
	
		
			
				|  |  | +import javax.swing.filechooser.FileSystemView;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import org.apache.poi.hssf.usermodel.HSSFCell;
 | 
	
		
			
				|  |  | +import org.apache.poi.ss.usermodel.Workbook;
 | 
	
		
			
				|  |  | +import org.apache.poi.ss.usermodel.WorkbookFactory;
 | 
	
		
			
				|  |  | +import org.apache.poi.ss.usermodel.Row;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import nc.bs.dzgy.pub.db.JDBCUtils;
 | 
	
		
			
				|  |  | +import nc.bs.framework.common.InvocationInfoProxy;
 | 
	
		
			
				|  |  | +import nc.bs.framework.common.NCLocator;
 | 
	
		
			
				|  |  | +import nc.itf.ic.m4455.self.ISapplyBillMaintain;
 | 
	
		
			
				|  |  | +import nc.ui.dzgy.impexcle.tools.ImpExcleUtils;
 | 
	
		
			
				|  |  | +import nc.ui.ic.pub.model.ICBizEditorModel;
 | 
	
		
			
				|  |  | +import nc.ui.pubapp.uif2app.view.BillForm;
 | 
	
		
			
				|  |  | +import nc.ui.uif2.NCAction;
 | 
	
		
			
				|  |  | +import nc.ui.uif2.model.AbstractAppModel;
 | 
	
		
			
				|  |  | +import nc.ui.pub.beans.MessageDialog;
 | 
	
		
			
				|  |  | +import nc.ui.pub.beans.UIFileChooser;
 | 
	
		
			
				|  |  | +import nc.ui.uif2.UIState;
 | 
	
		
			
				|  |  | +import nc.vo.bd.defdoc.DefdocVO;
 | 
	
		
			
				|  |  | +import nc.vo.bd.material.MaterialVO;
 | 
	
		
			
				|  |  | +import nc.vo.bd.psn.PsndocVO;
 | 
	
		
			
				|  |  | +import nc.vo.ic.m4455.entity.SapplyBillBodyVO;
 | 
	
		
			
				|  |  | +import nc.vo.ic.m4455.entity.SapplyBillHeadVO;
 | 
	
		
			
				|  |  | +import nc.vo.ic.m4455.entity.SapplyBillVO;
 | 
	
		
			
				|  |  | +import nc.vo.jcom.lang.StringUtil;
 | 
	
		
			
				|  |  | +import nc.vo.org.DeptVO;
 | 
	
		
			
				|  |  | +import nc.vo.org.StockOrgVO;
 | 
	
		
			
				|  |  | +import nc.vo.pub.BusinessException;
 | 
	
		
			
				|  |  | +import nc.vo.pub.billtype.BilltypeVO;
 | 
	
		
			
				|  |  | +import nc.vo.pub.lang.UFBoolean;
 | 
	
		
			
				|  |  | +import nc.vo.pub.lang.UFDate;
 | 
	
		
			
				|  |  | +import nc.vo.pub.lang.UFDateTime;
 | 
	
		
			
				|  |  | +import nc.vo.pub.lang.UFDouble;
 | 
	
		
			
				|  |  | +import nc.itf.uap.IUAPQueryBS;
 | 
	
		
			
				|  |  | +import nc.jdbc.framework.processor.ColumnProcessor;
 | 
	
		
			
				|  |  | +import nc.jdbc.framework.processor.MapListProcessor;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import java.awt.Component;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import org.apache.poi.ss.usermodel.Sheet;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import nc.vo.pmpub.project.ProjectHeadVO;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import java.io.File;
 | 
	
		
			
				|  |  | +import java.text.SimpleDateFormat;
 | 
	
		
			
				|  |  | +import java.util.ArrayList;
 | 
	
		
			
				|  |  | +import java.util.Date;
 | 
	
		
			
				|  |  | +import java.util.HashMap;
 | 
	
		
			
				|  |  | +import java.util.List;
 | 
	
		
			
				|  |  | +import java.util.Map;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import org.apache.poi.ss.usermodel.Cell;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +public class ImportExcelActionAction extends NCAction{
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	/**
 | 
	
		
			
				|  |  | +	 * 导入按钮
 | 
	
		
			
				|  |  | +	 */
 | 
	
		
			
				|  |  | +	private static final long serialVersionUID = 6678424264439690539L;
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private AbstractAppModel model;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	private ISapplyBillMaintain  isbmaintain=(ISapplyBillMaintain) NCLocator.getInstance().lookup(ISapplyBillMaintain.class.getName());//出库申请单接口
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private String pk_group=InvocationInfoProxy.getInstance().getGroupId();
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private String userid=InvocationInfoProxy.getInstance().getUserId();
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private Map<String, StockOrgVO> orgVOMap;
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private Map<String, BilltypeVO> billTypeMap;//申请类型 
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private Map<String, PsndocVO> psndocVOMap;
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private Map<String, DeptVO> deptVOMap;
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private Map<String, ProjectHeadVO> projectHeadVOMap;
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private Map<String, DefdocVO> dfdocVOMap;
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private Map<String, MaterialVO> materialMap;
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private ArrayList<String> materCodes = new ArrayList<String>();// 用于存储物料编码
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private ArrayList<String> orgCodes = new ArrayList<String>();// 用于存储业务单元编码
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private ArrayList<String> billtypes = new ArrayList<String>();// 用于存储订单类型编码
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private ArrayList<String> psonNames = new ArrayList<String>();// 用于项目经理编码
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private ArrayList<String> deptNames = new ArrayList<String>();// 用于部门编码
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private ArrayList<String> projectNames = new ArrayList<String>();// 用于工程项目编码
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private ArrayList<String> dfdocNames = new ArrayList<String>();// 用于自定领料人编码
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	public ImportExcelActionAction(){
 | 
	
		
			
				|  |  | +		super.setBtnName("导入");
 | 
	
		
			
				|  |  | +		super.setCode("importExcelAction");
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public void doAction(ActionEvent arg0) throws Exception {
 | 
	
		
			
				|  |  | +//		MessageDialog.showHintDlg(null, "提示", "按钮点击成功");
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		File file = openFile();// 打开excel
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		if(null==file){
 | 
	
		
			
				|  |  | +			return;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		ImpExcleUtils impexcleutils=new ImpExcleUtils();
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		 List<List<Object>> objList=impexcleutils.readExcel(file);
 | 
	
		
			
				|  |  | +		 
 | 
	
		
			
				|  |  | +		 Object restObj = initilt(objList);
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		 if (restObj instanceof String) {
 | 
	
		
			
				|  |  | +//			StringUtils.setLogger("采购订单数据初始化失败,原因[" + restObj.toString() + "]");
 | 
	
		
			
				|  |  | +			throw new Exception(restObj.toString());
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		 
 | 
	
		
			
				|  |  | +		 ArrayList<SapplyBillVO> aggvos = (ArrayList<SapplyBillVO>) restObj;
 | 
	
		
			
				|  |  | +		 
 | 
	
		
			
				|  |  | +		 SapplyBillVO[] billVOs =aggvos.toArray(new SapplyBillVO[aggvos.size()]);
 | 
	
		
			
				|  |  | +		 
 | 
	
		
			
				|  |  | +		 SapplyBillVO[] newaggvos= isbmaintain.insert(billVOs);
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		 MessageDialog.showHintDlg(null, "提示", "导入成功,共计:"+newaggvos.length+"条!"); 
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		 
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	/**
 | 
	
		
			
				|  |  | +	 * initilt:数据初始化
 | 
	
		
			
				|  |  | +	 * 
 | 
	
		
			
				|  |  | +	 * @author 
 | 
	
		
			
				|  |  | +	 * @date 
 | 
	
		
			
				|  |  | +	 * @param objList
 | 
	
		
			
				|  |  | +	 * @return Object
 | 
	
		
			
				|  |  | +	 * @throws BusinessException 
 | 
	
		
			
				|  |  | +	 */
 | 
	
		
			
				|  |  | +	private Object initilt(List<List<Object>> objList) throws BusinessException {
 | 
	
		
			
				|  |  | +		StringBuffer restBuf = new StringBuffer();
 | 
	
		
			
				|  |  | +		initilt_isNull(objList, restBuf);// 为空判断
 | 
	
		
			
				|  |  | +		if (restBuf.length() > 0) {
 | 
	
		
			
				|  |  | +			return restBuf.toString();
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		Object bd_restObj = initilt_IsNull_bd(objList);// 档案初始化
 | 
	
		
			
				|  |  | +		if (bd_restObj != null) {
 | 
	
		
			
				|  |  | +			return bd_restObj.toString();
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		Object restObjVO = getImpPurchaseVO(objList);// 拆单汇总成VO
 | 
	
		
			
				|  |  | +		if (restObjVO instanceof String) {
 | 
	
		
			
				|  |  | +			return restObjVO.toString();
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		return restObjVO;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	/**
 | 
	
		
			
				|  |  | +	 * initilt_IsNull_bd:档案数据初始化
 | 
	
		
			
				|  |  | +	 * 
 | 
	
		
			
				|  |  | +	 * @author 
 | 
	
		
			
				|  |  | +	 * @date 
 | 
	
		
			
				|  |  | +	 * @return Object
 | 
	
		
			
				|  |  | +	 * @throws BusinessException 
 | 
	
		
			
				|  |  | +	 */
 | 
	
		
			
				|  |  | +	private Object initilt_IsNull_bd(List<List<Object>> objList) throws BusinessException {
 | 
	
		
			
				|  |  | +		StringBuffer restBuf = new StringBuffer();
 | 
	
		
			
				|  |  | +		JDBCUtils jabcutils=new JDBCUtils();
 | 
	
		
			
				|  |  | +		if (orgCodes != null && orgCodes.size() != 0) {
 | 
	
		
			
				|  |  | +			orgVOMap = jabcutils.queryOrgVOMap(getWhereInSql("code", orgCodes));
 | 
	
		
			
				|  |  | +			if (orgVOMap == null || orgVOMap.size() == 0) {
 | 
	
		
			
				|  |  | +				restBuf.append("根据业务单元编码[" + orgCodes + "]检索NC业务单元档案为空;");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		if (billtypes != null && billtypes.size() != 0) {
 | 
	
		
			
				|  |  | +			billTypeMap = jabcutils.querybillTypeMap(getWhereInSql("pk_billtypecode", billtypes));
 | 
	
		
			
				|  |  | +			if (billTypeMap == null || billTypeMap.size() == 0) {
 | 
	
		
			
				|  |  | +				restBuf.append("根据申请类型名称[" + billtypes + "]检索NC申请类型档案为空;").append("\n");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +		if (psonNames != null && psonNames.size() != 0) {
 | 
	
		
			
				|  |  | +			psndocVOMap = jabcutils.queryPsndocVOMap(getWhereInSql("code", psonNames));
 | 
	
		
			
				|  |  | +			if (psndocVOMap == null || psndocVOMap.size() == 0) {
 | 
	
		
			
				|  |  | +				restBuf.append("根据项目经理编码[" + psonNames + "]检索NC人员档案为空;");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		if (deptNames != null && deptNames.size() != 0) {
 | 
	
		
			
				|  |  | +			deptVOMap = jabcutils.queryDeptVOMap(getWhereInSql("code", deptNames));
 | 
	
		
			
				|  |  | +			if (deptVOMap == null || deptVOMap.size() == 0) {
 | 
	
		
			
				|  |  | +				throw new BusinessException("根据部门编码[" + deptVOMap + "]检索NC部门档案为空;");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		if (dfdocNames != null && dfdocNames.size() != 0) {
 | 
	
		
			
				|  |  | +			dfdocVOMap = jabcutils.queryProjectDefdocVOMap(getWhereInSql("bd_defdoc.code", dfdocNames));
 | 
	
		
			
				|  |  | +			if (dfdocVOMap == null || dfdocVOMap.size() == 0) {
 | 
	
		
			
				|  |  | +				throw new BusinessException("根据自定领料人编码[" + dfdocVOMap + "]检索NC自定领料人档案为空;");
 | 
	
		
			
				|  |  | +			}	
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		if (materCodes != null && materCodes.size() != 0) {
 | 
	
		
			
				|  |  | +			materialMap = jabcutils.queryMaterialMap(getWhereInSql("a.code", materCodes));
 | 
	
		
			
				|  |  | +			if (materialMap == null || materialMap.size() == 0) {
 | 
	
		
			
				|  |  | +				restBuf.append("根据物料编码[" + materCodes + "]检索NC物料档案为空;");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		if (projectNames != null && projectNames.size() != 0) {
 | 
	
		
			
				|  |  | +			projectHeadVOMap = jabcutils.queryProjectHeadVOMap(getWhereInSql("project_code", projectNames));
 | 
	
		
			
				|  |  | +			if (projectHeadVOMap == null || projectHeadVOMap.size() == 0) {
 | 
	
		
			
				|  |  | +				restBuf.append("根据工程项目编码[" + projectHeadVOMap + "]检索NC工程项目档案为空;");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		if (restBuf.length() > 0) {
 | 
	
		
			
				|  |  | +			return restBuf.toString();
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		for (int i = 1; i < objList.size(); i++) {
 | 
	
		
			
				|  |  | +			StringBuffer rowMsg = new StringBuffer();
 | 
	
		
			
				|  |  | +			List<Object> rowList = objList.get(i);
 | 
	
		
			
				|  |  | +			StockOrgVO orgVO = orgVOMap.get(rowList.get(1).toString());
 | 
	
		
			
				|  |  | +			if (orgVO == null) {
 | 
	
		
			
				|  |  | +				rowMsg.append("业务单元编码[" + rowList.get(1).toString() + "]检索NC业务单元档案为空;");
 | 
	
		
			
				|  |  | +			}/*else{
 | 
	
		
			
				|  |  | +				if (projectNames != null && projectNames.size() != 0) {
 | 
	
		
			
				|  |  | +					projectHeadVOMap = jabcutils.queryProjectHeadVOMap(getWhereInSql("project_code", projectNames,orgVO.getPk_stockorg()),projectHeadVOMap);
 | 
	
		
			
				|  |  | +					if (projectHeadVOMap == null || projectHeadVOMap.size() == 0) {
 | 
	
		
			
				|  |  | +						//throw new BusinessException("根据工程项目编码[" + projectHeadVOMap + "]检索NC工程项目档案为空;");
 | 
	
		
			
				|  |  | +						rowMsg.append("根据工程项目编码[" + projectHeadVOMap + "]检索NC工程项目档案为空;");
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +					
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}*/
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			else{
 | 
	
		
			
				|  |  | +				
 | 
	
		
			
				|  |  | +//				Map<String, ProjectHeadVO> projectmap = jabcutils.queryProjectHeadVOMap(getprojectWhereInSql("project_code", rowList.get(6).toString(),orgVO.getPk_stockorg()));
 | 
	
		
			
				|  |  | +//				if (projectmap == null || projectmap.size()==0) {
 | 
	
		
			
				|  |  | +//					rowMsg.append(rowList.get(1)+"组织,工程项目编码[" + rowList.get(6).toString() + "]检索NC工程项目档案为空;");
 | 
	
		
			
				|  |  | +//				}else{
 | 
	
		
			
				|  |  | +//					projectHeadVOMap.putAll(projectmap);
 | 
	
		
			
				|  |  | +//				}
 | 
	
		
			
				|  |  | +				
 | 
	
		
			
				|  |  | +				//部门
 | 
	
		
			
				|  |  | +//				Map<String, DeptVO> deptMap=jabcutils.queryOrgDeptVOMap(getprojectWhereInSql("code", rowList.get(5).toString(),orgVO.getPk_stockorg()));
 | 
	
		
			
				|  |  | +//				if (deptMap == null || deptMap.size()==0) {
 | 
	
		
			
				|  |  | +//					rowMsg.append(rowList.get(1)+"组织,部门编码[" + rowList.get(5).toString() + "]检索NC部门档案为空;");
 | 
	
		
			
				|  |  | +//				}else{
 | 
	
		
			
				|  |  | +//					deptVOMap.putAll(deptMap);
 | 
	
		
			
				|  |  | +//				}
 | 
	
		
			
				|  |  | +				
 | 
	
		
			
				|  |  | +				ProjectHeadVO projectvo=projectHeadVOMap.get(orgVO.getPk_stockorg()+rowList.get(6).toString());//工程项目
 | 
	
		
			
				|  |  | +				
 | 
	
		
			
				|  |  | +				if (projectvo == null) {
 | 
	
		
			
				|  |  | +					rowMsg.append("根据"+rowList.get(1)+"组织,工程项目编码[" + rowList.get(6).toString() + "]检索NC工程项目档案为空;");
 | 
	
		
			
				|  |  | +					
 | 
	
		
			
				|  |  | +				}else if(!projectvo.getPk_org().equals(orgVO.getPk_stockorg())){
 | 
	
		
			
				|  |  | +					
 | 
	
		
			
				|  |  | +					rowMsg.append("根据"+rowList.get(1)+"组织,工程项目编码[" + rowList.get(6).toString() + "]检索NC工程项目档案为空;");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				
 | 
	
		
			
				|  |  | +				DeptVO deptvo=deptVOMap.get(rowList.get(5).toString());//部门
 | 
	
		
			
				|  |  | +				
 | 
	
		
			
				|  |  | +				if (deptvo == null) {
 | 
	
		
			
				|  |  | +					rowMsg.append("根据"+rowList.get(1)+"组织,部门编码[" + rowList.get(5).toString() + "]检索NC部门档案为空;");
 | 
	
		
			
				|  |  | +					
 | 
	
		
			
				|  |  | +				}else if(!deptvo.getPk_org().equals(orgVO.getPk_stockorg())){
 | 
	
		
			
				|  |  | +					
 | 
	
		
			
				|  |  | +					rowMsg.append("根据"+rowList.get(1)+"组织,部门编码[" + rowList.get(5).toString() + "]检索NC部门档案为空;");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				
 | 
	
		
			
				|  |  | +				
 | 
	
		
			
				|  |  | +					
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			BilltypeVO billtypeVO = billTypeMap.get(rowList.get(2).toString());
 | 
	
		
			
				|  |  | +			if (billtypeVO == null) {
 | 
	
		
			
				|  |  | +				rowMsg.append("申请类型编码[" + rowList.get(2).toString() + "]检索NC申请类型档案为空;");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			PsndocVO psndocVO = psndocVOMap.get(rowList.get(4).toString());
 | 
	
		
			
				|  |  | +			if (psndocVO == null) {
 | 
	
		
			
				|  |  | +				rowMsg.append("项目经理编码[" + rowList.get(4).toString() + "]检索NC项目经理档案为空;");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			DeptVO deptvo=deptVOMap.get(rowList.get(5).toString());
 | 
	
		
			
				|  |  | +			if (deptvo == null) {
 | 
	
		
			
				|  |  | +				rowMsg.append("部门编码[" + rowList.get(5).toString() + "]检索NC部门档案为空;");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			DefdocVO  dfdocVO= dfdocVOMap.get(rowList.get(7).toString());
 | 
	
		
			
				|  |  | +			if (dfdocVO == null) {
 | 
	
		
			
				|  |  | +				rowMsg.append("自定领料人编码[" + rowList.get(7).toString() + "]检索NC自定领料人档案为空;");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			MaterialVO material=materialMap.get(rowList.get(8).toString());
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			if (material == null) {
 | 
	
		
			
				|  |  | +				rowMsg.append("物料编码[" + rowList.get(8).toString() + "]检索NC物料档案为空;");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			if (rowMsg.length() > 0) {
 | 
	
		
			
				|  |  | +				restBuf.append("第[" + i + "]行").append(rowMsg.toString());
 | 
	
		
			
				|  |  | +				continue;
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if (restBuf.length() > 0) {
 | 
	
		
			
				|  |  | +			return restBuf.toString();
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		return null;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	/**
 | 
	
		
			
				|  |  | +	 * isNull:
 | 
	
		
			
				|  |  | +	 * 
 | 
	
		
			
				|  |  | +	 * @author ningz
 | 
	
		
			
				|  |  | +	 * @date 2020年12月7日 下午2:50:47
 | 
	
		
			
				|  |  | +	 * @param objList
 | 
	
		
			
				|  |  | +	 * @param restBuf
 | 
	
		
			
				|  |  | +	 *            void
 | 
	
		
			
				|  |  | +	 */
 | 
	
		
			
				|  |  | +	private void initilt_isNull(List<List<Object>> objList, StringBuffer restBuf) {
 | 
	
		
			
				|  |  | +		for (int i = 1; i < objList.size(); i++) {
 | 
	
		
			
				|  |  | +			StringBuffer rowMsg = new StringBuffer();
 | 
	
		
			
				|  |  | +			List<Object> rowList = objList.get(i);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			if (!isNotNull(rowList.get(1))) {
 | 
	
		
			
				|  |  | +				rowMsg.append("库存组织不能为空,");
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				orgCodes.add(rowList.get(1).toString());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			if (!isNotNull(rowList.get(3))) {
 | 
	
		
			
				|  |  | +				rowMsg.append("申请日期不能为空,");
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				if (!isDate(rowList.get(3).toString())) {
 | 
	
		
			
				|  |  | +					rowMsg.append("申请日期不是YYYY-MM-DD格式,");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			if (!isNotNull(rowList.get(2))) {
 | 
	
		
			
				|  |  | +				rowMsg.append("申请类型名称不能为空,");
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				billtypes.add(rowList.get(2).toString());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			// 项目经理名称
 | 
	
		
			
				|  |  | +			if (isNotNull(rowList.get(4))) {
 | 
	
		
			
				|  |  | +				psonNames.add(rowList.get(4).toString());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			// 申请名称
 | 
	
		
			
				|  |  | +			if (isNotNull(rowList.get(5))) {
 | 
	
		
			
				|  |  | +				deptNames.add(rowList.get(5).toString());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			// 工程项目
 | 
	
		
			
				|  |  | +			if (isNotNull(rowList.get(6))) {
 | 
	
		
			
				|  |  | +				projectNames.add(rowList.get(6).toString());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +			// 自定领料人
 | 
	
		
			
				|  |  | +			if (isNotNull(rowList.get(7))) {
 | 
	
		
			
				|  |  | +				dfdocNames.add(rowList.get(7).toString());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +						
 | 
	
		
			
				|  |  | +						
 | 
	
		
			
				|  |  | +			if (!isNotNull(rowList.get(8))) {
 | 
	
		
			
				|  |  | +				rowMsg.append("物料编码不能为空,");
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				materCodes.add(rowList.get(8).toString());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			if (!isNotNull(rowList.get(9))) {
 | 
	
		
			
				|  |  | +				rowMsg.append("主数量不能为空,");
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				if (!isNum(rowList.get(9).toString())) {
 | 
	
		
			
				|  |  | +					rowMsg.append("主数量不是数值型,");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			if (rowMsg.length() > 0) {
 | 
	
		
			
				|  |  | +				restBuf.append("第[" + (i + 1) + "]行").append(rowMsg.toString());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public AbstractAppModel getModel() {
 | 
	
		
			
				|  |  | +		return model;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public void setModel(AbstractAppModel model) {
 | 
	
		
			
				|  |  | +		this.model = model;
 | 
	
		
			
				|  |  | +		model.addAppEventListener(this);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	protected boolean isActionEnable() {
 | 
	
		
			
				|  |  | +	//	UIState uiState = model.getUiState();
 | 
	
		
			
				|  |  | +		return true;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private File openFile() {
 | 
	
		
			
				|  |  | +		UIFileChooser fileDlg = new UIFileChooser();
 | 
	
		
			
				|  |  | +		FileSystemView fsv = FileSystemView.getFileSystemView();
 | 
	
		
			
				|  |  | +		fileDlg.setCurrentDirectory(fsv.getHomeDirectory());
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		fileDlg.setFileFilter(new javax.swing.filechooser.FileFilter() {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			public boolean accept(File f) {
 | 
	
		
			
				|  |  | +				if (f.isDirectory()
 | 
	
		
			
				|  |  | +						|| f.getName().toLowerCase().endsWith("xlsx")) {
 | 
	
		
			
				|  |  | +					return true;
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					return false;
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			public String getDescription() {
 | 
	
		
			
				|  |  | +				return "Excel文件(xlsx)";
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}); // 过滤excel文件
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if (fileDlg.showOpenDialog(getBillUI()) != UIFileChooser.APPROVE_OPTION) {
 | 
	
		
			
				|  |  | +			return null;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		File fileName = fileDlg.getSelectedFile();
 | 
	
		
			
				|  |  | +		if (fileName == null || fileName.getName().equals("")) {
 | 
	
		
			
				|  |  | +			JOptionPane.showMessageDialog(getBillUI(), "选择要导入的excel文件");
 | 
	
		
			
				|  |  | +			return null;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +		return fileName;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private Component getBillUI() {
 | 
	
		
			
				|  |  | +		// TODO 自动生成的方法存根
 | 
	
		
			
				|  |  | +		return null;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public  boolean isNotNull(Object str){
 | 
	
		
			
				|  |  | +		if (str == null || "".equals(str)) {
 | 
	
		
			
				|  |  | +			return false;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		return true;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	public boolean isNum(String str) {
 | 
	
		
			
				|  |  | +		if ("" == str || str == null) {
 | 
	
		
			
				|  |  | +			return false;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		return str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	public  boolean isDate(String datestr) {
 | 
	
		
			
				|  |  | +		if (datestr == null || "".equals(datestr)) {
 | 
	
		
			
				|  |  | +			return false;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		String split = "/";
 | 
	
		
			
				|  |  | +		SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
 | 
	
		
			
				|  |  | +		if (datestr.contains("-")) {
 | 
	
		
			
				|  |  | +			split = "-";
 | 
	
		
			
				|  |  | +			formatter = new SimpleDateFormat("yyyy-MM-dd");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		try {
 | 
	
		
			
				|  |  | +			Date date = formatter.parse(datestr);
 | 
	
		
			
				|  |  | +			if (datestr.length() != 10) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				String[] arr = datestr.split(split);
 | 
	
		
			
				|  |  | +				if (arr[1].length() != 2) {
 | 
	
		
			
				|  |  | +					arr[1] = "0" + arr[1];
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				if (arr[2].length() != 2) {
 | 
	
		
			
				|  |  | +					arr[2] = "0" + arr[2];
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				datestr = arr[0] + split + arr[1] + split + arr[2];
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			return datestr.equals(formatter.format(date));
 | 
	
		
			
				|  |  | +		} catch (Exception e) {
 | 
	
		
			
				|  |  | +			e.printStackTrace();
 | 
	
		
			
				|  |  | +			return false;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	public  String getprojectWhereInSql(String columnName, String wherevalue,String orgparam) {
 | 
	
		
			
				|  |  | +		StringBuffer sql = new StringBuffer();
 | 
	
		
			
				|  |  | +		sql.append(columnName).append(" in ( ");
 | 
	
		
			
				|  |  | +		sql.append("'"+wherevalue+"'");
 | 
	
		
			
				|  |  | +		sql.append(" ) ");
 | 
	
		
			
				|  |  | +		sql.append(" and pk_org='"+ orgparam +"' ");
 | 
	
		
			
				|  |  | +		return sql.toString();
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	public  String getWhereInSql(String columnName, ArrayList<String> wherevalue) {
 | 
	
		
			
				|  |  | +		if (wherevalue == null || wherevalue.size() == 0) {
 | 
	
		
			
				|  |  | +			return "";
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		StringBuffer sql = new StringBuffer();
 | 
	
		
			
				|  |  | +		sql.append(columnName).append(" in ( ");
 | 
	
		
			
				|  |  | +		for (int i = 0; i < wherevalue.size(); i++) {
 | 
	
		
			
				|  |  | +			sql.append("'").append(wherevalue.get(i) + "'").append(",");
 | 
	
		
			
				|  |  | +			if ((i + 1) % 40 == 0 && (i + 1) < wherevalue.size()) {
 | 
	
		
			
				|  |  | +				sql.deleteCharAt(sql.length() - 1);
 | 
	
		
			
				|  |  | +				sql.append(" ) or ").append(columnName).append(" in ( ");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		sql.deleteCharAt(sql.length() - 1);
 | 
	
		
			
				|  |  | +		sql.append(" ) ");
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		return sql.toString();
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	/**
 | 
	
		
			
				|  |  | +	 * getImpPurchaseVO:根据特定条件进行拆单汇总
 | 
	
		
			
				|  |  | +	 * 
 | 
	
		
			
				|  |  | +	 * @author 
 | 
	
		
			
				|  |  | +	 * @date 
 | 
	
		
			
				|  |  | +	 * @param objList
 | 
	
		
			
				|  |  | +	 * @return Object
 | 
	
		
			
				|  |  | +	 */
 | 
	
		
			
				|  |  | +	private Object getImpPurchaseVO(List<List<Object>> objList) {
 | 
	
		
			
				|  |  | +		ArrayList<SapplyBillVO> aggvos = new ArrayList<SapplyBillVO>();
 | 
	
		
			
				|  |  | +		StringBuffer restBuf = new StringBuffer();
 | 
	
		
			
				|  |  | +		ArrayList<String> headKeys = new ArrayList<String>();
 | 
	
		
			
				|  |  | +		ArrayList<SapplyBillHeadVO> imphList = new ArrayList<SapplyBillHeadVO>();
 | 
	
		
			
				|  |  | +		for (int i = 1; i < objList.size(); i++) {
 | 
	
		
			
				|  |  | +			List<Object> rowList = objList.get(i);
 | 
	
		
			
				|  |  | +			// 根据 库存组织+申请日期+项目经理+申请部门+工程项目+自定领料人 汇总表头数据
 | 
	
		
			
				|  |  | +			String headKey = rowList.get(1).toString() + rowList.get(2).toString() + rowList.get(3).toString() 
 | 
	
		
			
				|  |  | +					+ rowList.get(4).toString() + rowList.get(5).toString()+ rowList.get(6).toString()+ rowList.get(7).toString();
 | 
	
		
			
				|  |  | +			if (!headKeys.contains(headKey)) {
 | 
	
		
			
				|  |  | +				headKeys.add(headKey);
 | 
	
		
			
				|  |  | +				SapplyBillHeadVO imphVO = new SapplyBillHeadVO();
 | 
	
		
			
				|  |  | +				StockOrgVO orgVO = orgVOMap.get(rowList.get(1).toString());
 | 
	
		
			
				|  |  | +				imphVO.setPk_org(orgVO.getPk_stockorg());
 | 
	
		
			
				|  |  | +				imphVO.setPk_org_v(orgVO.getPk_vid());
 | 
	
		
			
				|  |  | +				imphVO.SetCissueorg(orgVO.getPk_stockorg()); //发料库存组织最新版本
 | 
	
		
			
				|  |  | +				imphVO.SetCissueorg_v(orgVO.getPk_vid()); //发料库存组织 
 | 
	
		
			
				|  |  | +				imphVO.setCorpoid(orgVO.getPk_stockorg()); 
 | 
	
		
			
				|  |  | +				imphVO.setCorpvid(orgVO.getPk_vid());
 | 
	
		
			
				|  |  | +				imphVO.setDbilldate(new UFDate(rowList.get(3).toString()));// 申请日期
 | 
	
		
			
				|  |  | +				DeptVO deptvo=deptVOMap.get(rowList.get(5).toString());
 | 
	
		
			
				|  |  | +				imphVO.setCdptid(deptvo.getPk_dept());//部门
 | 
	
		
			
				|  |  | +				imphVO.setCdptvid(deptvo.getPk_vid());//部门
 | 
	
		
			
				|  |  | +				BilltypeVO billtypeVO = billTypeMap.get(rowList.get(2).toString());
 | 
	
		
			
				|  |  | +				imphVO.setVtrantypecode(rowList.get(2).toString());//申请类型编码
 | 
	
		
			
				|  |  | +				imphVO.setCtrantypeid (billtypeVO.getPk_billtypeid());//申请类型 
 | 
	
		
			
				|  |  | +				PsndocVO psndocVO = psndocVOMap.get(rowList.get(4).toString());//项目经理
 | 
	
		
			
				|  |  | +				imphVO.setCbizid (psndocVO.getPk_psndoc());
 | 
	
		
			
				|  |  | +				ProjectHeadVO projectvo=projectHeadVOMap.get(orgVO.getPk_stockorg()+rowList.get(6).toString());//工程项目
 | 
	
		
			
				|  |  | +				imphVO.setVdef2(projectvo.getPk_project());
 | 
	
		
			
				|  |  | +				DefdocVO defdocvo= dfdocVOMap.get(rowList.get(7).toString());//自定领料人
 | 
	
		
			
				|  |  | +				imphVO.setVdef3(defdocvo.getPk_defdoc());
 | 
	
		
			
				|  |  | +				imphVO.setPk_group(pk_group);
 | 
	
		
			
				|  |  | +				imphVO.setBillmaker(userid);
 | 
	
		
			
				|  |  | +				imphVO.setCreator(userid);//创建人
 | 
	
		
			
				|  |  | +				imphVO.setCreationtime (new UFDateTime());//创建时间
 | 
	
		
			
				|  |  | +				imphVO.setFbillflag (2); //单据状态
 | 
	
		
			
				|  |  | +				imphVO.setIprintcount(0);//打印次数
 | 
	
		
			
				|  |  | +				
 | 
	
		
			
				|  |  | +				imphList.add(imphVO);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if (imphList != null && imphList.size() != 0) {
 | 
	
		
			
				|  |  | +			for (int i = 0; i < imphList.size(); i++) {
 | 
	
		
			
				|  |  | +				SapplyBillVO aggvo=new  SapplyBillVO();
 | 
	
		
			
				|  |  | +				SapplyBillHeadVO impHVO = imphList.get(i);
 | 
	
		
			
				|  |  | +				// 根据表头 库存组织+申请日期+项目经理+申请部门+工程项目+自定领料人  组装表体数据
 | 
	
		
			
				|  |  | +				String headKey = impHVO.getPk_org() + impHVO.getDbilldate().toString().substring(0, 10) + impHVO.getCbizid() +impHVO.getCdptid()+impHVO.getVdef2() + impHVO.getVdef3();
 | 
	
		
			
				|  |  | +				ArrayList<SapplyBillBodyVO> itemList = new ArrayList<SapplyBillBodyVO>();
 | 
	
		
			
				|  |  | +				for (int j = 1; j < objList.size(); j++) {
 | 
	
		
			
				|  |  | +					StringBuffer rowMsg = new StringBuffer();
 | 
	
		
			
				|  |  | +					List<Object> rowList = objList.get(j);
 | 
	
		
			
				|  |  | +					// 根据表头 库存组织+申请日期+项目经理+申请部门+工程项目+自定领料人  组装表体数据
 | 
	
		
			
				|  |  | +					StockOrgVO orgVO = orgVOMap.get(rowList.get(1).toString());
 | 
	
		
			
				|  |  | +					PsndocVO psndocVO = psndocVOMap.get(rowList.get(4).toString());//项目经理
 | 
	
		
			
				|  |  | +					DeptVO deptvo=deptVOMap.get(rowList.get(5).toString());
 | 
	
		
			
				|  |  | +					ProjectHeadVO projectvo=projectHeadVOMap.get(orgVO.getPk_stockorg()+rowList.get(6).toString());//工程项目
 | 
	
		
			
				|  |  | +					DefdocVO defdocvo= dfdocVOMap.get(rowList.get(7).toString());//自定领料人
 | 
	
		
			
				|  |  | +					String itemKey = orgVO.getPk_stockorg() + rowList.get(3).toString() + psndocVO.getPk_psndoc() + deptvo.getPk_dept() +projectvo.getPk_project()+defdocvo.getPk_defdoc();
 | 
	
		
			
				|  |  | +					if (headKey.equals(itemKey)) {
 | 
	
		
			
				|  |  | +						SapplyBillBodyVO impBVO = new SapplyBillBodyVO();
 | 
	
		
			
				|  |  | +						impBVO.setCrowno(10*(j+1)+"");
 | 
	
		
			
				|  |  | +						MaterialVO materialVO = materialMap.get(rowList.get(8).toString());
 | 
	
		
			
				|  |  | +						if (materialVO == null) {
 | 
	
		
			
				|  |  | +							rowMsg.append("物料编码[" + rowList.get(8).toString() + "]检索NC物料档案信息为空;");
 | 
	
		
			
				|  |  | +						} else {
 | 
	
		
			
				|  |  | +							/*impBVO.setCmaterialoid(materialVO.getPk_source());//物料 
 | 
	
		
			
				|  |  | +							impBVO.setCmaterialvid(materialVO.getPk_material());//物料编码 
 | 
	
		
			
				|  |  | +							impBVO.setCunitid(materialVO.getPk_measdoc());// 主单位
 | 
	
		
			
				|  |  | +							impBVO.setCastunitid(materialVO.getDef2());// 辅单位
 | 
	
		
			
				|  |  | +							impBVO.setVchangerate(materialVO.getDef1());// 换算率
 | 
	
		
			
				|  |  | +							UFDouble num = new UFDouble(rowList.get(9).toString());//主数量
 | 
	
		
			
				|  |  | +							String[] strArray = impBVO.getVchangerate().split("/");
 | 
	
		
			
				|  |  | +							UFDouble hsl = new UFDouble(strArray[0]).div(new UFDouble(strArray[1]));//换算率
 | 
	
		
			
				|  |  | +							UFDouble nastnum = num.div(hsl);//辅数量
 | 
	
		
			
				|  |  | +//							impBVO.setNnum(num.setScale(0, UFDouble.ROUND_HALF_UP));// 主数量
 | 
	
		
			
				|  |  | +//							impBVO.setNassistnum (nastnum.setScale(0, UFDouble.ROUND_HALF_UP));// 辅数量
 | 
	
		
			
				|  |  | +							impBVO.setNnum(num);// 主数量
 | 
	
		
			
				|  |  | +							impBVO.setNassistnum (nastnum);// 辅数量
 | 
	
		
			
				|  |  | +							impBVO.setCprojectid( projectvo.getPk_project());//项目 
 | 
	
		
			
				|  |  | +							impBVO.setCorpoid(orgVO.getPk_stockorg()); 
 | 
	
		
			
				|  |  | +							impBVO.setCorpvid(orgVO.getPk_vid());
 | 
	
		
			
				|  |  | +							impBVO.setIsclosed(UFBoolean.FALSE);
 | 
	
		
			
				|  |  | +							impBVO.setPk_group(pk_group);
 | 
	
		
			
				|  |  | +							impBVO.setPk_org(orgVO.getPk_stockorg());
 | 
	
		
			
				|  |  | +							impBVO.setPk_org_v(orgVO.getPk_vid());*/
 | 
	
		
			
				|  |  | +							
 | 
	
		
			
				|  |  | +							impBVO.setCmaterialoid(materialVO.getPk_source());//物料 
 | 
	
		
			
				|  |  | +							impBVO.setCmaterialvid(materialVO.getPk_material());//物料编码 
 | 
	
		
			
				|  |  | +							impBVO.setCunitid(materialVO.getPk_measdoc());// 主单位
 | 
	
		
			
				|  |  | +							
 | 
	
		
			
				|  |  | +							if(null==materialVO.getDef2() || "".equals(materialVO.getDef2())  
 | 
	
		
			
				|  |  | +									 ||  null==materialVO.getDef1() || "".equals(materialVO.getDef1())){
 | 
	
		
			
				|  |  | +								impBVO.setCastunitid(materialVO.getPk_measdoc());// 辅单位
 | 
	
		
			
				|  |  | +								impBVO.setVchangerate("1/1");// 换算率
 | 
	
		
			
				|  |  | +								UFDouble num = new UFDouble(rowList.get(9).toString());//主数量				
 | 
	
		
			
				|  |  | +								impBVO.setNnum(num);// 主数量
 | 
	
		
			
				|  |  | +								impBVO.setNassistnum (num);// 辅数量
 | 
	
		
			
				|  |  | +							}else{
 | 
	
		
			
				|  |  | +								impBVO.setCastunitid(materialVO.getDef2());// 辅单位
 | 
	
		
			
				|  |  | +								impBVO.setVchangerate(materialVO.getDef1());// 换算率
 | 
	
		
			
				|  |  | +								UFDouble num = new UFDouble(rowList.get(9).toString());//主数量
 | 
	
		
			
				|  |  | +								String[] strArray = impBVO.getVchangerate().split("/");
 | 
	
		
			
				|  |  | +								UFDouble hsl = new UFDouble(strArray[0]).div(new UFDouble(strArray[1]));//换算率
 | 
	
		
			
				|  |  | +								UFDouble nastnum = num.div(hsl);//辅数量
 | 
	
		
			
				|  |  | +								impBVO.setNnum(num);// 主数量
 | 
	
		
			
				|  |  | +								impBVO.setNassistnum (nastnum);// 辅数量
 | 
	
		
			
				|  |  | +							}
 | 
	
		
			
				|  |  | +							
 | 
	
		
			
				|  |  | +							
 | 
	
		
			
				|  |  | +							impBVO.setCprojectid( projectvo.getPk_project());//项目 
 | 
	
		
			
				|  |  | +							impBVO.setCorpoid(orgVO.getPk_stockorg()); 
 | 
	
		
			
				|  |  | +							impBVO.setCorpvid(orgVO.getPk_vid());
 | 
	
		
			
				|  |  | +							impBVO.setIsclosed(UFBoolean.FALSE);
 | 
	
		
			
				|  |  | +							impBVO.setPk_group(pk_group);
 | 
	
		
			
				|  |  | +							impBVO.setPk_org(orgVO.getPk_stockorg());
 | 
	
		
			
				|  |  | +							impBVO.setPk_org_v(orgVO.getPk_vid());
 | 
	
		
			
				|  |  | +							
 | 
	
		
			
				|  |  | +							
 | 
	
		
			
				|  |  | +							
 | 
	
		
			
				|  |  | +							
 | 
	
		
			
				|  |  | +						}
 | 
	
		
			
				|  |  | +						if (rowMsg.length() > 0) {
 | 
	
		
			
				|  |  | +							restBuf.append("根据第[" + (j + 1) + "]行").append(rowMsg.toString());
 | 
	
		
			
				|  |  | +							continue;
 | 
	
		
			
				|  |  | +						}
 | 
	
		
			
				|  |  | +						itemList.add(impBVO);
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +					
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				
 | 
	
		
			
				|  |  | +				aggvo.setParentVO(impHVO);
 | 
	
		
			
				|  |  | +				aggvo.setChildrenVO(itemList.toArray(new SapplyBillBodyVO[itemList.size()]));
 | 
	
		
			
				|  |  | +				aggvos.add(aggvo);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		if (restBuf.length() > 0) {
 | 
	
		
			
				|  |  | +			return restBuf.toString();
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		return aggvos;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 |