yaoyu 1 năm trước cách đây
mục cha
commit
c4d4fdeee3

+ 7 - 0
mmpac/mmpac/src/private/u8c/bs/mmpac/bp/DefaultValueRule.java

@@ -8,6 +8,11 @@ import u8c.pubitf.rule.IRule;
 import u8c.vo.ExAggOrderMainVO;
 import u8c.vo.OrderMainVO;
 
+/**
+ * 默认值设置
+ * @author 
+ *
+ */
 public class DefaultValueRule implements IRule<ExAggOrderMainVO>{
 
 	@Override
@@ -20,6 +25,8 @@ public class DefaultValueRule implements IRule<ExAggOrderMainVO>{
 			headVO.setVbillno(new BillcodeGenerater().getBillCode("55A2",headVO.getPk_corp(), null, null));
 			//制单日期
 			headVO.setDbilldate(PubEnv.getLoginDate());
+			//制单人
+			headVO.setPk_proposer(PubEnv.getPk_user());
 		}
 	}
 

+ 2 - 0
mmpac/mmpac/src/private/u8c/bs/mmpac/bp/OrderInsertBP.java

@@ -116,6 +116,8 @@ public class OrderInsertBP {
 		rules.add(new DefaultValueRule());
 		//数据处理
 		rules.add(new SpecialDataRule());
+		//数据校验
+		rules.add(new ValidateRule());
 		
 	}
 

+ 70 - 15
mmpac/mmpac/src/private/u8c/bs/mmpac/bp/SpecialDataRule.java

@@ -4,8 +4,11 @@ import java.util.Map;
 
 import nc.bs.framework.common.NCLocator;
 import nc.itf.uap.IUAPQueryBS;
+import nc.itf.uap.bd.def.IDefdoc;
+import nc.itf.uap.bd.item.IJobmanagedoc;
 import nc.jdbc.framework.processor.ColumnProcessor;
 import nc.jdbc.framework.processor.MapProcessor;
+import nc.vo.bd.def.DefdocVO;
 import nc.vo.pub.BusinessException;
 import nc.vo.pub.CircularlyAccessibleValueObject;
 import u8c.pubitf.rule.IRule;
@@ -13,29 +16,42 @@ import u8c.vo.ExAggOrderMainVO;
 import u8c.vo.OrderInVO;
 import u8c.vo.OrderMainVO;
 
+/**
+ *	数据处理
+ * @author 
+ *
+ */
 public class SpecialDataRule implements IRule<ExAggOrderMainVO>{
 	private  IUAPQueryBS iuap = NCLocator.getInstance().lookup(IUAPQueryBS.class);
 	@Override
 	public void process(ExAggOrderMainVO[] vos) throws BusinessException {
 		for(int i = 0; i < vos.length; i++) {
 			OrderMainVO headvo = (OrderMainVO) vos[i].getParentVO();
-			Map<String,String> map = getJobbasfil(headvo.getProjectid());
+			Map<String,String> JobbasfilMap = getJobbasfil(headvo.getProjectid());
 			CircularlyAccessibleValueObject[] bodyvos = vos[i].getChildrenVO();
 			for (int j = 0; j < bodyvos.length; j++) {
 				OrderInVO  orderInVO = (OrderInVO) bodyvos[j];
 				//项目编码
-				orderInVO.setPrjcode(map.get("jobcode"));
+				orderInVO.setPrjcode(JobbasfilMap.get("jobcode"));
 				//项目名称
-				orderInVO.setPrjname(map.get("jobname"));
+				orderInVO.setPrjname(JobbasfilMap.get("jobname"));
 				//项目分类编码
-				orderInVO.setPrjtypecode(map.get("jobtypecode"));
+				orderInVO.setPrjtypecode(JobbasfilMap.get("jobtypecode"));
 				//项目分类名称
-				orderInVO.setPrjtypename(map.get("jobtypename"));
+				orderInVO.setPrjtypename(JobbasfilMap.get("jobtypename"));
 				//批次
-				orderInVO.setVbatchcode(map.get("jobcode"));
+				orderInVO.setVbatchcode(JobbasfilMap.get("jobcode"));
+				Map<String,String> invbasdocMap = getInvbasdoc(orderInVO.getCmaterialcode());
 				//存货名称
-				orderInVO.setCmaterialname(getInvbasdoc(orderInVO.getCmaterialcode()));
-				
+				orderInVO.setCmaterialname(invbasdocMap.get("invname"));
+				//规格
+				orderInVO.setSpec(invbasdocMap.get("invspec"));
+				//型号
+				orderInVO.setModel(invbasdocMap.get("invtype"));
+				//计量单位
+				orderInVO.setUnitid(invbasdocMap.get("measname"));
+				disposeDefdoc("YS(颜色)", orderInVO.getColor());
+				disposeDefdoc("DC(定尺)", orderInVO.getSizing());
 			}
 		}
 	}
@@ -55,15 +71,54 @@ public class SpecialDataRule implements IRule<ExAggOrderMainVO>{
 		return (Map<String, String>) iuap.executeQuery(sql.toString(), new MapProcessor());
     }
     
-    
     //查询物料
-    public String getInvbasdoc(String code)throws BusinessException {
-    	String sql = "select invname from bd_invbasdoc where invcode = '"+code+"' and dr = 0";
-    	String invname = (String) iuap.executeQuery(sql, new ColumnProcessor());
-    	if (invname == null) {
+    public Map<String,String> getInvbasdoc(String code)throws BusinessException {
+    	StringBuffer sql = new StringBuffer();
+    	sql.append("SELECT");
+    	sql.append(" bd_invbasdoc.invname as invname,");
+    	sql.append(" bd_invbasdoc.invspec as invspec,");
+    	sql.append(" bd_invbasdoc.invtype as invtype,");
+    	sql.append(" bd_measdoc.measname as measname");
+    	sql.append(" FROM");
+    	sql.append(" bd_invbasdoc bd_invbasdoc");
+    	sql.append(" left join bd_measdoc bd_measdoc  on bd_invbasdoc.pk_measdoc = bd_measdoc.pk_measdoc");
+    	sql.append(" WHERE");
+    	sql.append(" bd_invbasdoc.invcode = '"+code+"'");
+    	sql.append(" and bd_invbasdoc.dr = 0");
+    	Map<String,String> map =  (Map<String, String>) iuap.executeQuery(sql.toString(), new MapProcessor());
+    	if (map == null) {
         	throw new BusinessException("以下档案在U8cloud系统中根据公司或者账簿信息找不到,请检查!详细信息:1、档案类型:存货档案,档案编码:"+code);
         }
-		return invname;
+		return map;
+    }
+	//自定义档案数据处理
+    public  void disposeDefdoc(String doclistcode,String docname) throws BusinessException {
+    	if(docname == null) {
+    		return ;
+    	}
+    	
+    	//取到自定义档案列表主键
+    	String sql = "select pk_defdoclist from bd_defdoclist where doclistcode = '"+doclistcode+"'";
+    	String pk_defdoclist = (String) iuap.executeQuery(sql, new ColumnProcessor());
+    	if(pk_defdoclist == null) {
+    		throw new BusinessException("以下档案在U8cloud系统中根据公司或者账簿信息找不到,请检查!详细信息:1、档案类型:自定义档案列表,档案编码:"+doclistcode);
+    	}
+        String sql1 = "select pk_defdoc,pk_defdoclist from bd_defdoc where pk_defdoclist = '"+pk_defdoclist+"' and docname ='"+docname+"'";
+        String pk_defdoc = (String) iuap.executeQuery(sql1, new ColumnProcessor());
+        //无数据新增档案
+        if (pk_defdoc == null) {
+        	DefdocVO defdocVO = new DefdocVO();
+        	//公司
+        	defdocVO.setPk_corp("0001");
+        	//档案编码
+        	defdocVO.setDoccode(docname);
+        	//档案名称
+        	defdocVO.setDocname(docname);
+        	//档案系统属性
+        	defdocVO.setDocsystype(1);
+        	defdocVO.setStatus(2);
+        	IDefdoc iDefdoc = NCLocator.getInstance().lookup(IDefdoc.class);
+        	iDefdoc.saveVOs(pk_defdoclist, new DefdocVO[] {defdocVO});
+        }
     }
-
 }

+ 54 - 0
mmpac/mmpac/src/private/u8c/bs/mmpac/bp/ValidateRule.java

@@ -0,0 +1,54 @@
+package u8c.bs.mmpac.bp;
+
+import nc.bs.framework.common.NCLocator;
+import nc.itf.uap.IUAPQueryBS;
+import nc.jdbc.framework.processor.ColumnProcessor;
+import nc.vo.pub.BusinessException;
+import u8c.pubitf.rule.IRule;
+import u8c.vo.ExAggOrderMainVO;
+import u8c.vo.OrderInVO;
+
+/**
+ * 数据校验
+ * @author 
+ *
+ */
+public class ValidateRule implements IRule<ExAggOrderMainVO>{
+
+	private  IUAPQueryBS iuap = NCLocator.getInstance().lookup(IUAPQueryBS.class);
+	
+	@Override
+	public void process(ExAggOrderMainVO[] vos) throws BusinessException {
+		for(int i = 0; i < vos.length; i++) {
+			OrderInVO[] orderInVOs = (OrderInVO[]) vos[i].getChildrenVO();
+			for (int j = 0; j < orderInVOs.length; j++) {
+				getDefdoc("HJ(合金)",orderInVOs[j].getAlloy());
+				getDefdoc("BZ(标准)",orderInVOs[j].getStandard());
+				getMeasdoc(orderInVOs[j].getCastunitid());
+			}
+		}
+	}
+	//查询自定义档案
+    public  void getDefdoc(String doclistcode,String docname) throws BusinessException {
+    	if(docname == null) {
+    		return ;
+    	}
+        String sql = "select pk_defdoc from bd_defdoc where pk_defdoclist = (select pk_defdoclist from bd_defdoclist where doclistcode = '"+doclistcode+"') and docname ='"+docname+"'";
+        String pk_defdoc = (String) iuap.executeQuery(sql, new ColumnProcessor());
+        if (pk_defdoc == null) {
+        	throw new BusinessException("以下档案在U8cloud系统中根据公司或者账簿信息找不到,请检查!详细信息:1、档案类型 自定义档案,档案名称:"+docname+"");
+        }
+    }
+    
+    //查询计量档案
+    public  void getMeasdoc(String shortname) throws BusinessException {
+    	if(shortname == null) {
+    		return ;
+    	}
+        String sql = "select pk_measdoc from bd_measdoc where measname ='"+shortname+"'";
+        String pk_measdoc = (String) iuap.executeQuery(sql, new ColumnProcessor());
+        if (pk_measdoc == null) {
+        	throw new BusinessException("以下档案在U8cloud系统中根据公司或者账簿信息找不到,请检查!详细信息:1、档案类型 计量档案,档案名称:"+shortname+"");
+        }
+    }
+}

+ 2 - 2
xc/cg/src/client/u8c/ui/mytest/action/DemandCloseAction.java

@@ -38,9 +38,9 @@ public class DemandCloseAction extends AbstractAction{
 			ivo.updateVO(headvo);
 		}
 		
-		boolean boo = this.frameUI.getBillCardPanel().isShowing();
+		boolean boo = mainMgrPanel.getBillCardPanel().isShowing();
 		if(boo) {
-			this.frameUI.getBillCardPanel().setBillValueVO(s[0]);
+			mainMgrPanel.getBillCardPanel().setBillValueVO(s[selectedRow]);
 		}else {
 			getFrameUI().getBtnManager().getCmdByID(AbstractBtnReg.SYSBTN_REFRESH).execute();
 		}

+ 10 - 2
xc/cg/src/private/u8c/bs/mytest/bp/DefaultValueRule.java

@@ -1,6 +1,8 @@
 package u8c.bs.mytest.bp;
 
 
+import nc.bs.pub.billcodemanage.BillcodeGenerater;
+import nc.hr.utils.PubEnv;
 import nc.vo.pub.BusinessException;
 import nc.vo.trade.pub.IBillStatus;
 import u8c.pubitf.rule.IRule;
@@ -21,8 +23,14 @@ public class DefaultValueRule implements IRule<AggDemandVO> {
 			DemandVO demandVO = (DemandVO) vos[i].getParentVO();
 			//等擂袨怓晤迡笢
 			demandVO.setBillstatus(IBillStatus.FREE);
+			//等擂瘍
+			demandVO.setVbillcode(new BillcodeGenerater().getBillCode("A2A3",demandVO.getPk_corp(), null, null));
+			//等擂゜ヽ
+			demandVO.setDbilldate(PubEnv.getLoginDate());
+			//秶等゜ヽ
+			demandVO.setMakedate(PubEnv.getServerDate());
+			//秶等�
+			demandVO.setBillmaker(PubEnv.getPk_user());
 		}
 	}
-
-
 }

+ 3 - 1
xc/cg/src/private/u8c/bs/mytest/bp/DemanImportInsertBP.java

@@ -54,7 +54,9 @@ public class DemanImportInsertBP{
 	//前规则
 	protected void addBeforeRule(List<Object> rules) throws BusinessException {
 		// 默认值填充
-		rules.add(new DefaultValueRule());	
+		rules.add(new DefaultValueRule());
+		//数据处理
+		rules.add(new SpecialDataRule());
 		//数据校验
 		rules.add(new ValidateRule());	
 	}

+ 120 - 0
xc/cg/src/private/u8c/bs/mytest/bp/SpecialDataRule.java

@@ -0,0 +1,120 @@
+package u8c.bs.mytest.bp;
+
+import java.util.Map;
+
+import nc.bs.framework.common.NCLocator;
+import nc.itf.uap.IUAPQueryBS;
+import nc.itf.uap.bd.def.IDefdoc;
+import nc.jdbc.framework.processor.ColumnProcessor;
+import nc.jdbc.framework.processor.MapProcessor;
+import nc.vo.bd.def.DefdocVO;
+import nc.vo.pub.BusinessException;
+import nc.vo.pub.CircularlyAccessibleValueObject;
+import u8c.pubitf.rule.IRule;
+import u8c.vo.AggDemandVO;
+import u8c.vo.DemandBVO;
+import u8c.vo.DemandVO;
+
+public class SpecialDataRule implements IRule<AggDemandVO> {
+
+	private  IUAPQueryBS iuap = NCLocator.getInstance().lookup(IUAPQueryBS.class);
+	@Override
+	public void process(AggDemandVO[] vos) throws BusinessException {
+		for(int i = 0; i < vos.length; i++) {
+			DemandVO headvo = (DemandVO) vos[i].getParentVO();
+			Map<String,String> JobbasfilMap = getJobbasfil(headvo.getProjectid());
+			CircularlyAccessibleValueObject[] bodyvos = vos[i].getChildrenVO();
+			for (int j = 0; j < bodyvos.length; j++) {
+				DemandBVO  demandBVO = (DemandBVO) bodyvos[j];
+				//项目编码
+				demandBVO.setPrjcode(JobbasfilMap.get("jobcode"));
+				//项目名称
+				demandBVO.setPrjname(JobbasfilMap.get("jobname"));
+				//项目分类编码
+				demandBVO.setPrjtypecode(JobbasfilMap.get("jobtypecode"));
+				//项目分类名称
+				demandBVO.setPrjtypename(JobbasfilMap.get("jobtypename"));
+				//批次
+				demandBVO.setVbatchcode(JobbasfilMap.get("jobcode"));
+				Map<String,String> invbasdocMap = getInvbasdoc(demandBVO.getCmaterialcode());
+				//存货名称
+				demandBVO.setCmaterialname(invbasdocMap.get("invname"));
+				//规格
+				demandBVO.setSpec(invbasdocMap.get("invspec"));
+				//型号
+				demandBVO.setModel(invbasdocMap.get("invtype"));
+				//计量单位
+				demandBVO.setUnitid(invbasdocMap.get("measname"));
+				disposeDefdoc("YS(颜色)", demandBVO.getColor());
+				disposeDefdoc("DC(定尺)", demandBVO.getSizing());
+			}
+		}
+	}
+	
+	//查询项目
+    public Map<String,String> getJobbasfil(String pk_jobmngfil)throws BusinessException {
+    	StringBuffer sql = new StringBuffer();
+    	sql.append("SELECT");
+    	sql.append(" bd_jobbasfil.jobcode as jobcode,bd_jobbasfil.jobname as jobname,bd_jobtype.jobtypecode as jobtypecode,bd_jobtype.jobtypename as jobtypename");
+    	sql.append(" FROM");
+    	sql.append(" bd_jobbasfil bd_jobbasfil");
+    	sql.append(" left join bd_jobmngfil bd_jobmngfil on bd_jobbasfil.pk_jobbasfil = bd_jobmngfil.pk_jobbasfil");
+    	sql.append(" left join bd_jobtype bd_jobtype on bd_jobbasfil.pk_jobtype = bd_jobtype.pk_jobtype");
+    	sql.append(" WHERE");
+    	sql.append(" bd_jobmngfil.pk_jobmngfil = '"+pk_jobmngfil+"'"); 
+		return (Map<String, String>) iuap.executeQuery(sql.toString(), new MapProcessor());
+    }
+    
+    //查询物料
+    public Map<String,String> getInvbasdoc(String code)throws BusinessException {
+    	StringBuffer sql = new StringBuffer();
+    	sql.append("SELECT");
+    	sql.append(" bd_invbasdoc.invname as invname,");
+    	sql.append(" bd_invbasdoc.invspec as invspec,");
+    	sql.append(" bd_invbasdoc.invtype as invtype,");
+    	sql.append(" bd_measdoc.measname as measname");
+    	sql.append(" FROM");
+    	sql.append(" bd_invbasdoc bd_invbasdoc");
+    	sql.append(" left join bd_measdoc bd_measdoc  on bd_invbasdoc.pk_measdoc = bd_measdoc.pk_measdoc");
+    	sql.append(" WHERE");
+    	sql.append(" bd_invbasdoc.invcode = '"+code+"'");
+    	sql.append(" and bd_invbasdoc.dr = 0");
+    	Map<String,String> map =  (Map<String, String>) iuap.executeQuery(sql.toString(), new MapProcessor());
+    	if (map == null) {
+        	throw new BusinessException("以下档案在U8cloud系统中根据公司或者账簿信息找不到,请检查!详细信息:1、档案类型:存货档案,档案编码:"+code);
+        }
+		return map;
+    }
+    
+	//自定义档案数据处理
+    public  void disposeDefdoc(String doclistcode,String docname) throws BusinessException {
+    	if(docname == null) {
+    		return ;
+    	}
+    	
+    	//取到自定义档案列表主键
+    	String sql = "select pk_defdoclist from bd_defdoclist where doclistcode = '"+doclistcode+"'";
+    	String pk_defdoclist = (String) iuap.executeQuery(sql, new ColumnProcessor());
+    	if(pk_defdoclist == null) {
+    		throw new BusinessException("以下档案在U8cloud系统中根据公司或者账簿信息找不到,请检查!详细信息:1、档案类型:自定义档案列表,档案编码:"+doclistcode);
+    	}
+        String sql1 = "select pk_defdoc,pk_defdoclist from bd_defdoc where pk_defdoclist = '"+pk_defdoclist+"' and docname ='"+docname+"'";
+        String pk_defdoc = (String) iuap.executeQuery(sql1, new ColumnProcessor());
+        //无数据新增档案
+        if (pk_defdoc == null) {
+        	DefdocVO defdocVO = new DefdocVO();
+        	//公司
+        	defdocVO.setPk_corp("0001");
+        	//档案编码
+        	defdocVO.setDoccode(docname);
+        	//档案名称
+        	defdocVO.setDocname(docname);
+        	//档案系统属性
+        	defdocVO.setDocsystype(1);
+        	defdocVO.setStatus(2);
+        	IDefdoc iDefdoc = NCLocator.getInstance().lookup(IDefdoc.class);
+        	iDefdoc.saveVOs(pk_defdoclist, new DefdocVO[] {defdocVO});
+        }
+    }
+
+}

+ 22 - 34
xc/cg/src/private/u8c/bs/mytest/bp/ValidateRule.java

@@ -19,49 +19,37 @@ public class ValidateRule implements IRule<AggDemandVO> {
 	public void process(AggDemandVO[] vos) throws BusinessException {
 		for(int i = 0; i < vos.length; i++) {
 			DemandVO demandVO = (DemandVO) vos[i].getParentVO();
-			getVbillcode(demandVO.getVbillcode());
 			DemandBVO[] demandBVOs = (DemandBVO[]) vos[i].getChildrenVO();
 			for (int j = 0; j < demandBVOs.length; j++) {
-				getJobbasfil(demandBVOs[j].getPrjcode(), demandBVOs[j].getPrjname());
-				getJobtype(demandBVOs[j].getPrjtypecode(), demandBVOs[j].getPrjtypename());
-				getInvbasdoc(demandBVOs[j].getCmaterialcode(), demandBVOs[j].getCmaterialname());
+				getDefdoc("HJ(合金)",demandBVOs[j].getAlloy());
+				getDefdoc("BZ(标准)",demandBVOs[j].getStandard());
+				getMeasdoc(demandBVOs[j].getCastunitid());
 			}
 		}
-		
 	}
 	
-	// 查询单据号主键
-    public  void getVbillcode(String vbillcode) throws BusinessException {
-        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) {
-        	throw new BusinessException("您提供的单据编码不唯一,系统无法保存!");
-        }
-    }
-    
-    //查询项目
-    public void getJobbasfil(String code, String name)throws BusinessException {
-    	String sql = "select pk_jobbasfil from bd_jobbasfil where jobcode = '"+code+"' and jobname = '"+name+"' and dr = 0";
-    	String pk_jobbasfil = (String) iuap.executeQuery(sql, new ColumnProcessor());
-    	if (pk_jobbasfil == null) {
-        	throw new BusinessException("以下档案在U8cloud系统中根据公司或者账簿信息找不到,请检查!详细信息:1、档案类型:项目档案,档案编码:"+code+",档案名称:"+name+"");
-        }
-    }
-    //查询物料
-    public void getJobtype(String code, String name)throws BusinessException {
-    	String sql = "select pk_jobtype from bd_jobtype where jobtypecode = '"+code+"' and jobtypename = '"+name+"' and dr = 0";
-    	String pk_jobtype = (String) iuap.executeQuery(sql, new ColumnProcessor());
-    	if (pk_jobtype == null) {
-        	throw new BusinessException("以下档案在U8cloud系统中根据公司或者账簿信息找不到,请检查!详细信息:1、档案类型:项目分类档案,档案编码:"+code+",档案名称:"+name+"");
+	
+	//查询自定义档案
+    public  void getDefdoc(String doclistcode,String docname) throws BusinessException {
+    	if(docname == null) {
+    		return ;
+    	}
+        String sql = "select pk_defdoc from bd_defdoc where pk_defdoclist = (select pk_defdoclist from bd_defdoclist where doclistcode = '"+doclistcode+"') and docname ='"+docname+"'";
+        String pk_defdoc = (String) iuap.executeQuery(sql, new ColumnProcessor());
+        if (pk_defdoc == null) {
+        	throw new BusinessException("以下档案在U8cloud系统中根据公司或者账簿信息找不到,请检查!详细信息:1、档案类型 自定义档案,档案名称:"+docname+"");
         }
     }
     
-    //查询物料
-    public void getInvbasdoc(String code, String name)throws BusinessException {
-    	String sql = "select pk_invbasdoc from bd_invbasdoc where invcode = '"+code+"' and invname = '"+name+"' and dr = 0";
-    	String pk_invbasdoc = (String) iuap.executeQuery(sql, new ColumnProcessor());
-    	if (pk_invbasdoc == null) {
-        	throw new BusinessException("以下档案在U8cloud系统中根据公司或者账簿信息找不到,请检查!详细信息:1、档案类型:物料档案,档案编码:"+code+",档案名称:"+name+"");
+    //查询计量档案
+    public  void getMeasdoc(String shortname) throws BusinessException {
+    	if(shortname == null) {
+    		return ;
+    	}
+        String sql = "select pk_measdoc from bd_measdoc where measname ='"+shortname+"'";
+        String pk_measdoc = (String) iuap.executeQuery(sql, new ColumnProcessor());
+        if (pk_measdoc == null) {
+        	throw new BusinessException("以下档案在U8cloud系统中根据公司或者账簿信息找不到,请检查!详细信息:1、档案类型 计量档案,档案名称:"+shortname+"");
         }
     }