123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319 |
- package u8c.impl;
- 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 com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.microsoft.sqlserver.jdbc.StringUtils;
- import nc.bs.dao.BaseDAO;
- import nc.bs.framework.adaptor.IHttpServletAdaptor;
- import nc.bs.framework.common.NCLocator;
- import nc.bs.pub.billcodemanage.BillcodeGenerater;
- import nc.itf.uap.IUAPQueryBS;
- import nc.jdbc.framework.processor.ColumnProcessor;
- import nc.vo.jcom.lang.StringUtil;
- import nc.vo.pub.BusinessException;
- import nc.vo.pub.CircularlyAccessibleValueObject;
- 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.itf.po.IDemandPurchaseRequisition;
- import u8c.log.NcLog;
- import u8c.vo.DemandBVO;
- import u8c.vo.DemandVO;
- import nc.bs.framework.common.NCLocator;
- public class DemandAddImpl extends BaseServlet implements IHttpServletAdaptor{
- private IUAPQueryBS iuap = NCLocator.getInstance().lookup(IUAPQueryBS.class);
- BaseDAO dao = new BaseDAO();
- UserTransaction trans;
- @Override
- public void doAction(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- try {
- String createStr = buildJson(req, resp, this.getClass().getName());
- JSONObject json = JSON.parseObject(createStr);
-
- JSONObject returnobj = new JSONObject();
-
- JSONArray result = new JSONArray();
-
- 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;
- }
- trans = NCLocator.getInstance().lookup(UserTransaction.class);
- trans.begin();
-
- String checkresult = checkJson(json);
- if(checkresult != null){
- errMessage.add(formatRSJsonData("失败",checkresult,""));
- returnobj.put("info", "失败");
- returnobj.put("errMessage", checkresult);
- returnobj.put("result", errMessage);
- resp.getWriter().write(returnobj.toString());
- NcLog.info(returnobj.toString());
- return;
- }
- JSONArray bodyArray = json.getJSONArray("result");
- for (Object Object : bodyArray) {
- JSONObject bodyObject = JSONObject.parseObject(Object.toString());
- String pk_corp = bodyObject.getString("pk_corp");
- String vbillcode = bodyObject.getString("vbillcode");
- String prjcodehead=bodyObject.getString("prjcode");
- if(StringUtil.isEmpty(vbillcode)) {
- vbillcode=new BillcodeGenerater().getBillCode("A2A3",pk_corp, null, null);
- }
- String pk_demandOld = getVbillcode(vbillcode);
- if(!StringUtils.isEmpty(pk_demandOld)) {
- errMessage.add(formatRSJsonData("失败","单据号"+ vbillcode +"已存在",""));
- returnobj.put("info", "失败");
- returnobj.put("errMessage", "单据号"+ vbillcode +"已存在");
- returnobj.put("result", errMessage);
- resp.getWriter().write(returnobj.toString());
- NcLog.info(returnobj.toString());
- return;
- }
- String dbilldate = bodyObject.getString("dbilldate");
- String billmaker = GetBaseDAOUtil.getUserid(bodyObject.getString("billmaker"));
- if(billmaker.equals("")) {
- errMessage.add(formatRSJsonData("失败","制单人"+bodyObject.getString("billmaker")+"未查到,请检查",""));
- returnobj.put("info", "失败");
- returnobj.put("errMessage", "制单人"+bodyObject.getString("billmaker")+"未查到,请检查");
- returnobj.put("result", errMessage);
- resp.getWriter().write(returnobj.toString());
- NcLog.info(returnobj.toString());
- return;
- }
- String workmanid = GetBaseDAOUtil.getPsndocid(bodyObject.getString("workmanid"));
- String plandeptid = GetBaseDAOUtil.getDeptdocid(bodyObject.getString("plandeptid"));
- String xmjbpk=GetBaseDAOUtil.getprojectid(prjcodehead);
- String xmglpk=SqlexecuteQuery("pk_jobmngfil","bd_jobmngfil","pk_jobbasfil",xmjbpk);
-
- String vnote = bodyObject.getString("vnote");
- DemandVO headvo = new DemandVO();
-
- headvo.setPk_corp(pk_corp);
- headvo.setVbillcode(vbillcode);
- headvo.setDbilldate(new UFDate(dbilldate));
- headvo.setMakedate(new UFDate(dbilldate));
- headvo.setBillmaker(billmaker);
- headvo.setWorkmanid(workmanid);
- headvo.setPlandeptid(plandeptid);
- headvo.setVnote(vnote);
- headvo.setVdef30(bodyObject.getString("vdef30"));
- headvo.setBillstatus(IBillStatus.FREE);
- headvo.setProjectid(xmglpk);
- String pk_demand = dao.insertVO(headvo);
-
- if(bodyObject.getJSONArray("po")!=null) {
- JSONArray inArray = bodyObject.getJSONArray("po");
- for(int i = 0;i < inArray.size();i++) {
- Object inobj = inArray.get(i);
- JSONObject injsobj = JSONObject.parseObject(inobj.toString());
- String prjcode = injsobj.getString("prjcode");
- String prjname = GetBaseDAOUtil.getprojectname(prjcode);
- String prjtypecode = GetBaseDAOUtil.getprjtypecode(prjcode);
- String prjtypename = GetBaseDAOUtil.getprjtypename(prjcode);
- String vbatchcode = injsobj.getString("vbatchcode");
- String cmaterialcode = SqlexecuteQuery("invcode","bd_invbasdoc","invcode",injsobj.getString("cmaterialcode"));
- String cmaterialname = GetBaseDAOUtil.getinvname(cmaterialcode);
- String spec = GetBaseDAOUtil.getinvspec(cmaterialcode);
- String model = GetBaseDAOUtil.getinvtype(cmaterialcode);
- String width = injsobj.getString("width");
- String height = injsobj.getString("height");
- String castunitid = injsobj.getString("castunitid");
- String num = injsobj.getString("num");
- String nastnum = injsobj.getString("nastnum");
- String vdef13="";
- if( (!StringUtils.isEmpty(num)) && (!StringUtils.isEmpty(nastnum)) ) {
- vdef13=new UFDouble(num).div(new UFDouble(nastnum)).toString();
- }
- String unitid = GetBaseDAOUtil.getmeasname(cmaterialcode);
- String vdef1 = injsobj.getString("vdef1");
- String vdef2 = injsobj.getString("vdef2");
- String vdef3 = injsobj.getString("vdef3");
- String vdef4 = injsobj.getString("vdef4");
- String vdef5 = injsobj.getString("vdef5");
- String vdef6 = injsobj.getString("vdef6");
- String vdef7 = injsobj.getString("vdef7");
- String vdef8 = injsobj.getString("vdef8");
- String vdef9 = injsobj.getString("vdef9");
- String vdef10 = injsobj.getString("vdef10");
- String vdef11 = injsobj.getString("vdef11");
- String vdef12 = injsobj.getString("vdef12");
-
- DemandBVO bodyvo = new DemandBVO();
- bodyvo.setPrjcode(prjcode);;
- bodyvo.setPrjname(prjname);
- bodyvo.setPrjtypecode(prjtypecode);
- bodyvo.setPrjtypename(prjtypename);
- bodyvo.setVbatchcode(vbatchcode);
- bodyvo.setCmaterialcode(cmaterialcode);
- bodyvo.setCmaterialname(cmaterialname);
- bodyvo.setSpec(spec);
- bodyvo.setModel(model);
- bodyvo.setWidth(width);
- bodyvo.setHeight(height);
- bodyvo.setCastunitid(castunitid);
- bodyvo.setNastnum(nastnum);
- bodyvo.setUnitid(unitid);
- bodyvo.setNum(new UFDouble(num));
- bodyvo.setPk_demand(pk_demand);
- bodyvo.setVdef1(vdef1);
- bodyvo.setVdef2(vdef2);
- bodyvo.setVdef3(vdef3);
- bodyvo.setVdef4(vdef4);
- bodyvo.setVdef5(vdef5);
- bodyvo.setVdef6(vdef6);
- bodyvo.setVdef7(vdef7);
- bodyvo.setVdef8(vdef8);
- bodyvo.setVdef9(vdef9);
- bodyvo.setVdef10(vdef10);
- bodyvo.setVdef11(vdef11);
- bodyvo.setVdef12(vdef12);
- bodyvo.setVdef13(vdef13);
- bodyvo.setColor(injsobj.getString("color"));
- bodyvo.setSizing(injsobj.getString("sizing"));
- bodyvo.setAlloy(injsobj.getString("alloy"));
-
- dao.insertVO(bodyvo);
-
- List<DemandBVO> demandBVOs = new ArrayList();
- demandBVOs.add(bodyvo);
- DemandPurchaseRequisitionImpl dao = new DemandPurchaseRequisitionImpl();
- dao.addPraybillVO(headvo,demandBVOs);
- }
- }
- result.add(formatRSJsonData("成功","",vbillcode));
- }
- returnobj.put("info", "成功");
- returnobj.put("errMessage", "");
- returnobj.put("result", result);
- trans.commit();
- resp.getWriter().write(returnobj.toString());
- NcLog.info(returnobj.toString());
- } catch (Exception e) {
- try {
- trans.rollback();
- } catch (Exception e1) {
- e1.printStackTrace();
- }
- JSONArray errMessage = new JSONArray();
- JSONObject returnobj = new JSONObject();
- errMessage.add(formatRSJsonData("失败",e.getMessage(),""));
- returnobj.put("info", "失败");
- returnobj.put("errMessage", e.getMessage());
- returnobj.put("result", errMessage);
- resp.getWriter().write(returnobj.toString());
- NcLog.info(returnobj.toString());
- return;
- }
- }
-
-
- public String getVbillcode(String vbillcode) throws Exception {
- String sql = "select pk_demand from po_demand where vbillcode ='"+vbillcode+"' and isnull(dr,0) = 0";
- String pk_demand = (String) iuap.executeQuery(sql, new ColumnProcessor());
- if (pk_demand == null) {
- return "";
- }
- return pk_demand;
- }
-
-
-
- private String SqlexecuteQuery(String out,String table,String key,String value) throws Exception {
- String sql = "select "+out+" from "+table+" where "+key+" = '"+value+"' and isnull(dr,0) = 0";
- Object object;
- try {
- object = new BaseDAO().executeQuery(sql, new ColumnProcessor());
- if (object==null) {
- throw new Exception("未查询到数据!请检查编码"+value+"是否正确!");
- }
- return object.toString();
- } catch (BusinessException e) {
- e.printStackTrace();
- return e.getMessage();
- }
- }
-
-
-
- private String checkJson(JSONObject json) throws Exception {
-
- StringBuffer mags = new StringBuffer();
- Boolean empty = true;
- String body = "result";
-
- if (json.getJSONArray(body)==null) {
- empty = false;
- mags.append("请传入接口数据! ");
- return mags.toString();
- }
-
- JSONArray oprepObjectBs = json.getJSONArray("result");
-
- String pk_corp = "pk_corp";
- String billmaker = "billmaker";
- String dbilldate = "dbilldate";
-
- String po = "po";
-
- for(int i = 0; i < oprepObjectBs.size(); i++) {
- JSONObject oprepJsonObjectB = oprepObjectBs.getJSONObject(i);
- String[] HeadKey = {pk_corp,billmaker,dbilldate};
- int num = i+1;
-
- mags.append("第"+num+"块表头:{");
- for (String as : HeadKey) {
- if (oprepJsonObjectB.getString(as).isEmpty()) {
- empty = false;
- mags.append("'" + as + "' ");
- }
- }
- mags.append("}");
-
- if(oprepJsonObjectB.getJSONArray(po)==null) {
- mags.append("第"+num+"块表体不能为空");
- }
- }
-
- if (!empty) {
- return "以下字段不可为空:"+mags;
- }
- else {
- return null;
- }
- }
- }
|