فهرست منبع

批次号档案接口

pancy 1 سال پیش
والد
کامیت
20d4761ddd
2فایلهای تغییر یافته به همراه177 افزوده شده و 1 حذف شده
  1. 6 1
      ic/META-INF/ffopenapi.upm
  2. 171 0
      ic/ic/src/private/nc/bs/ic/impl/BatchCodeAddImpl.java

+ 6 - 1
ic/META-INF/ffopenapi.upm

@@ -12,5 +12,10 @@
        <implementation>nc.bs.ic.impl.IntoBillStatusImpl</implementation>
  	   </component>
     </public>	
-    
+    <!--Åú´ÎºÅµµ°¸½Ó¿Ú-->
+     <public>
+ 	   <component name="batchcodeadd" accessProtected="false"  remote="true" singleton="true" tx="NONE" supportAlias="true">
+       <implementation>nc.bs.ic.impl.BatchCodeAddImpl</implementation>
+ 	   </component>
+    </public>
 </module>

+ 171 - 0
ic/ic/src/private/nc/bs/ic/impl/BatchCodeAddImpl.java

@@ -0,0 +1,171 @@
+package nc.bs.ic.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.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.log.NcLog;
+import nc.pub.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();
+			NcLog.info("接口返回值提示:"+msg);
+		} 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();
+			NcLog.info("接口返回值提示:"+msg);
+		}
+	}
+
+	/*
+	 * 非空判断
+	 */
+	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;
+	}
+}