|
@@ -1,5 +1,6 @@
|
|
package u8c.bs.mytest.bp;
|
|
package u8c.bs.mytest.bp;
|
|
|
|
|
|
|
|
+import java.util.HashMap;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
import nc.bs.framework.common.NCLocator;
|
|
import nc.bs.framework.common.NCLocator;
|
|
@@ -10,7 +11,9 @@ import nc.jdbc.framework.processor.MapProcessor;
|
|
import nc.vo.bd.def.DefdocVO;
|
|
import nc.vo.bd.def.DefdocVO;
|
|
import nc.vo.pub.BusinessException;
|
|
import nc.vo.pub.BusinessException;
|
|
import nc.vo.pub.CircularlyAccessibleValueObject;
|
|
import nc.vo.pub.CircularlyAccessibleValueObject;
|
|
|
|
+import nc.vo.pub.lang.UFDate;
|
|
import nc.vo.pub.lang.UFDouble;
|
|
import nc.vo.pub.lang.UFDouble;
|
|
|
|
+import u8c.bs.upifsp.pub.UpifsTool;
|
|
import u8c.pubitf.rule.IRule;
|
|
import u8c.pubitf.rule.IRule;
|
|
import u8c.vo.AggDemandVO;
|
|
import u8c.vo.AggDemandVO;
|
|
import u8c.vo.DemandBVO;
|
|
import u8c.vo.DemandBVO;
|
|
@@ -44,12 +47,32 @@ public class SpecialDataRule implements IRule<AggDemandVO> {
|
|
demandBVO.setSpec(invbasdocMap.get("invspec"));
|
|
demandBVO.setSpec(invbasdocMap.get("invspec"));
|
|
//型号
|
|
//型号
|
|
demandBVO.setModel(invbasdocMap.get("invtype"));
|
|
demandBVO.setModel(invbasdocMap.get("invtype"));
|
|
|
|
+// //米重
|
|
|
|
+// demandBVO.setWeight(invbasdocMap.get("def1"));
|
|
|
|
+// //装饰面周长
|
|
|
|
+// demandBVO.setRound(invbasdocMap.get("def2"));
|
|
//米重
|
|
//米重
|
|
- demandBVO.setWeight(invbasdocMap.get("def1"));
|
|
|
|
|
|
+ demandBVO.setWeight(invbasdocMap.get("def2"));
|
|
//装饰面周长
|
|
//装饰面周长
|
|
- demandBVO.setRound(invbasdocMap.get("def2"));
|
|
|
|
|
|
+ demandBVO.setRound(invbasdocMap.get("def3"));
|
|
|
|
+ //窗号
|
|
|
|
+ demandBVO.setVdef21(invbasdocMap.get("def1"));
|
|
|
|
+ //专用区
|
|
|
|
+ // demandBVO.setVdef22(invbasdocMap.get("def4"));
|
|
|
|
+ demandBVO.setVdef22(getzyqpk("专用区",invbasdocMap.get("def4")));
|
|
|
|
+ //待定
|
|
|
|
+ demandBVO.setVdef23(invbasdocMap.get("def5"));
|
|
|
|
+
|
|
//计量单位
|
|
//计量单位
|
|
demandBVO.setUnitid(invbasdocMap.get("measname"));
|
|
demandBVO.setUnitid(invbasdocMap.get("measname"));
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if(demandBVO.getNum() == null && !demandBVO.getCmaterialcode().startsWith("MA") ) {
|
|
|
|
+ throw new BusinessException("除了型材(MA开头),主数量必须填写");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
if(invbasdocMap.get("measnames") != null) {
|
|
if(invbasdocMap.get("measnames") != null) {
|
|
//辅单位
|
|
//辅单位
|
|
demandBVO.setCastunitid(invbasdocMap.get("measnames"));
|
|
demandBVO.setCastunitid(invbasdocMap.get("measnames"));
|
|
@@ -60,9 +83,13 @@ public class SpecialDataRule implements IRule<AggDemandVO> {
|
|
if(demandBVO.getNastnum() == null) {
|
|
if(demandBVO.getNastnum() == null) {
|
|
throw new BusinessException("存货:"+demandBVO.getCmaterialcode()+"有辅计量单位,辅数量不能为空");
|
|
throw new BusinessException("存货:"+demandBVO.getCmaterialcode()+"有辅计量单位,辅数量不能为空");
|
|
}
|
|
}
|
|
|
|
+ //MA开头的物料不传主数量所有换算率不需要计算
|
|
|
|
+ if(number != null && !demandBVO.getCmaterialcode().startsWith("MA")) {
|
|
//换算率
|
|
//换算率
|
|
UFDouble result = new UFDouble(number.div(nastnum).toString(),2);
|
|
UFDouble result = new UFDouble(number.div(nastnum).toString(),2);
|
|
demandBVO.setVdef13(result.toString());
|
|
demandBVO.setVdef13(result.toString());
|
|
|
|
+ }
|
|
|
|
+
|
|
}else {
|
|
}else {
|
|
if(demandBVO.getNastnum() != null) {
|
|
if(demandBVO.getNastnum() != null) {
|
|
//存货不管启没启动辅单位,辅数量都会填,没有启动的就不读取辅数量
|
|
//存货不管启没启动辅单位,辅数量都会填,没有启动的就不读取辅数量
|
|
@@ -100,6 +127,8 @@ public class SpecialDataRule implements IRule<AggDemandVO> {
|
|
sql.append(" bd_invbasdoc.def1 as def1,");
|
|
sql.append(" bd_invbasdoc.def1 as def1,");
|
|
sql.append(" bd_invbasdoc.def2 as def2,");
|
|
sql.append(" bd_invbasdoc.def2 as def2,");
|
|
sql.append(" bd_invbasdoc.def3 as def3,");
|
|
sql.append(" bd_invbasdoc.def3 as def3,");
|
|
|
|
+ sql.append(" bd_invbasdoc.def4 as def4,");
|
|
|
|
+ sql.append(" bd_invbasdoc.def5 as def5,");
|
|
sql.append(" bd_measdoc.measname as measname,");
|
|
sql.append(" bd_measdoc.measname as measname,");
|
|
sql.append(" bd_measdocs.measname as measnames");
|
|
sql.append(" bd_measdocs.measname as measnames");
|
|
sql.append(" from");
|
|
sql.append(" from");
|
|
@@ -136,8 +165,21 @@ public class SpecialDataRule implements IRule<AggDemandVO> {
|
|
DefdocVO defdocVO = new DefdocVO();
|
|
DefdocVO defdocVO = new DefdocVO();
|
|
//公司
|
|
//公司
|
|
defdocVO.setPk_corp("0001");
|
|
defdocVO.setPk_corp("0001");
|
|
|
|
+
|
|
|
|
+ //档案编码
|
|
|
|
+ UFDate date = new UFDate();
|
|
|
|
+ //YSDC20231219000000
|
|
|
|
+ HashMap<String, String> billcode_map = UpifsTool
|
|
|
|
+ .GreatVbillcode("doccode", "YSDC", date,
|
|
|
|
+ "bd_defdoc",pk_defdoclist);
|
|
|
|
+ String billcode_s = billcode_map.get("billcode_s");// 单据号前段
|
|
|
|
+ String billcode_e = billcode_map.get("billcode_e");// 单据号流水号
|
|
|
|
+ Integer billcode_tj = new Integer(billcode_e);
|
|
|
|
+ billcode_tj=billcode_tj+1;
|
|
|
|
+ String billcode =billcode_s+UpifsTool.ChangeIntToStr(billcode_tj);
|
|
|
|
+
|
|
//档案编码
|
|
//档案编码
|
|
- defdocVO.setDoccode(docname);
|
|
|
|
|
|
+ defdocVO.setDoccode(billcode);
|
|
//档案名称
|
|
//档案名称
|
|
defdocVO.setDocname(docname);
|
|
defdocVO.setDocname(docname);
|
|
//档案系统属性
|
|
//档案系统属性
|
|
@@ -147,5 +189,25 @@ public class SpecialDataRule implements IRule<AggDemandVO> {
|
|
iDefdoc.saveVOs(pk_defdoclist, new DefdocVO[] {defdocVO});
|
|
iDefdoc.saveVOs(pk_defdoclist, new DefdocVO[] {defdocVO});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ private String getzyqpk(String doclistname,String pk_defdoc) throws BusinessException {
|
|
|
|
+
|
|
|
|
+ if(null==pk_defdoc || "".equals(pk_defdoc)) {
|
|
|
|
+ return "";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //取到自定义档案列表主键
|
|
|
|
+ String sql = "select pk_defdoclist from bd_defdoclist where doclistname = '"+doclistname+"'";
|
|
|
|
+ Object pk_defdoclist = iuap.executeQuery(sql, new ColumnProcessor());
|
|
|
|
+ if(pk_defdoclist == null) {
|
|
|
|
+ throw new BusinessException("以下档案在U8cloud系统中根据公司或者账簿信息找不到,请检查!详细信息:1、档案类型:自定义档案列表,档案名称:"+doclistname);
|
|
|
|
+ }
|
|
|
|
+ String sql1 = "select docname from bd_defdoc where pk_defdoclist = '"+pk_defdoclist.toString()+"' and pk_defdoc ='"+pk_defdoc+"'";
|
|
|
|
+ String docname = (String) iuap.executeQuery(sql1, new ColumnProcessor());
|
|
|
|
+
|
|
|
|
+ return docname;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
|
|
}
|
|
}
|