|
@@ -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;
|
|
|
+ }
|
|
|
+}
|