|
@@ -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});
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
}
|