|
@@ -0,0 +1,65 @@
|
|
|
+package nc.bs.ic.impl;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+import nc.bs.framework.common.NCLocator;
|
|
|
+import nc.itf.ic.m4d.IMaterialOutMaintain;
|
|
|
+import nc.itf.uap.IUAPQueryBS;
|
|
|
+import nc.itf.uap.pf.IPFBusiAction;
|
|
|
+import nc.jdbc.framework.SQLParameter;
|
|
|
+import nc.jdbc.framework.processor.BeanListProcessor;
|
|
|
+import nc.vo.ic.m4d.entity.MaterialOutBodyVO;
|
|
|
+import nc.vo.ic.m4d.entity.MaterialOutHeadVO;
|
|
|
+import nc.vo.ic.m4d.entity.MaterialOutVO;
|
|
|
+import nc.vo.pub.workflownote.WorkflownoteVO;
|
|
|
+import net.sf.json.JSONObject;
|
|
|
+
|
|
|
+
|
|
|
+public class DeleteIcMaterialOutImpl implements IDeleteIcMaterialOut{
|
|
|
+
|
|
|
+ private IUAPQueryBS iuap=(IUAPQueryBS) NCLocator.getInstance().lookup(IUAPQueryBS.class.getName());
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void DeleteIcMaterialOut_RequiresNew(JSONObject json) throws Exception {
|
|
|
+ String vbillcode = "";
|
|
|
+ vbillcode = json.getString("vbillcode");
|
|
|
+
|
|
|
+ MaterialOutVO mo = new MaterialOutVO();
|
|
|
+ MaterialOutHeadVO s1 = new MaterialOutHeadVO();
|
|
|
+
|
|
|
+ //获取主表数据
|
|
|
+ String mhSql = "select*From ic_material_h where vbillcode=? and nvl(dr,0)=0";
|
|
|
+ SQLParameter mhParam = new SQLParameter(); // 构造参数对象
|
|
|
+ mhParam.addParam(vbillcode);
|
|
|
+ List<MaterialOutHeadVO> mhlist=(List<MaterialOutHeadVO>) iuap.executeQuery(mhSql, mhParam, new BeanListProcessor(MaterialOutHeadVO.class));
|
|
|
+ // 此处定义主表
|
|
|
+ mo=new MaterialOutVO();
|
|
|
+ s1=new MaterialOutHeadVO();
|
|
|
+ if(mhlist.size()==0){
|
|
|
+ throw new Exception("单据号:" + vbillcode + "不存在!");
|
|
|
+ }else{
|
|
|
+ s1=mhlist.get(0);
|
|
|
+ //获取子表数据
|
|
|
+ String mbSql = "select*From ic_material_b where cgeneralhid=? and nvl(dr,0)=0";
|
|
|
+ SQLParameter mbParam = new SQLParameter(); // 构造参数对象
|
|
|
+ mbParam.addParam(s1.getCgeneralhid());
|
|
|
+ List<MaterialOutBodyVO> mbList=(List<MaterialOutBodyVO>) iuap.executeQuery(mbSql, mbParam, new BeanListProcessor(MaterialOutBodyVO.class));
|
|
|
+
|
|
|
+ MaterialOutBodyVO[] mbArray = new MaterialOutBodyVO[mbList.size()];
|
|
|
+ for (int u = 0; u < mbArray.length; u++) {
|
|
|
+ mbArray[u] = mbList.get(u);
|
|
|
+ }
|
|
|
+ mo.setParent(s1);
|
|
|
+ mo.setChildrenVO(mbArray);
|
|
|
+ }
|
|
|
+ //如果单据已签字,先取消签字
|
|
|
+ IMaterialOutMaintain iMaterialOutMaintain = (IMaterialOutMaintain) NCLocator.getInstance().lookup(IMaterialOutMaintain.class);
|
|
|
+ MaterialOutVO [] materialOutVOs = new MaterialOutVO [1];
|
|
|
+ materialOutVOs[0] = mo;
|
|
|
+ if(s1.getFbillflag()==3){
|
|
|
+ iMaterialOutMaintain.cancelSign(materialOutVOs);
|
|
|
+ }
|
|
|
+ iMaterialOutMaintain.delete(materialOutVOs);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|