|
@@ -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+"块表头:{");
|