yaoyu 1 gadu atpakaļ
vecāks
revīzija
b111b419f2

+ 68 - 26
mmpac/mmpac/src/private/u8c/impl/mmpac/mmpac/InvAddImpl.java

@@ -1,16 +1,12 @@
 package u8c.impl.mmpac.mmpac;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.transaction.UserTransaction;
 
-import org.apache.commons.lang.StringEscapeUtils;
-
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -20,13 +16,17 @@ import nc.bs.dao.DAOException;
 import nc.bs.framework.adaptor.IHttpServletAdaptor;
 import nc.bs.framework.common.InvocationInfoProxy;
 import nc.bs.framework.common.NCLocator;
+import nc.itf.uap.IUAPQueryBS;
 import nc.itf.uap.IVOPersistence;
 import nc.itf.uap.bd.def.IDefdoc;
 import nc.itf.uap.bd.inv.IInventoryAssign;
+import nc.jdbc.framework.processor.BeanProcessor;
 import nc.jdbc.framework.processor.ColumnProcessor;
 import nc.vo.bd.def.DefdocVO;
+import nc.vo.bd.invdoc.ConvertVO;
 import nc.vo.bd.invdoc.InvbasdocVO;
 import nc.vo.bd.invdoc.InvmandocVO;
+import nc.vo.jcom.lang.StringUtil;
 import nc.vo.pub.BusinessException;
 import nc.vo.pub.lang.UFBoolean;
 import nc.vo.pub.lang.UFDateTime;
@@ -41,10 +41,11 @@ import u8c.log.NcLog;
  * 
  */
 public class InvAddImpl extends BaseServlet implements IHttpServletAdaptor{
+	private  IUAPQueryBS iuap = NCLocator.getInstance().lookup(IUAPQueryBS.class);
 	BaseDAO dao = new BaseDAO();
 	IVOPersistence ivo = NCLocator.getInstance().lookup(IVOPersistence.class);
 	IInventoryAssign iassign = NCLocator.getInstance().lookup(IInventoryAssign.class);
-	UserTransaction trans;
+	//UserTransaction trans;
 	String color = "";//颜色
 	String colordeflist = "";//颜色对应自定义档案列表主键
 	String alloy = "";//合金
@@ -58,8 +59,8 @@ public class InvAddImpl extends BaseServlet implements IHttpServletAdaptor{
 	@Override
 	public void doAction(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 		try {
-			trans = NCLocator.getInstance().lookup(UserTransaction.class);
-			trans.begin();//开启事务
+			//trans = NCLocator.getInstance().lookup(UserTransaction.class);
+			//trans.begin();//开启事务
 			color = GetBaseDAOUtil.getdefdef("YS(颜色)").getPk_defdef();
 			colordeflist = GetBaseDAOUtil.getdefdef("YS(颜色)").getPk_defdoclist();
 			alloy = GetBaseDAOUtil.getdefdef("HI(合金)").getPk_defdef();
@@ -88,9 +89,7 @@ public class InvAddImpl extends BaseServlet implements IHttpServletAdaptor{
 				NcLog.info(returnobj.toString());
 				return;
 			}
-			
-			
-			
+
 			String checkresult = checkJson(json);
 			if(checkresult != null){
 				errMessage.add(formatRSJsonData("失败",
@@ -174,7 +173,6 @@ public class InvAddImpl extends BaseServlet implements IHttpServletAdaptor{
 					}
 				}
 				
-				
 				String pk_inv = "";
 				InvbasdocVO invbasVo = GetBaseDAOUtil.getInvVO(invCode);
 				if(invbasVo != null) {
@@ -207,12 +205,12 @@ public class InvAddImpl extends BaseServlet implements IHttpServletAdaptor{
 						invbasVo.setFree4(standard);
 					}
 					if(assistunit.toString().equals("Y")) {
-						invbasVo.setAssistunit(UFBoolean.TRUE);
+						invbasVo.setAssistunit(UFBoolean.TRUE);//	//辅计量管理为true
 					}
 					else {
 						invbasVo.setAssistunit(UFBoolean.FALSE);
 					}
-					ivo.updateVO(invbasVo);
+					ivo.updateVO(invbasVo);	
 				}
 				else {
 					invbasVo = new InvbasdocVO();
@@ -262,7 +260,7 @@ public class InvAddImpl extends BaseServlet implements IHttpServletAdaptor{
 						invbasVo.setFree4(standard);
 					}
 					if(assistunit.toString().equals("Y")) {
-						invbasVo.setAssistunit(UFBoolean.TRUE);
+						invbasVo.setAssistunit(UFBoolean.TRUE);//辅计量管理为true	
 					}
 					else {
 						invbasVo.setAssistunit(UFBoolean.FALSE);
@@ -273,19 +271,46 @@ public class InvAddImpl extends BaseServlet implements IHttpServletAdaptor{
 					if(pk_invman.equals("")) {
 						pk_invman = saveInvman(invbasVo,pk_inv,wholemanaflag);
 					}
-					
 //					List<String> listpk = new ArrayList<String>();
 //					listpk.add(pk_invman);
-//					
 //					//分配,这里的主键对应bd_calbody.pk_calbody
 //					iassign.assignInvmandocByPkList(new String[] {"1001V51000000000034G"}, listpk, null);
-				}
+					
 				
-				result.add(formatRSJsonData("成功",
-					     "",invCode));
-			
+				}
+				/******************************************************************************************************/
+				if(assistunit.toString().equals("Y")) {
+					String pk_convert = "";//换算定义主键
+					ConvertVO convertVO= getConvertVO(pk_inv);
+					if(null==convertVO) {
+						 convertVO=new ConvertVO();
+					}else {
+						pk_convert=convertVO.getPrimaryKey();
+					}
+					convertVO.setPk_invbasdoc(pk_inv);
+					String pk_measdoc = GetBaseDAOUtil.getMeasidByName(bodyObject.getString("measname"));//计量单位名称
+					convertVO.setPk_measdoc(pk_measdoc);
+					if("Y".equals(bodyObject.getString("fixedflag"))) {//是否固定换算
+						convertVO.setFixedflag(UFBoolean.TRUE);
+					}else{
+						convertVO.setFixedflag(UFBoolean.FALSE);
+					};
+					String mainmeasrate = bodyObject.getString("mainmeasrate");//与主计量单位换算系数
+					convertVO.setMainmeasrate(new UFDouble(mainmeasrate));
+					Integer showorder =bodyObject.getInteger("showorder");//辅计量拆解显示顺序号
+					convertVO.setShoworder(showorder);
+					String pk_measdoc_sub = GetBaseDAOUtil.getMeasidByName(bodyObject.getString("measdoc_subname"));//拆解单位名称
+					convertVO.setPk_measdoc_sub(pk_measdoc_sub);
+					if(StringUtil.isEmpty(pk_convert)) {//如果换算定义主键为空说明没有 新增反之修改
+						ivo.insertVO(convertVO);
+					}else {
+						ivo.updateVO(convertVO);
+					}
+				}
+				/*******************************************************************************************************/
+				result.add(formatRSJsonData("成功","",invCode));
 			}
-			trans.commit();//提交事务
+			//trans.commit();//提交事务
 			returnobj.put("info", "成功");
 			returnobj.put("errMessage", "");
 			returnobj.put("result", result);
@@ -293,16 +318,19 @@ public class InvAddImpl extends BaseServlet implements IHttpServletAdaptor{
 			NcLog.info(returnobj.toString());
 		} catch (Exception e) {
 			try {
-				trans.rollback();
+				//trans.rollback();
 			} catch (Exception e1) {
-				// TODO Auto-generated catch block
 				e1.printStackTrace();
 			}//异常时事务回滚
 			JSONArray errMessage = new JSONArray();
 			JSONObject returnobj = new JSONObject();
-			String emsg = e.getMessage().replace("\"", "\'");
-			errMessage.add(formatRSJsonData("失败",
-					emsg,""));
+			String emsg = null;
+			if(e.getMessage() == null) {
+				emsg="空指针";
+			}else {
+				emsg = e.getMessage().replace("\"", "\'");
+			}
+			errMessage.add(formatRSJsonData("失败",emsg,""));
 			returnobj.put("info", "失败");
 			returnobj.put("errMessage", emsg);
 			returnobj.put("result", errMessage);	
@@ -383,6 +411,20 @@ public class InvAddImpl extends BaseServlet implements IHttpServletAdaptor{
         return pk_invmandoc;
 	}
 	
+	
+    
+    //根据pk_invbasdoc去查询 主计量换算VO
+    private  ConvertVO getConvertVO(String pk_invbasdoc) throws Exception {
+        String sql = "select * from bd_convert where  isnull(dr,0) = 0 and pk_invbasdoc = '"+pk_invbasdoc+"'";
+        Object obj = iuap.executeQuery(sql, new BeanProcessor(ConvertVO.class));
+        if (obj == null) {
+            return null;
+        }
+        else {
+        	return (ConvertVO)obj;
+        }
+    }
+	
 	/**
 	 * 存货管理档案
 	 * @param invbasVo

+ 80 - 98
mmpac/mmpac/src/private/u8c/impl/mmpac/mmpac/OrderAddImpl.java

@@ -1,60 +1,45 @@
 package u8c.impl.mmpac.mmpac;
 
 import java.io.IOException;
-import java.io.PrintWriter;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.transaction.SystemException;
 import javax.transaction.UserTransaction;
 
+import org.apache.commons.lang3.StringUtils;
+
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 
-import u8c.log.NcLog;
-import u8c.vo.ExAggOrderMainVO;
-import u8c.vo.OrderInVO;
-import u8c.vo.OrderIssueVO;
-import u8c.vo.OrderMainVO;
+
 import nc.bs.dao.BaseDAO;
 import nc.bs.dao.DAOException;
 import nc.bs.framework.adaptor.IHttpServletAdaptor;
-import nc.bs.framework.common.InvocationInfoProxy;
 import nc.bs.framework.common.NCLocator;
-import nc.hr.utils.PubEnv;
-import nc.itf.uap.IPKLockBS;
-import nc.itf.uap.IVOPersistence;
-import nc.itf.uap.LockableVO;
-import nc.jdbc.framework.JdbcSession;
-import nc.jdbc.framework.PersistenceManager;
+import nc.bs.pub.billcodemanage.BillcodeGenerater;
 import nc.jdbc.framework.processor.ColumnProcessor;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-
-import nc.vo.pub.BusinessException;
+import nc.vo.jcom.lang.StringUtil;
 import nc.vo.pub.lang.UFDate;
 import nc.vo.pub.lang.UFDouble;
 import nc.vo.trade.pub.IBillStatus;
 import u8c.bs.servlet.service.BaseServlet;
 import u8c.bs.servlet.service.GetBaseDAOUtil;
-
+import u8c.log.NcLog;
+import u8c.vo.OrderInVO;
+import u8c.vo.OrderIssueVO;
+import u8c.vo.OrderMainVO;
 
 public class OrderAddImpl extends BaseServlet implements IHttpServletAdaptor{
 	BaseDAO dao = new BaseDAO();
-	UserTransaction trans;
-
+	//UserTransaction trans;
 
 	@Override
 	public void doAction(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 		try {
-			
-			
-			
-			trans = NCLocator.getInstance().lookup(UserTransaction.class);
-			trans.begin();//开启事务
+			//trans = NCLocator.getInstance().lookup(UserTransaction.class);
+			//trans.begin();//开启事务
 			String createStr = buildJson(req, resp, this.getClass().getName());
 			JSONObject json = JSON.parseObject(createStr);
 			//接口返回结果
@@ -63,21 +48,7 @@ public class OrderAddImpl extends BaseServlet implements IHttpServletAdaptor{
 			JSONArray result = new JSONArray();
 			//报错返回json
 			JSONArray errMessage = new JSONArray();
-
-			String token =req.getParameter("token");
-			if(!(token!=null && !token.equals("")&&("07a81a68-c60c-4ee4-83dc-25aa51a51497").equals(token))){
-				errMessage.add(formatRSJsonData("失败",
-						"请确认通讯密码是否正确!",""));
-				returnobj.put("info", "失败");
-				returnobj.put("errMessage", "请确认通讯密码是否正确!");
-				returnobj.put("result", errMessage);
-				resp.getWriter().write(returnobj.toString());
-				NcLog.info(returnobj.toString());
-				return;
-			}
-			
 			String checkresult = checkJson(json);
-			
 			if(checkresult != null){
 				errMessage.add(formatRSJsonData("失败",
 						checkresult,""));
@@ -89,52 +60,42 @@ public class OrderAddImpl extends BaseServlet implements IHttpServletAdaptor{
 				return;
 			}
 			JSONArray bodyArray = json.getJSONArray("result");
-			
-		    String meg="";
-		    StringBuffer sbf=new StringBuffer();
 			for (Object Object : bodyArray) {
 
 				JSONObject bodyObject = JSONObject.parseObject(Object.toString());
 				String pk_corp = bodyObject.getString("pk_corp");
+				
 				String vbillno = bodyObject.getString("vbillno");
+				if(StringUtil.isEmpty(vbillno)) {//如果单据号为空则自动生成
+					vbillno=new BillcodeGenerater().getBillCode("55A2",pk_corp, null, null);
+				}
 				Boolean isrepeat = IsRepeat(vbillno);
 				if(isrepeat) {
-					result.add(formatRSJsonData("失败",
-							"单据号"+vbillno+"重复",""));
-//				errMessage.add(formatRSJsonData("失败",
-//						"单据号"+vbillno+"重复","").toString());
+					result.add(formatRSJsonData("失败","单据号"+vbillno+"重复",""));
+//				errMessage.add(formatRSJsonData("失败","单据号"+vbillno+"重复","").toString());
 //				returnobj.put("info", "失败");
 //				returnobj.put("errMessage", "单据号"+vbillno+"重复");
 //				returnobj.put("result", errMessage);
 //				resp.getWriter().write(returnobj.toString());
 //				NcLog.info(returnobj.toString());
-					meg=vbillno;	
 					continue;
 				}
 				String dbilldate = bodyObject.getString("dbilldate");
 				String pk_proposer = GetBaseDAOUtil.getUserid(bodyObject.getString("pk_proposer"));
 				if(pk_proposer.equals("")) {
-					result.add(formatRSJsonData("失败",
-							"制单人"+bodyObject.getString("pk_proposer")+"未查到,请检查",""));
-//				errMessage.add(formatRSJsonData("失败",
-//						"制单人"+bodyObject.getString("pk_proposer")+"未查到,请检查","").toString());
+					result.add(formatRSJsonData("失败","制单人"+bodyObject.getString("pk_proposer")+"未查到,请检查",""));
+//				errMessage.add(formatRSJsonData("失败","制单人"+bodyObject.getString("pk_proposer")+"未查到,请检查","").toString());
 //				returnobj.put("info", "失败");
 //				returnobj.put("errMessage", "制单人"+bodyObject.getString("pk_proposer")+"未查到,请检查");
 //				returnobj.put("result", errMessage);
 //				resp.getWriter().write(returnobj.toString());
 //				NcLog.info(returnobj.toString());
-					meg=vbillno;	
 					continue;
 				}
-				
-				if(!"".equals(meg)) {
-					throw new Exception("制单人或者单据号重复!");
-				}
-				
 				String workmanid = GetBaseDAOUtil.getPsndocid(bodyObject.getString("workmanid"));
 				String plandeptid = GetBaseDAOUtil.getDeptdocid(bodyObject.getString("plandeptid"));
 				String vnote = bodyObject.getString("vnote");
-		//		String busitype = GetBaseDAOUtil.getBusitypeid(bodyObject.getString("busitype"),pk_corp);
+				//String busitype = GetBaseDAOUtil.getBusitypeid(bodyObject.getString("busitype"),pk_corp);
 				OrderMainVO headvo = new OrderMainVO();
 				//表头赋值
 				headvo.setPk_corp(pk_corp);
@@ -144,8 +105,14 @@ public class OrderAddImpl extends BaseServlet implements IHttpServletAdaptor{
 				headvo.setWorkmanid(workmanid);
 				headvo.setPlandeptid(plandeptid);
 				headvo.setVnote(vnote);
-				headvo.setBusitype(bodyObject.getString("busitype"));
+				
 				headvo.setBillstatus(IBillStatus.FREE);
+				//工单号即项目编码
+				headvo.setDef1(bodyObject.getString("projectid"));
+				//项目
+				headvo.setProjectid(GetBaseDAOUtil.getprojectids(bodyObject.getString("projectid")));
+				//业务类型
+				headvo.setBusitype(bodyObject.getString("busitype"));
 				String pk_order = dao.insertVO(headvo);
 				//入库赋值
 				if(bodyObject.getJSONArray("product")!=null) {
@@ -160,20 +127,18 @@ public class OrderAddImpl extends BaseServlet implements IHttpServletAdaptor{
 						String vbatchcode = injsobj.getString("vbatchcode");
 						String cmaterialcode = injsobj.getString("cmaterialcode");
 						String invname = GetBaseDAOUtil.getinvname(cmaterialcode);
-						//物料不存在
-						if("".equals(invname)) {
-//							result.add(formatRSJsonData("失败",
-//									"物料"+cmaterialcode+"未查到,请检查",""));
-							
-							sbf.append("【"+cmaterialcode+"】");	
-							continue;	
-						}
-						
-
 						String invspec = GetBaseDAOUtil.getinvspec(cmaterialcode);
 						String invtype = GetBaseDAOUtil.getinvtype(cmaterialcode);
-						String width = GetBaseDAOUtil.getwidth(cmaterialcode);
-						String height = GetBaseDAOUtil.getheight(cmaterialcode);
+						String width = injsobj.getString("width");//宽度
+						String height = injsobj.getString("height");//高度
+//						String castunitid = GetBaseDAOUtil.getMeasidByName(injsobj.getString("castunitid"));//辅助计量单位
+						String castunitid = injsobj.getString("castunitid");//辅助计量单位
+						String nastnum = injsobj.getString("nastnum");//辅数量
+						String num = injsobj.getString("num");//主数量
+						String bdef6 = "";//换算率
+						if( (!StringUtils.isEmpty(num)) && (!StringUtils.isEmpty(nastnum)) ) {//判断数量与辅数量不为空计算换算率
+							bdef6 = new UFDouble(num).div(new UFDouble(nastnum)).toString();
+						}
 						String measname = GetBaseDAOUtil.getmeasname(cmaterialcode);
 						String bdef11 = injsobj.getString("bdef11");//楼号楼层
 						String bdef12 = injsobj.getString("bdef12");//樘数(数量) 
@@ -187,7 +152,6 @@ public class OrderAddImpl extends BaseServlet implements IHttpServletAdaptor{
 						String bdef2 = injsobj.getString("bdef2");//备注
 						String bdef20 = injsobj.getString("bdef20");//系列
 						String bdef3 = injsobj.getString("bdef3");//玻璃编号
-						
 						OrderInVO invo = new OrderInVO();
 						invo.setPrjcode(prjcode);;
 						invo.setPrjname(prjname);
@@ -200,9 +164,10 @@ public class OrderAddImpl extends BaseServlet implements IHttpServletAdaptor{
 						invo.setModel(invtype);
 						invo.setWidth(width);
 						invo.setHeight(height);
+						invo.setCastunitid(castunitid);
+						invo.setNastnum(new UFDouble(nastnum));
 						invo.setUnitid(measname);
 						invo.setPk_order(pk_order);
-						
 						invo.setBdef11(bdef11);
 						invo.setBdef12(bdef12);
 						invo.setBdef13(bdef13);
@@ -215,13 +180,17 @@ public class OrderAddImpl extends BaseServlet implements IHttpServletAdaptor{
 						invo.setBdef2(bdef2);
 						invo.setBdef20(bdef20);
 						invo.setBdef3(bdef3);
-						
-						
+						invo.setBdef6(bdef6);
+						invo.setColor(injsobj.getString("color"));
+						invo.setSizing(injsobj.getString("sizing"));
+						invo.setAlloy(injsobj.getString("alloy"));
+						if(GetBaseDAOUtil.getInvbasdocFree4(cmaterialcode) != null) {
+							invo.setStandard("国标");
+						}
 						invo.setDr(0);
 						if(injsobj.getString("num")!=null) {
 							invo.setNum(new UFDouble(injsobj.getString("num")));
 						}
-						
 						dao.insertVO(invo);
 					}
 				}
@@ -240,8 +209,16 @@ public class OrderAddImpl extends BaseServlet implements IHttpServletAdaptor{
 						String invname = GetBaseDAOUtil.getinvname(cmaterialcode);
 						String invspec = GetBaseDAOUtil.getinvspec(cmaterialcode);
 						String invtype = GetBaseDAOUtil.getinvtype(cmaterialcode);
-						String width = GetBaseDAOUtil.getwidth(cmaterialcode);
-						String height = GetBaseDAOUtil.getheight(cmaterialcode);
+						String width = issuejsobj.getString("width");//宽度
+						String height = issuejsobj.getString("height");//高度
+//						String castunitid = GetBaseDAOUtil.getMeasidByName(issuejsobj.getString("castunitid"));//辅助计量单位
+						String castunitid = issuejsobj.getString("castunitid");//辅助计量单位
+						String nastnum = issuejsobj.getString("nastnum");//辅数量
+						String num = issuejsobj.getString("num");//主数量
+						String bdef6="";//换算率
+						if( (!StringUtils.isEmpty(num)) && (!StringUtils.isEmpty(nastnum)) ) {//判断数量与辅数量不为空计算换算率
+							bdef6 = new UFDouble(num).div(new UFDouble(nastnum)).toString();
+						}
 						String measname = GetBaseDAOUtil.getmeasname(cmaterialcode);
 						String bdef11 = issuejsobj.getString("bdef11");//楼号楼层
 						String bdef12 = issuejsobj.getString("bdef12");//樘数(数量) 
@@ -255,8 +232,10 @@ public class OrderAddImpl extends BaseServlet implements IHttpServletAdaptor{
 						String bdef2 = issuejsobj.getString("bdef2");//备注
 						String bdef20 = issuejsobj.getString("bdef20");//系列
 						String bdef3 = issuejsobj.getString("bdef3");//玻璃编号
-						
-						
+//						String standard = GetBaseDAOUtil.getdefdocid(GetBaseDAOUtil.getpk_defdoclist("BZ(标准)"),"国标");//标准
+//						String color = GetBaseDAOUtil.getdefdocid(GetBaseDAOUtil.getpk_defdoclist("YS(颜色)"),issuejsobj.getString("color"));//颜色
+//						String sizing = GetBaseDAOUtil.getdefdocid(GetBaseDAOUtil.getpk_defdoclist("DC(定尺)"),issuejsobj.getString("sizing"));//定尺
+//						String alloy = GetBaseDAOUtil.getdefdocid(GetBaseDAOUtil.getpk_defdoclist("HJ(合金)"),issuejsobj.getString("alloy"));//合金
 						OrderIssueVO issuevo = new OrderIssueVO();
 						issuevo.setPrjcode(prjcode);;
 						issuevo.setPrjname(prjname);
@@ -269,6 +248,8 @@ public class OrderAddImpl extends BaseServlet implements IHttpServletAdaptor{
 						issuevo.setModel(invtype);
 						issuevo.setWidth(width);
 						issuevo.setHeight(height);
+						issuevo.setCastunitid(castunitid);
+						issuevo.setNastnum(new UFDouble(nastnum));
 						issuevo.setUnitid(measname);
 						issuevo.setPk_order(pk_order);
 						issuevo.setBdef11(bdef11);
@@ -283,6 +264,13 @@ public class OrderAddImpl extends BaseServlet implements IHttpServletAdaptor{
 						issuevo.setBdef2(bdef2);
 						issuevo.setBdef20(bdef20);
 						issuevo.setBdef3(bdef3);
+						issuevo.setBdef6(bdef6);
+						issuevo.setColor(issuejsobj.getString("color"));
+						issuevo.setSizing(issuejsobj.getString("sizing"));
+						issuevo.setAlloy(issuejsobj.getString("alloy"));
+						if(GetBaseDAOUtil.getInvbasdocFree4(cmaterialcode) != null) {
+							issuevo.setStandard("国标");
+						}
 						issuevo.setDr(0);
 						if(issuejsobj.getString("num")!=null) {
 							issuevo.setNum(new UFDouble(issuejsobj.getString("num")));
@@ -290,19 +278,10 @@ public class OrderAddImpl extends BaseServlet implements IHttpServletAdaptor{
 						dao.insertVO(issuevo);
 					}
 				}
-				
-			if("".equals(meg)) {
-				result.add(formatRSJsonData("成功",
-					     "",vbillno));	
-			}
-			
-			}
+				result.add(formatRSJsonData("成功","",vbillno));
 			
-			if (sbf.length() != 0) {
-				throw new Exception("存货编码不存在:"+sbf.toString());
 			}
-			
-			trans.commit();//提交事务
+			//trans.commit();//提交事务
 			returnobj.put("info", "成功");
 			returnobj.put("errMessage", "");
 			returnobj.put("result", result);
@@ -310,14 +289,18 @@ public class OrderAddImpl extends BaseServlet implements IHttpServletAdaptor{
 			NcLog.info(returnobj.toString());
 		} catch (Exception e) {
 			try {
-				trans.rollback();
+				//trans.rollback();
 			} catch (Exception e1) {
-				// TODO Auto-generated catch block
 				e1.printStackTrace();
 			}//异常时事务回滚
 			JSONArray errMessage = new JSONArray();
 			JSONObject returnobj = new JSONObject();
-			String emsg = e.getMessage().replace("\"", "\'");
+			String emsg = null;
+			if(e.getMessage() == null) {
+				emsg="空指针";
+			}else {
+				emsg = e.getMessage().replace("\"", "\'");
+			}
 			errMessage.add(formatRSJsonData("失败",
 					emsg,""));
 			returnobj.put("info", "失败");
@@ -348,7 +331,6 @@ public class OrderAddImpl extends BaseServlet implements IHttpServletAdaptor{
 		
 		JSONArray oprepObjectBs = json.getJSONArray("result");
 		
-		String vbillno = "vbillno";//单据号
 		String pk_corp = "pk_corp";//组织
 		String pk_proposer = "pk_proposer";//制单人
 		String dbilldate = "dbilldate";//单据日期
@@ -359,7 +341,7 @@ public class OrderAddImpl extends BaseServlet implements IHttpServletAdaptor{
  
 		for(int i = 0; i < oprepObjectBs.size(); i++) {
 			JSONObject oprepJsonObjectB = oprepObjectBs.getJSONObject(i);
-			String[] HeadKey = {vbillno,pk_corp,pk_proposer,dbilldate};
+			String[] HeadKey = {pk_corp,pk_proposer,dbilldate};
 			int num = i+1;
 			
 			mags.append("第"+num+"块表头:{");

+ 17 - 0
mmpac/mmpac/src/public/u8c/bs/servlet/service/GetBaseDAOUtil.java

@@ -82,6 +82,17 @@ public class GetBaseDAOUtil {
         return pk_jobbasfil;
     }
     
+    
+    //项目管理档案id
+    public static String getprojectids(String prjcode) throws Exception {
+        String sql = "select pk_jobmngfil from bd_jobmngfil where pk_jobbasfil =(select pk_jobbasfil from bd_jobbasfil where jobcode ='"+prjcode+"' and dr = 0) and dr = 0";
+        String pk_jobbasfil = (String) iuap.executeQuery(sql, new ColumnProcessor());
+        if (pk_jobbasfil == null) {
+        	throw new Exception("项目"+prjcode+"未查到,请检查"); 
+        }
+        return pk_jobbasfil;
+    }
+    
     //项目分类编码
     public static String getprjtypecode(String prjcode) throws Exception {
         String sql = "select jobtypecode from bd_jobtype where pk_jobtype = (select pk_jobtype from bd_jobbasfil where isnull(dr,0) = 0 and jobcode = '"+prjcode+"')";
@@ -131,6 +142,12 @@ public class GetBaseDAOUtil {
         }
         return invtype;
     }
+    //查询存货是否启用标准自定义项
+    public static String getInvbasdocFree4(String cmaterialcode)throws Exception {
+    	String sql = "select free4 from bd_invbasdoc where invcode ='"+cmaterialcode+"' and sealflag ='N'";
+		return (String) iuap.executeQuery(sql, new ColumnProcessor());
+   
+    }
     
     //宽度
     public static String getwidth(String cmaterialcode) throws Exception {