Browse Source

生产总订单导入

yaoyu 1 year ago
parent
commit
f839dc5a23

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

@@ -1,5 +1,7 @@
 package u8c.bs.mmpac.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;
@@ -10,11 +12,14 @@ public class DefaultValueRule implements IRule<ExAggOrderMainVO>{
 
 	@Override
 	public void process(ExAggOrderMainVO[] vos) throws BusinessException {
-		// TODO Auto-generated method stub
 		for(int i = 0; i < vos.length; i++) {
-			OrderMainVO headVO = (OrderMainVO) vos[0].getParentVO();
+			OrderMainVO headVO = (OrderMainVO) vos[i].getParentVO();
 			//单据状态编写中
 			headVO.setBillstatus(IBillStatus.FREE);
+			//单据号
+			headVO.setVbillno(new BillcodeGenerater().getBillCode("55A2",headVO.getPk_corp(), null, null));
+			//制单日期
+			headVO.setDbilldate(PubEnv.getLoginDate());
 		}
 	}
 

+ 8 - 4
mmpac/mmpac/src/private/u8c/bs/mmpac/bp/OrderInsertBP.java

@@ -5,6 +5,8 @@ import java.util.Iterator;
 import java.util.List;
 
 import nc.bs.dao.BaseDAO;
+import nc.bs.pub.billcodemanage.BillcodeGenerater;
+import nc.hr.utils.PubEnv;
 import nc.vo.pub.BusinessException;
 import nc.vo.pub.CircularlyAccessibleValueObject;
 import u8c.pubitf.rule.ICompareRule;
@@ -41,10 +43,10 @@ public class OrderInsertBP {
 			for (int j = 0; j < bodyvos.length; j++) {
 				OrderInVO  orderInVO = (OrderInVO) bodyvos[j];
 				Object bdef1 = bodyvos[j].getAttributeValue("bdef1");
-				if("入库".equals(bdef1)) {
+				if("成品明细".equals(bdef1)) {
 					orderInVO.setPk_order(pk_order);
 					dao.insertVO(orderInVO);
-				}else if("领料".equals(bdef1)) {
+				}else if("材料明细".equals(bdef1)) {
 					OrderIssueVO orderIssueVO = new OrderIssueVO();
 					orderIssueVO.setPk_order(pk_order);
 					orderIssueVO.setPrjtypecode(orderInVO.getPrjtypecode());
@@ -108,11 +110,13 @@ public class OrderInsertBP {
 
 	}
 	
-	
 	//前规则
 	protected void addBeforeRule(List<Object> rules) throws BusinessException {
 		// 默认值填充
-		rules.add(new DefaultValueRule());	
+		rules.add(new DefaultValueRule());
+		//数据处理
+		rules.add(new SpecialDataRule());
+		
 	}
 
 	

+ 69 - 0
mmpac/mmpac/src/private/u8c/bs/mmpac/bp/SpecialDataRule.java

@@ -0,0 +1,69 @@
+package u8c.bs.mmpac.bp;
+
+import java.util.Map;
+
+import nc.bs.framework.common.NCLocator;
+import nc.itf.uap.IUAPQueryBS;
+import nc.jdbc.framework.processor.ColumnProcessor;
+import nc.jdbc.framework.processor.MapProcessor;
+import nc.vo.pub.BusinessException;
+import nc.vo.pub.CircularlyAccessibleValueObject;
+import u8c.pubitf.rule.IRule;
+import u8c.vo.ExAggOrderMainVO;
+import u8c.vo.OrderInVO;
+import u8c.vo.OrderMainVO;
+
+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());
+			CircularlyAccessibleValueObject[] bodyvos = vos[i].getChildrenVO();
+			for (int j = 0; j < bodyvos.length; j++) {
+				OrderInVO  orderInVO = (OrderInVO) bodyvos[j];
+				//项目编码
+				orderInVO.setPrjcode(map.get("jobcode"));
+				//项目名称
+				orderInVO.setPrjname(map.get("jobname"));
+				//项目分类编码
+				orderInVO.setPrjtypecode(map.get("jobtypecode"));
+				//项目分类名称
+				orderInVO.setPrjtypename(map.get("jobtypename"));
+				//批次
+				orderInVO.setVbatchcode(map.get("jobcode"));
+				//存货名称
+				orderInVO.setCmaterialname(getInvbasdoc(orderInVO.getCmaterialcode()));
+				
+			}
+		}
+	}
+	
+	
+	//查询项目
+    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 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) {
+        	throw new BusinessException("以下档案在U8cloud系统中根据公司或者账簿信息找不到,请检查!详细信息:1、档案类型:存货档案,档案编码:"+code);
+        }
+		return invname;
+    }
+
+}