| 
					
				 | 
			
			
				@@ -0,0 +1,168 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package nc.bs.scmpub.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.io.PrintWriter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.io.StringWriter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import javax.servlet.ServletException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import javax.servlet.http.HttpServletRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import javax.servlet.http.HttpServletResponse; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.bs.framework.adaptor.IHttpServletAdaptor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.bs.framework.common.InvocationInfoProxy; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.bs.framework.common.NCLocator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.bs.framework.server.ISecurityTokenCallback; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.bs.servlet.test.service.BaseServlet; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.impl.scmf.ic.mbatchcode.BatchcodeMaintainImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.itf.scmf.ic.mbatchcode.IBatchcodeMaintainService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.itf.uap.IUAPQueryBS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.jdbc.framework.processor.ColumnProcessor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.pub.test.util.DataSourceUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.vo.bd.meta.BatchOperateVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.vo.ecpubapp.pattern.exception.ExceptionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.vo.pub.BusinessException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.vo.pub.lang.UFDate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.vo.scmf.ic.mbatchcode.BatchcodeVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import net.sf.json.JSONArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import net.sf.json.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//批次号档案接口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class BatchCodeAddImpl extends BaseServlet implements IHttpServletAdaptor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	IUAPQueryBS iuap= (IUAPQueryBS) NCLocator.getInstance().lookup(IUAPQueryBS.class.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public void doAction(HttpServletRequest req, HttpServletResponse resp) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			throws ServletException, IOException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// TODO 自动生成的方法存根 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			DataSourceUtil.setDataSource(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			InvocationInfoProxy.getInstance().setGroupId(this.qryGroup()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			NCLocator.getInstance().lookup(ISecurityTokenCallback.class).token("NCSystem".getBytes(),"pfxx".getBytes()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			String createStr = buildJson(req, resp, this.getClass().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			JSONObject json = JSONObject.fromObject(createStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			JSONArray results = json.getJSONArray("results"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			PrintWriter out = resp.getWriter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			StringBuffer returnstr = new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			for(int i=0;i<results.size();i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				JSONObject obj = (JSONObject) results.get(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				String checkresult = checkJson(obj);//非空判断 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if(!(checkresult.equals("")||checkresult.equals(null))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					returnstr.append("第"+i+"条记录"+checkresult+";"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				String vbatchcode = obj.getString("vbatchcode"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				BatchOperateVO operatevo = new BatchOperateVO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				BatchcodeVO[] vos = new BatchcodeVO[1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				BatchcodeVO batchcodevo = new BatchcodeVO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				batchcodevo.setVbatchcode(vbatchcode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				batchcodevo.setCmaterialoid(SqlexecuteQuery("pk_material", "bd_material", "code", obj.getString("cmaterialoid"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				batchcodevo.setCmaterialvid(SqlexecuteQuery("pk_source", "bd_material", "code", obj.getString("cmaterialoid"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				batchcodevo.setDinbounddate(new UFDate(obj.getString("dinbounddate"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				batchcodevo.setDproducedate(new UFDate(obj.getString("dproducedate"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				batchcodevo.setDvalidate(new UFDate(obj.getString("dvalidate"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				batchcodevo.setPk_group(this.qryGroup()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				vos[0] = batchcodevo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				operatevo.setAddObjs(vos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				BatchcodeMaintainImpl impl = new BatchcodeMaintainImpl(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				impl.batchSave(operatevo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				returnstr.append("第"+i+"条记录成功,批次号为"+vbatchcode+";"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			resp.getWriter().write(formatRSJsonData("成功", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					returnstr.toString(),"").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} catch (BusinessException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// TODO 自动生成的 catch 块 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			resp.getWriter().write(formatRSJsonData("失败", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				     e.getMessage().toString(),"").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			StringWriter stringWriter = new StringWriter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			e.printStackTrace(new PrintWriter(stringWriter)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//获取详细信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			String msg=stringWriter.getBuffer().toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// TODO 自动生成的 catch 块 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			resp.getWriter().write(formatRSJsonData("失败", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				     e.getMessage().toString(),"").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			StringWriter stringWriter = new StringWriter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			e.printStackTrace(new PrintWriter(stringWriter)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//获取详细信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			String msg=stringWriter.getBuffer().toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 非空判断 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private String checkJson(JSONObject json) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		StringBuffer mags = new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Boolean empty = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		String vbatchcode = "vbatchcode";//批次号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		String cmaterialoid = "cmaterialoid";//物料编码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		String dinbounddate = "dinbounddate";//首次入库日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		String dproducedate = "dproducedate";//生产日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		String dvalidate = "dvalidate";//失效日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		String[] HeadKey = {vbatchcode,cmaterialoid,dinbounddate,dproducedate,dvalidate}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for (String as : HeadKey) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (json.getString(as).isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				empty = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				mags.append("'" + as + "'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (!empty) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return "以下字段不可为空:"+mags; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 数据库查询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param out 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param table 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param key 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private String SqlexecuteQuery(String out,String table,String key,String value) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		String sql = "select "+out+" from "+table+" where "+key+" = '"+value+"' and nvl(dr,0)=0 and enablestate = '2' and latest = 'Y'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Object object; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			object = iuap.executeQuery(sql, new ColumnProcessor()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (object==null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				throw new Exception("未查询到数据!请检查编码"+value+"是否正确!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return object.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} catch (BusinessException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// TODO Auto-generated catch block 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			ExceptionUtils.wrappBusinessException(e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return e.getMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 获取集团id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private String qryGroup() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		String qrysql = "select pk_group from org_group where nvl(dr,0)=0 and rownum = 1"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		String pk_group; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			pk_group = (String) iuap.executeQuery(qrysql, new ColumnProcessor()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return pk_group; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} catch (BusinessException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// TODO Auto-generated catch block 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |