|
@@ -23,7 +23,9 @@ import nc.md.persist.framework.IMDPersistenceQueryService;
|
|
|
import nc.ui.hr.frame.FrameUI;
|
|
|
import nc.ui.hr.frame.action.AbstractAction;
|
|
|
import nc.ui.pub.ClientEnvironment;
|
|
|
+import nc.ui.pub.beans.MessageDialog;
|
|
|
import nc.ui.pub.beans.UIDialog;
|
|
|
+import nc.vo.AqkcVO;
|
|
|
import nc.vo.DemandUAPBVO;
|
|
|
import nc.vo.OnhandunmUAPVO;
|
|
|
import nc.vo.OperationBalanceVO;
|
|
@@ -33,6 +35,7 @@ import nc.vo.OperationPurchaseVO;
|
|
|
import nc.vo.OperationSupplyVO;
|
|
|
import nc.vo.OperationTransferVO;
|
|
|
import nc.vo.OrderIssueUAPVO;
|
|
|
+import nc.vo.SafetystockVO;
|
|
|
import nc.vo.ic.pub.bill.SpecialBillHeaderVO;
|
|
|
import nc.vo.ic.pub.bill.SpecialBillItemVO;
|
|
|
import nc.vo.ic.pub.bill.SpecialBillVO;
|
|
@@ -46,6 +49,7 @@ import nc.vo.pub.lang.UFDate;
|
|
|
import nc.vo.pub.lang.UFDouble;
|
|
|
import nc.vo.pubapp.pattern.pub.SqlBuilder;
|
|
|
import u8c.ui.mm.panel.OperationTestUI;
|
|
|
+import u8c.vo.ExAggOrderMainVO;
|
|
|
|
|
|
/**
|
|
|
* MRP运算清单-运算按钮
|
|
@@ -72,11 +76,9 @@ public class YsAction extends YsQuseryAction{
|
|
|
ClientEnvironment.getInstance().getCorporation().getPk_corp(),iscancel);
|
|
|
dialog.show();
|
|
|
|
|
|
-
|
|
|
if(dialog.dg_iscancel) {
|
|
|
String butype = dialog.getButype();//业务类型下拉--- 家装\工装
|
|
|
String xmname = dialog.getXmname();//项目主键
|
|
|
- List<OperationSupplyVO> supplyvos=new ArrayList<OperationSupplyVO>();
|
|
|
|
|
|
/**
|
|
|
*
|
|
@@ -85,18 +87,20 @@ public class YsAction extends YsQuseryAction{
|
|
|
* 需求页签
|
|
|
*
|
|
|
*/
|
|
|
- String pk_operation="";//单据主键
|
|
|
+
|
|
|
if("工装".equals(butype)) {
|
|
|
+ List<OperationSupplyVO> supplyvos=new ArrayList<OperationSupplyVO>();
|
|
|
+ String pk_operation="";//单据主键
|
|
|
//查询生产总订单材料明细不是委外的数据
|
|
|
String sqlmmpac="select a.dbilldate demanddate ,b.* from mmpac_order_issue b "
|
|
|
+ "inner join mmpac_order_main a on a.pk_order=b.pk_order "
|
|
|
- + "and isnull(a.dr,0)=0 and isnull(b.dr,0)=0 and isnull(b.bdef3,'N')='N' "
|
|
|
+ + "and isnull(a.dr,0)=0 and isnull(b.dr,0)=0 and isnull(b.bdef5,'N')='N' "
|
|
|
+ "and a.projectid='" + xmname + "' and a.busitype='" + butype + "' and a.billstatus='1' ";
|
|
|
|
|
|
List<OrderIssueUAPVO> lisvos= (List<OrderIssueUAPVO>) iuap.executeQuery(sqlmmpac, new BeanListProcessor(OrderIssueUAPVO.class));
|
|
|
|
|
|
//查询材料采购单的数据
|
|
|
- String sqlxc="select a.dbilldate demanddate,b.* from po_demand_b b "
|
|
|
+ String sqlxc="select a.dbilldate demanddate,a.vdef1 gdcode ,b.* from po_demand_b b "
|
|
|
+ "inner join po_demand a on a.pk_demand=b.pk_demand "
|
|
|
+ "and isnull(a.dr,0)=0 and isnull(b.dr,0)=0 "
|
|
|
+ "and a.projectid='" + xmname + "' and a.vdef30='" + butype + "' and a.billstatus='1' and a.billstatus<>'9' ";
|
|
@@ -120,8 +124,8 @@ public class YsAction extends YsQuseryAction{
|
|
|
|
|
|
try{
|
|
|
if(null!=lisvos && lisvos.size()>0) {
|
|
|
- for(OrderIssueUAPVO vo : lisvos) {
|
|
|
- OperationDemandVO demandvo=new OperationDemandVO();
|
|
|
+ for(OrderIssueUAPVO vo : lisvos) {//bdef3
|
|
|
+ OperationDemandVO demandvo=new OperationDemandVO();//vdef13
|
|
|
for (String name : demandvo.getAttributeNames()) {
|
|
|
if("ts".equals(name)||"execnum".equals(name)) {
|
|
|
continue;
|
|
@@ -129,8 +133,15 @@ public class YsAction extends YsQuseryAction{
|
|
|
demandvo.setAttributeValue(name, pk_operation);
|
|
|
}else if("demandtyoe".equals(name)) {
|
|
|
demandvo.setAttributeValue(name, "生产总订单");
|
|
|
+ }else if("nastnum".equals(name)) {
|
|
|
+ demandvo.setNastnum(vo.getNastnum());
|
|
|
}else {
|
|
|
- demandvo.setAttributeValue(name, vo.getAttributeValue(name));
|
|
|
+ String oldname=name;
|
|
|
+ String newname=name;
|
|
|
+ if(name.contains("vdef")) {
|
|
|
+ newname=newname.replace("vdef", "bdef");
|
|
|
+ }
|
|
|
+ demandvo.setAttributeValue(oldname, vo.getAttributeValue(newname));
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -148,9 +159,19 @@ public class YsAction extends YsQuseryAction{
|
|
|
demandvo.setAttributeValue(name, pk_operation);
|
|
|
}else if("demandtyoe".equals(name)) {
|
|
|
demandvo.setAttributeValue(name, "材料采购单");
|
|
|
+ }else if("nastnum".equals(name)) {
|
|
|
+ demandvo.setNastnum(new UFDouble(vo.getNastnum()));
|
|
|
+ }else if("vdef30".equals(name)) {//材料采购单主表主键
|
|
|
+ demandvo.setVdef30(vo.getPk_demand());
|
|
|
+ }else if("vdef29".equals(name)) {//材料采购单主表主键
|
|
|
+ demandvo.setVdef29(vo.getGdcode());//工单编码
|
|
|
}else {
|
|
|
demandvo.setAttributeValue(name, vo.getAttributeValue(name));
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
demandvos.add(demandvo);
|
|
|
}
|
|
@@ -163,7 +184,6 @@ public class YsAction extends YsQuseryAction{
|
|
|
throw new ValidationException(e.getMessage());
|
|
|
}
|
|
|
/********************************生成【需求】页签数据-end*********************************************/
|
|
|
-
|
|
|
|
|
|
}else {
|
|
|
throw new ValidationException("生产总订单和材料采购单没有符合条件的数据!");
|
|
@@ -188,7 +208,8 @@ public class YsAction extends YsQuseryAction{
|
|
|
|
|
|
String sqlic_onhandnum="select vlot,cwarehouseid,cinventoryid,cinvbasid,vfree1,vfree2,vfree3,vfree4,nonhandnum "
|
|
|
+ "from ic_onhandnum where "
|
|
|
- // + "vlot =(select jobcode from bd_jobbasfil where pk_jobbasfil='" + xmname + "' ) and "
|
|
|
+ // + "vlot =(select jobcode from bd_jobbasfil where pk_jobbasfil='" + xmname + "' ) and "
|
|
|
+ + "vlot =(select jobcode from bd_jobbasfil where pk_jobbasfil= (select pk_jobbasfil from bd_jobmngfil where pk_jobmngfil='" + xmname + "')) and "
|
|
|
+ "cwarehouseid= (select pk_stordoc from bd_stordoc "
|
|
|
+ "where storcode='GZ001') and nonhandnum>0 and ";
|
|
|
|
|
@@ -219,7 +240,8 @@ public class YsAction extends YsQuseryAction{
|
|
|
supplyvos.add(opernsupplyvo);
|
|
|
// liswlpls.add(vo.getCinvbasid());
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
//工装:2.公共库查询:没有项目的,根据物料去查询
|
|
|
|
|
|
SqlBuilder sqlbuild=new SqlBuilder();
|
|
@@ -230,7 +252,6 @@ public class YsAction extends YsQuseryAction{
|
|
|
sqlbuild.append("cinvbasid", pkwls.toArray(new String[pkwls.size()]));
|
|
|
|
|
|
List<OnhandunmUAPVO> lisonhandnums_gg= (List<OnhandunmUAPVO>) iuap.executeQuery(sqlbuild.toString(), new BeanListProcessor(OnhandunmUAPVO.class));
|
|
|
-
|
|
|
for(OnhandunmUAPVO vo:lisonhandnums_gg) {
|
|
|
OperationSupplyVO opernsupplyvo=new OperationSupplyVO();
|
|
|
opernsupplyvo.setSupplytype("库存量_公共库");//供应类型
|
|
@@ -260,7 +281,6 @@ public class YsAction extends YsQuseryAction{
|
|
|
throw new ValidationException(e.getMessage());
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
*
|
|
|
* 供需平衡结果
|
|
@@ -287,7 +307,6 @@ public class YsAction extends YsQuseryAction{
|
|
|
}
|
|
|
|
|
|
bancevos.add(bancevo);
|
|
|
-
|
|
|
//供应数据--查询供应页签数据库数据
|
|
|
String gysqlw="select * from mm_operation_supply where pk_operation='"+pk_operation+"' and isnull(dr,0)=0 and cmaterialcode='"+bancevo.getCmaterialcode()+"' ";
|
|
|
List<OperationSupplyVO> lissupplyvos=(List<OperationSupplyVO>) iuap.executeQuery(gysqlw, new BeanListProcessor(OperationSupplyVO.class));
|
|
@@ -308,7 +327,6 @@ public class YsAction extends YsQuseryAction{
|
|
|
map.put(opersuplyvo.getSupplytype()/*供应类型*/, maplisvo);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
if(null!=map&&map.size()<2) {
|
|
|
//说明只有一个库有此存货
|
|
|
if("库存量_工装库".equals(lissupplyvos.get(0).getSupplytype())) {
|
|
@@ -320,7 +338,7 @@ public class YsAction extends YsQuseryAction{
|
|
|
gysx=gysx.add(gzvo.getNum());//供应数量
|
|
|
}
|
|
|
bancevo11.setNum(gysx);//主数量
|
|
|
- if (bancevo.getNum().sub(gysx).compareTo(UFDouble.ZERO_DBL)<0) {
|
|
|
+ if (bancevo.getNum().sub(gysx).compareTo(UFDouble.ZERO_DBL)<=0) {
|
|
|
//需求数量-供应数量<0
|
|
|
bancevo11.setProexecutenum(bancevo.getNum().setScale(2,UFDouble.ROUND_HALF_UP ).toString());//建议执行数量
|
|
|
bancevo11.setMatchnum(bancevo.getNum().setScale(2,UFDouble.ROUND_HALF_UP ).toString());//已匹配主数量
|
|
@@ -331,15 +349,19 @@ public class YsAction extends YsQuseryAction{
|
|
|
bancevo11.setProexecutenum(gysx.setScale(2,UFDouble.ROUND_HALF_UP ).toString());//建议执行数量
|
|
|
bancevo11.setMatchnum(gysx.setScale(2,UFDouble.ROUND_HALF_UP ).toString());//已匹配主数量
|
|
|
bancevo11.setSurdenum(bancevo.getNum().sub(gysx).setScale(2,UFDouble.ROUND_HALF_UP ).toString());//剩余需求主数量
|
|
|
- bancevoscgdd.add(bancevo11);
|
|
|
+
|
|
|
+ if(!"生产总订单".equals(bancevo.getDemandtype())) {
|
|
|
+ bancevoscgdd.add(bancevo1144);
|
|
|
+ }
|
|
|
+
|
|
|
//需要采购物料
|
|
|
bancevo1144.setProexecute("采购");//建议执行
|
|
|
bancevo1144.setProexecutenum(bancevo.getNum().sub(gysx).setScale(2,UFDouble.ROUND_HALF_UP ).toString());//建议执行数量
|
|
|
bancevo1144.setMatchnum(bancevo.getNum().sub(gysx).setScale(2,UFDouble.ROUND_HALF_UP ).toString());//已匹配主数量
|
|
|
bancevo1144.setSurdenum(UFDouble.ZERO_DBL.setScale(2,UFDouble.ROUND_HALF_UP ).toString());//剩余需求主数量
|
|
|
bancevo1144.setPk_operation(pk_operation);
|
|
|
-
|
|
|
}
|
|
|
+
|
|
|
bancevo11.setPk_operation(pk_operation);
|
|
|
bancevo113=(OperationBalanceVO) bancevo11.clone();
|
|
|
bancevo11.setPrjcode(bancevo.getPrjcode());//项目编码
|
|
@@ -357,6 +379,57 @@ public class YsAction extends YsQuseryAction{
|
|
|
bancevo11.setStandard(bancevo.getStandard());//标准
|
|
|
bancevo11.setWeight(bancevo.getWeight());//米重
|
|
|
bancevo11.setUnitid(bancevo.getUnitid());//计量单位
|
|
|
+
|
|
|
+ bancevo1144.setPrjcode(bancevo.getPrjcode());//项目编码
|
|
|
+ bancevo1144.setPrjname(bancevo.getPrjname());//项目名称
|
|
|
+ bancevo1144.setPrjtypecode(bancevo.getPrjtypecode());//项目分类编码
|
|
|
+ bancevo1144.setPrjtypename(bancevo.getPrjtypename());//项目分类名称
|
|
|
+ bancevo1144.setVbatchcode(bancevo.getVbatchcode());//批次
|
|
|
+ bancevo1144.setCmaterialcode(bancevo.getCmaterialcode());//存货编码
|
|
|
+ bancevo1144.setCmaterialname(bancevo.getCmaterialname());//存货名称
|
|
|
+ bancevo1144.setSpec(bancevo.getSpec());//规格
|
|
|
+ bancevo1144.setModel(bancevo.getModel());//型号
|
|
|
+ bancevo1144.setColor(bancevo.getColor());//颜色
|
|
|
+ bancevo1144.setSizing(bancevo.getSizing());//定尺
|
|
|
+ bancevo1144.setAlloy(bancevo.getAlloy());//合金
|
|
|
+ bancevo1144.setStandard(bancevo.getStandard());//标准
|
|
|
+ bancevo1144.setWeight(bancevo.getWeight());//米重
|
|
|
+ bancevo1144.setUnitid(bancevo.getUnitid());//计量单位
|
|
|
+ bancevo1144.setWeight(bancevo.getWeight());
|
|
|
+ bancevo1144.setHeight(bancevo.getHeight());
|
|
|
+ bancevo1144.setCastunitid(bancevo.getCastunitid());
|
|
|
+ bancevo1144.setNastnum(bancevo.getNastnum());
|
|
|
+ //单据属性
|
|
|
+ bancevo1144.setVdef1(bancevo.getVdef1());
|
|
|
+ bancevo1144.setVdef2(bancevo.getVdef2());
|
|
|
+ bancevo1144.setVdef3(bancevo.getVdef3());
|
|
|
+ bancevo1144.setVdef4(bancevo.getVdef4());
|
|
|
+ bancevo1144.setVdef5(bancevo.getVdef5());
|
|
|
+ bancevo1144.setVdef6(bancevo.getVdef6());
|
|
|
+ bancevo1144.setVdef7(bancevo.getVdef7());
|
|
|
+ bancevo1144.setVdef8(bancevo.getVdef8());
|
|
|
+ bancevo1144.setVdef9(bancevo.getVdef9());
|
|
|
+ bancevo1144.setVdef10(bancevo.getVdef10());
|
|
|
+ bancevo1144.setVdef11(bancevo.getVdef11());
|
|
|
+ bancevo1144.setVdef12(bancevo.getVdef12());
|
|
|
+ bancevo1144.setVdef13(bancevo.getVdef13());
|
|
|
+ bancevo1144.setVdef14(bancevo.getVdef14());
|
|
|
+ bancevo1144.setVdef15(bancevo.getVdef15());
|
|
|
+ bancevo1144.setVdef16(bancevo.getVdef16());
|
|
|
+ bancevo1144.setVdef17(bancevo.getVdef17());
|
|
|
+ bancevo1144.setVdef18(bancevo.getVdef18());
|
|
|
+ bancevo1144.setVdef19(bancevo.getVdef19());
|
|
|
+ bancevo1144.setVdef20(bancevo.getVdef20());
|
|
|
+ bancevo1144.setVdef21(bancevo.getVdef21());
|
|
|
+ bancevo1144.setVdef22(bancevo.getVdef22());
|
|
|
+ bancevo1144.setVdef23(bancevo.getVdef23());
|
|
|
+ bancevo1144.setVdef24(bancevo.getVdef24());
|
|
|
+ bancevo1144.setVdef25(bancevo.getVdef25());
|
|
|
+ bancevo1144.setVdef26(bancevo.getVdef26());
|
|
|
+ bancevo1144.setVdef27(bancevo.getVdef27());
|
|
|
+ bancevo1144.setVdef28(bancevo.getVdef28());
|
|
|
+ bancevo1144.setVdef29(bancevo.getVdef29());
|
|
|
+ bancevo1144.setVdef30(bancevo.getVdef30());
|
|
|
bancevo113.setSupplytype("库存量_公共库");//供应类型
|
|
|
bancevo113.setWarehouse("公共库");//仓库
|
|
|
bancevo113.setNum(UFDouble.ZERO_DBL);//主数量
|
|
@@ -366,6 +439,8 @@ public class YsAction extends YsQuseryAction{
|
|
|
bancevos.add(bancevo11);
|
|
|
bancevos.add(bancevo1144);
|
|
|
bancevos.add(bancevo113);
|
|
|
+
|
|
|
+
|
|
|
}else {
|
|
|
bancevo113.setSupplytype("库存量_公共库");//供应类型
|
|
|
bancevo113.setWarehouse("公共库");//仓库
|
|
@@ -378,10 +453,11 @@ public class YsAction extends YsQuseryAction{
|
|
|
UFDouble gysx=UFDouble.ZERO_DBL;
|
|
|
List<OperationSupplyVO> lisggvos=map.get("库存量_公共库");
|
|
|
for(OperationSupplyVO ggvo:lisggvos) {
|
|
|
- gysx=gysx.add(ggvo.getNmny());//供应数量
|
|
|
+ // gysx=gysx.add(ggvo.getNmny());//供应数量
|
|
|
+ gysx=gysx.add(ggvo.getNum());//供应数量
|
|
|
}
|
|
|
bancevo113.setNum(gysx);//主数量
|
|
|
- if (bancevo.getNum().sub(gysx).compareTo(UFDouble.ZERO_DBL)<0) {
|
|
|
+ if (bancevo.getNum().sub(gysx).compareTo(UFDouble.ZERO_DBL)<=0) {
|
|
|
//需求数量-供应数量<0
|
|
|
bancevo113.setProexecutenum(bancevo.getNum().setScale(2,UFDouble.ROUND_HALF_UP ).toString());//建议执行数量
|
|
|
bancevo113.setMatchnum(bancevo.getNum().setScale(2,UFDouble.ROUND_HALF_UP ).toString());//已匹配主数量
|
|
@@ -442,13 +518,51 @@ public class YsAction extends YsQuseryAction{
|
|
|
bancevo11.setMatchnum(bancevo.getNum().sub(gysx).setScale(2,UFDouble.ROUND_HALF_UP ).toString());//已匹配主数量
|
|
|
bancevo11.setSurdenum(UFDouble.ZERO_DBL.setScale(2,UFDouble.ROUND_HALF_UP ).toString());//剩余需求主数量
|
|
|
bancevo11.setProexecute("采购");//建议执行
|
|
|
- bancevoscgdd.add(bancevo11);
|
|
|
+ bancevo11.setCastunitid(bancevo.getCastunitid());
|
|
|
+ bancevo11.setNastnum(bancevo.getNastnum());
|
|
|
+ bancevo11.setWeight(bancevo.getWeight());
|
|
|
+ bancevo11.setHeight(bancevo.getHeight());
|
|
|
+ bancevo11.setVdef1(bancevo.getVdef1());
|
|
|
+ bancevo11.setVdef2(bancevo.getVdef2());
|
|
|
+ bancevo11.setVdef3(bancevo.getVdef3());
|
|
|
+ bancevo11.setVdef4(bancevo.getVdef4());
|
|
|
+ bancevo11.setVdef5(bancevo.getVdef5());
|
|
|
+ bancevo11.setVdef6(bancevo.getVdef6());
|
|
|
+ bancevo11.setVdef7(bancevo.getVdef7());
|
|
|
+ bancevo11.setVdef8(bancevo.getVdef8());
|
|
|
+ bancevo11.setVdef9(bancevo.getVdef9());
|
|
|
+ bancevo11.setVdef10(bancevo.getVdef10());
|
|
|
+ bancevo11.setVdef11(bancevo.getVdef11());
|
|
|
+ bancevo11.setVdef12(bancevo.getVdef12());
|
|
|
+ bancevo11.setVdef13(bancevo.getVdef13());
|
|
|
+ bancevo11.setVdef14(bancevo.getVdef14());
|
|
|
+ bancevo11.setVdef15(bancevo.getVdef15());
|
|
|
+ bancevo11.setVdef16(bancevo.getVdef16());
|
|
|
+ bancevo11.setVdef17(bancevo.getVdef17());
|
|
|
+ bancevo11.setVdef18(bancevo.getVdef18());
|
|
|
+ bancevo11.setVdef19(bancevo.getVdef19());
|
|
|
+ bancevo11.setVdef20(bancevo.getVdef20());
|
|
|
+ bancevo11.setVdef21(bancevo.getVdef21());
|
|
|
+ bancevo11.setVdef22(bancevo.getVdef22());
|
|
|
+ bancevo11.setVdef23(bancevo.getVdef23());
|
|
|
+ bancevo11.setVdef24(bancevo.getVdef24());
|
|
|
+ bancevo11.setVdef25(bancevo.getVdef25());
|
|
|
+ bancevo11.setVdef26(bancevo.getVdef26());
|
|
|
+ bancevo11.setVdef27(bancevo.getVdef27());
|
|
|
+ bancevo11.setVdef28(bancevo.getVdef28());
|
|
|
+ bancevo11.setVdef29(bancevo.getVdef29());
|
|
|
+ bancevo11.setVdef30(bancevo.getVdef30());
|
|
|
+ if(!"生产总订单".equals(bancevo.getDemandtype())) {
|
|
|
+ bancevoscgdd.add(bancevo11);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
bancevos.add(bancevo113);
|
|
|
bancevos.add(bancevo11);
|
|
|
}
|
|
|
|
|
|
}else {
|
|
|
+
|
|
|
//公共库和工装库都有此存货
|
|
|
/*********先查询用工装库*************/
|
|
|
List<OperationSupplyVO> supplylisvos=map.get("库存量_工装库");
|
|
@@ -458,7 +572,7 @@ public class YsAction extends YsQuseryAction{
|
|
|
gysx=gysx.add(supplylisvo.getNum());//供应数量
|
|
|
}
|
|
|
bancevo11.setNum(gysx);//主数量
|
|
|
- if (bancevo.getNum().sub(gysx).compareTo(UFDouble.ZERO_DBL)<0) {
|
|
|
+ if (bancevo.getNum().sub(gysx).compareTo(UFDouble.ZERO_DBL)<=0) {
|
|
|
//需求数量-供应数量<0
|
|
|
bancevo11.setProexecutenum(bancevo.getNum().setScale(2,UFDouble.ROUND_HALF_UP ).toString());//建议执行数量
|
|
|
bancevo11.setMatchnum(bancevo.getNum().setScale(2,UFDouble.ROUND_HALF_UP ).toString());//已匹配主数量
|
|
@@ -517,7 +631,7 @@ public class YsAction extends YsQuseryAction{
|
|
|
gysxgg=gysxgg.add(supplyvogg.getNum());//供应数量
|
|
|
}
|
|
|
|
|
|
- if(gysxgg.sub(xyznum).compareTo(UFDouble.ZERO_DBL)>0) {
|
|
|
+ if(gysxgg.sub(xyznum).compareTo(UFDouble.ZERO_DBL)>=0) {
|
|
|
bancevo113.setNum(gysxgg);//主数量
|
|
|
bancevo113.setProexecutenum(xyznum.setScale(2,UFDouble.ROUND_HALF_UP ).toString());//建议执行数量
|
|
|
bancevo113.setMatchnum(xyznum.setScale(2,UFDouble.ROUND_HALF_UP ).toString());//已匹配主数量
|
|
@@ -564,10 +678,46 @@ public class YsAction extends YsQuseryAction{
|
|
|
bancevo114.setPk_operation(pk_operation);
|
|
|
bancevo114.setNum(UFDouble.ZERO_DBL.setScale(2,UFDouble.ROUND_HALF_UP ));
|
|
|
bancevo114.setProexecute("采购");//建议执行
|
|
|
- bancevoscgdd.add(bancevo114);
|
|
|
+ if(!"生产总订单".equals(bancevo.getDemandtype())) {
|
|
|
+ bancevoscgdd.add(bancevo114);
|
|
|
+ }
|
|
|
bancevo114.setProexecutenum(xyznum.sub(gysxgg).setScale(2,UFDouble.ROUND_HALF_UP ).toString());//建议执行数量
|
|
|
bancevo114.setMatchnum(xyznum.sub(gysxgg).setScale(2,UFDouble.ROUND_HALF_UP ).toString());//已匹配主数量
|
|
|
bancevo114.setSurdenum(UFDouble.ZERO_DBL.setScale(2,UFDouble.ROUND_HALF_UP ).toString());//剩余需求主数量
|
|
|
+ bancevo114.setWeight(bancevo.getWeight());
|
|
|
+ bancevo114.setHeight(bancevo.getHeight());
|
|
|
+ bancevo114.setCastunitid(bancevo.getCastunitid());
|
|
|
+ bancevo114.setNastnum(bancevo.getNastnum());
|
|
|
+ bancevo114.setVdef1(bancevo.getVdef1());
|
|
|
+ bancevo114.setVdef2(bancevo.getVdef2());
|
|
|
+ bancevo114.setVdef3(bancevo.getVdef3());
|
|
|
+ bancevo114.setVdef4(bancevo.getVdef4());
|
|
|
+ bancevo114.setVdef5(bancevo.getVdef5());
|
|
|
+ bancevo114.setVdef6(bancevo.getVdef6());
|
|
|
+ bancevo114.setVdef7(bancevo.getVdef7());
|
|
|
+ bancevo114.setVdef8(bancevo.getVdef8());
|
|
|
+ bancevo114.setVdef9(bancevo.getVdef9());
|
|
|
+ bancevo114.setVdef10(bancevo.getVdef10());
|
|
|
+ bancevo114.setVdef11(bancevo.getVdef11());
|
|
|
+ bancevo114.setVdef12(bancevo.getVdef12());
|
|
|
+ bancevo114.setVdef13(bancevo.getVdef13());
|
|
|
+ bancevo114.setVdef14(bancevo.getVdef14());
|
|
|
+ bancevo114.setVdef15(bancevo.getVdef15());
|
|
|
+ bancevo114.setVdef16(bancevo.getVdef16());
|
|
|
+ bancevo114.setVdef17(bancevo.getVdef17());
|
|
|
+ bancevo114.setVdef18(bancevo.getVdef18());
|
|
|
+ bancevo114.setVdef19(bancevo.getVdef19());
|
|
|
+ bancevo114.setVdef20(bancevo.getVdef20());
|
|
|
+ bancevo114.setVdef21(bancevo.getVdef21());
|
|
|
+ bancevo114.setVdef22(bancevo.getVdef22());
|
|
|
+ bancevo114.setVdef23(bancevo.getVdef23());
|
|
|
+ bancevo114.setVdef24(bancevo.getVdef24());
|
|
|
+ bancevo114.setVdef25(bancevo.getVdef25());
|
|
|
+ bancevo114.setVdef26(bancevo.getVdef26());
|
|
|
+ bancevo114.setVdef27(bancevo.getVdef27());
|
|
|
+ bancevo114.setVdef28(bancevo.getVdef28());
|
|
|
+ bancevo114.setVdef29(bancevo.getVdef29());
|
|
|
+ bancevo114.setVdef30(bancevo.getVdef30());
|
|
|
bancevos.add(bancevo11);
|
|
|
bancevos.add(bancevo113);
|
|
|
bancevos.add(bancevo114);
|
|
@@ -582,7 +732,9 @@ public class YsAction extends YsQuseryAction{
|
|
|
OperationBalanceVO bancevo2=new OperationBalanceVO();
|
|
|
bancevo2.setSupplytype("库存量_工装库");//供应类型
|
|
|
bancevo2.setProexecute("采购");//建议执行
|
|
|
- bancevoscgdd.add(bancevo2);
|
|
|
+ if(!"生产总订单".equals(bancevo.getDemandtype())) {
|
|
|
+ bancevoscgdd.add(bancevo2);
|
|
|
+ }
|
|
|
bancevo2.setPrjcode(bancevo.getPrjcode());//项目编码
|
|
|
bancevo2.setPrjname(bancevo.getPrjname());//项目名称
|
|
|
bancevo2.setPrjtypecode(bancevo.getPrjtypecode());//项目分类编码
|
|
@@ -598,6 +750,44 @@ public class YsAction extends YsQuseryAction{
|
|
|
bancevo2.setStandard(bancevo.getStandard());//标准
|
|
|
bancevo2.setWeight(bancevo.getWeight());//米重
|
|
|
bancevo2.setUnitid(bancevo.getUnitid());//计量单位
|
|
|
+ bancevo2.setWeight(bancevo.getWeight());
|
|
|
+ bancevo2.setHeight(bancevo.getHeight());
|
|
|
+ bancevo2.setCastunitid(bancevo.getCastunitid());
|
|
|
+ bancevo2.setNastnum(bancevo.getNastnum());
|
|
|
+ bancevo2.setVdef1(bancevo.getVdef1());
|
|
|
+ bancevo2.setVdef2(bancevo.getVdef2());
|
|
|
+ bancevo2.setVdef3(bancevo.getVdef3());
|
|
|
+ bancevo2.setVdef4(bancevo.getVdef4());
|
|
|
+ bancevo2.setVdef5(bancevo.getVdef5());
|
|
|
+ bancevo2.setVdef6(bancevo.getVdef6());
|
|
|
+ bancevo2.setVdef7(bancevo.getVdef7());
|
|
|
+ bancevo2.setVdef8(bancevo.getVdef8());
|
|
|
+ bancevo2.setVdef9(bancevo.getVdef9());
|
|
|
+ bancevo2.setVdef10(bancevo.getVdef10());
|
|
|
+ bancevo2.setVdef11(bancevo.getVdef11());
|
|
|
+ bancevo2.setVdef12(bancevo.getVdef12());
|
|
|
+ bancevo2.setVdef13(bancevo.getVdef13());
|
|
|
+ bancevo2.setVdef14(bancevo.getVdef14());
|
|
|
+ bancevo2.setVdef15(bancevo.getVdef15());
|
|
|
+ bancevo2.setVdef16(bancevo.getVdef16());
|
|
|
+ bancevo2.setVdef17(bancevo.getVdef17());
|
|
|
+ bancevo2.setVdef18(bancevo.getVdef18());
|
|
|
+ bancevo2.setVdef19(bancevo.getVdef19());
|
|
|
+ bancevo2.setVdef20(bancevo.getVdef20());
|
|
|
+ bancevo2.setVdef21(bancevo.getVdef21());
|
|
|
+ bancevo2.setVdef22(bancevo.getVdef22());
|
|
|
+ bancevo2.setVdef23(bancevo.getVdef23());
|
|
|
+ bancevo2.setVdef24(bancevo.getVdef24());
|
|
|
+ bancevo2.setVdef25(bancevo.getVdef25());
|
|
|
+ bancevo2.setVdef26(bancevo.getVdef26());
|
|
|
+ bancevo2.setVdef27(bancevo.getVdef27());
|
|
|
+ bancevo2.setVdef28(bancevo.getVdef28());
|
|
|
+ bancevo2.setVdef29(bancevo.getVdef29());
|
|
|
+ bancevo2.setVdef30(bancevo.getVdef30());
|
|
|
+ if(null==bancevo.getNum()) {
|
|
|
+ String type=bancevo.getDemandtype();//需求类型
|
|
|
+ throw new ValidationException("需求类型:【"+type+"】存货编码:【"+bancevo.getCmaterialcode()+"】主数量不能为空!");
|
|
|
+ }
|
|
|
bancevo2.setProexecutenum(bancevo.getNum().toString());//建议执行数量
|
|
|
bancevo2.setWarehouse("工装库");//仓库
|
|
|
bancevo2.setNum(UFDouble.ZERO_DBL);//主数量
|
|
@@ -633,7 +823,7 @@ public class YsAction extends YsQuseryAction{
|
|
|
bancevos.add(bancevo3);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
ivo.insertVOList(bancevos);
|
|
|
}catch(Exception e) {
|
|
|
ivo.deleteByPK(OperationMainVO.class,pk_operation);
|
|
@@ -647,7 +837,6 @@ public class YsAction extends YsQuseryAction{
|
|
|
* 生成请购单
|
|
|
*
|
|
|
*/
|
|
|
-
|
|
|
try {
|
|
|
if(null!=bancevoscgdd && bancevoscgdd.size()>0) {
|
|
|
OperationPurchaseVO[] purchasevos=new OperationPurchaseVO[bancevoscgdd.size()];
|
|
@@ -669,10 +858,44 @@ public class YsAction extends YsQuseryAction{
|
|
|
vo.setAlloy(cgdd.getAlloy());
|
|
|
vo.setStandard(cgdd.getStandard());
|
|
|
vo.setWeight(cgdd.getWeight());
|
|
|
+ vo.setHeight(cgdd.getHeight());
|
|
|
vo.setNum(new UFDouble(cgdd.getProexecutenum()));
|
|
|
vo.setNprice(cgdd.getNprice());
|
|
|
vo.setNmny(cgdd.getNmny());
|
|
|
vo.setPk_operation(pk_operation);
|
|
|
+ vo.setCastunitid(cgdd.getCastunitid());
|
|
|
+ vo.setNastnum(cgdd.getNastnum());
|
|
|
+ vo.setVdef1(cgdd.getVdef1());
|
|
|
+ vo.setVdef2(cgdd.getVdef2());
|
|
|
+ vo.setVdef3(cgdd.getVdef3());
|
|
|
+ vo.setVdef4(cgdd.getVdef4());
|
|
|
+ vo.setVdef5(cgdd.getVdef5());
|
|
|
+ vo.setVdef6(cgdd.getVdef6());
|
|
|
+ vo.setVdef7(cgdd.getVdef7());
|
|
|
+ vo.setVdef8(cgdd.getVdef8());
|
|
|
+ vo.setVdef9(cgdd.getVdef9());
|
|
|
+ vo.setVdef10(cgdd.getVdef10());
|
|
|
+ vo.setVdef11(cgdd.getVdef11());
|
|
|
+ vo.setVdef12(cgdd.getVdef12());
|
|
|
+ vo.setVdef13(cgdd.getVdef13());
|
|
|
+ vo.setVdef14(cgdd.getVdef14());
|
|
|
+ vo.setVdef15(cgdd.getVdef15());
|
|
|
+ vo.setVdef16(cgdd.getVdef16());
|
|
|
+ vo.setVdef17(cgdd.getVdef17());
|
|
|
+ vo.setVdef18(cgdd.getVdef18());
|
|
|
+ vo.setVdef19(cgdd.getVdef19());
|
|
|
+ vo.setVdef20(cgdd.getVdef20());
|
|
|
+ vo.setVdef21(cgdd.getVdef21());
|
|
|
+ vo.setVdef22(cgdd.getVdef22());
|
|
|
+ vo.setVdef23(cgdd.getVdef23());
|
|
|
+ vo.setVdef24(cgdd.getVdef24());
|
|
|
+ vo.setVdef25(cgdd.getVdef25());
|
|
|
+ vo.setVdef26(cgdd.getVdef26());
|
|
|
+ vo.setVdef27(cgdd.getVdef27());
|
|
|
+ vo.setVdef28(cgdd.getVdef28());
|
|
|
+ vo.setVdef29(cgdd.getVdef29());
|
|
|
+ vo.setVdef30(cgdd.getVdef30());//来源单据主表主键--材料采购单
|
|
|
+
|
|
|
purchasevos[flg]=vo;
|
|
|
flg+=1;
|
|
|
}
|
|
@@ -719,10 +942,10 @@ public class YsAction extends YsQuseryAction{
|
|
|
fg+=1;
|
|
|
}
|
|
|
|
|
|
- PraybillVO vo = new PraybillVO();
|
|
|
- vo.setParentVO(header);
|
|
|
- vo.setChildrenVO(items);
|
|
|
- iIplatFormEntry.processAction("SAVEBASE", "20", vo.getHeadVO().getDpraydate().toString(), null, vo, null, null);
|
|
|
+// PraybillVO vo = new PraybillVO();
|
|
|
+// vo.setParentVO(header);
|
|
|
+// vo.setChildrenVO(items);
|
|
|
+// iIplatFormEntry.processAction("SAVEBASE", "20", vo.getHeadVO().getDpraydate().toString(), null, vo, null, null);
|
|
|
ivo.insertVOArray(purchasevos);
|
|
|
|
|
|
|
|
@@ -779,12 +1002,12 @@ public class YsAction extends YsQuseryAction{
|
|
|
}
|
|
|
|
|
|
|
|
|
- SpecialBillVO aggvo=new SpecialBillVO();
|
|
|
+ // SpecialBillVO aggvo=new SpecialBillVO();
|
|
|
SpecialBillHeaderVO headvo=new SpecialBillHeaderVO();
|
|
|
headvo.setCbilltypecode("4K");
|
|
|
- headvo.setCinwarehouseid("1001V51000000000039Z");//入库仓库ID 工装
|
|
|
+ headvo.setCinwarehouseid(getstordocpk("GZ001"));//入库仓库ID 工装
|
|
|
headvo.setCoperatorid(ClientEnvironment.getInstance().getUser().getPrimaryKey());
|
|
|
- headvo.setCoutwarehouseid("1001V5100000000003A1");//出库仓库ID 家装
|
|
|
+ headvo.setCoutwarehouseid(getstordocpk("JZ002"));//出库仓库ID 家装
|
|
|
headvo.setCshlddiliverdate(new UFDate(ClientEnvironment.getInstance().getBusinessDate().toString()));
|
|
|
headvo.setDbilldate(new UFDate(ClientEnvironment.getInstance().getBusinessDate().toString()));
|
|
|
headvo.setFbillflag(2);
|
|
@@ -800,9 +1023,9 @@ public class YsAction extends YsQuseryAction{
|
|
|
billitem.setDshldtransnum(new UFDouble(vo.getMatchnum()));
|
|
|
billitems[i]=billitem;
|
|
|
}
|
|
|
- aggvo.setParentVO(headvo);
|
|
|
- aggvo.setChildrenVO(billitems);
|
|
|
- iIplatFormEntry.processAction( "WRITE", "4K",null, null, aggvo, null, null);
|
|
|
+// aggvo.setParentVO(headvo);
|
|
|
+// aggvo.setChildrenVO(billitems);
|
|
|
+// iIplatFormEntry.processAction( "WRITE", "4K",null, null, aggvo, null, null);
|
|
|
ivo.insertVOArray(purchasevos_zk);
|
|
|
}
|
|
|
}catch(Exception e) {
|
|
@@ -812,16 +1035,244 @@ public class YsAction extends YsQuseryAction{
|
|
|
ivo.deleteVOList(bancevos);
|
|
|
throw new ValidationException(e.getMessage());
|
|
|
}
|
|
|
+
|
|
|
+ getDataModel().setExtraCondition(" and pk_corp = '" + Global.getCorpPK() + "'"+" and pk_operation= '" + pk_operation + "'" );
|
|
|
|
|
|
}else {
|
|
|
-
|
|
|
//家装
|
|
|
+ /**
|
|
|
+ * 1.查询安全库存的存货、起订点
|
|
|
+ * 2.存货查询现存量
|
|
|
+ * 3.没现存量的就生成请购
|
|
|
+ *
|
|
|
+ */
|
|
|
+
|
|
|
+ String sqlaqkc="select cmaterialcode,color,sizing ,alloy,standard from ic_safetystock where isnull(dr,0)=0;";
|
|
|
+ List<AqkcVO> lisobs=(List<AqkcVO>) iuap.executeQuery(sqlaqkc, new BeanListProcessor(AqkcVO.class));
|
|
|
+ if(null==lisobs || lisobs.size()==0) {
|
|
|
+ throw new ValidationException("请先维护下安全库存!");
|
|
|
+ }
|
|
|
+
|
|
|
+ String vbillcode=new BillcodeGenerater().getBillCode("MM01", PubEnv.getPk_corp(), null, null);
|
|
|
+ OperationMainVO opmainvo=new OperationMainVO();
|
|
|
+ opmainvo.setBillmaker(ClientEnvironment.getInstance().getUser().getPrimaryKey());
|
|
|
+ opmainvo.setDbilldate(new UFDate(ClientEnvironment.getInstance().getBusinessDate().toString()));
|
|
|
+ opmainvo.setBusitype(butype);
|
|
|
+ opmainvo.setBillstatus(8);
|
|
|
+ opmainvo.setPk_corp(PubEnv.getCorpCode());
|
|
|
+ opmainvo.setProjectid(xmname);
|
|
|
+ opmainvo.setVbillcode(vbillcode);
|
|
|
+ String pk_operation=ivo.insertVO(opmainvo);
|
|
|
+
|
|
|
+ //需求页签
|
|
|
+ String sqlaqkc2="select * from ic_safetystock where isnull(dr,0)=0;";
|
|
|
+ List<SafetystockVO> lisobs2=(List<SafetystockVO>) iuap.executeQuery(sqlaqkc2, new BeanListProcessor(SafetystockVO.class));
|
|
|
+
|
|
|
+ List<OperationDemandVO> demandvos=new ArrayList<OperationDemandVO>();
|
|
|
+
|
|
|
+ for(int i=0;i<lisobs2.size();i++) {
|
|
|
+ OperationDemandVO operdemandvo=new OperationDemandVO();
|
|
|
+ SafetystockVO styvo=lisobs2.get(i);
|
|
|
+ operdemandvo.setAlloy(styvo.getAlloy());
|
|
|
+ operdemandvo.setColor(styvo.getColor());
|
|
|
+ operdemandvo.setPk_operation(pk_operation);
|
|
|
+ operdemandvo.setNum(new UFDouble(styvo.getVdef1()));
|
|
|
+ operdemandvo.setDemandtyoe("安全库存");
|
|
|
+ operdemandvo.setDemanddate(PubEnv.getLoginDate().toString());
|
|
|
+// operdemandvo.setWarehouse(getstordocpk("JZ002"));//仓库
|
|
|
+// operdemandvo.setCmaterialcode(getCmangchid(styvo.getCmaterialcode()));//存货编码
|
|
|
+// operdemandvo.setCmaterialname(styvo.getCmaterialname());//存货名称
|
|
|
+ String cmaterpk=styvo.getCmaterialcode();
|
|
|
+ operdemandvo.setCmaterialcode(getCmangcodename(cmaterpk,"invcode"));//存货编码
|
|
|
+ operdemandvo.setCmaterialname(getCmangcodename(cmaterpk,"invname"));//存货名称
|
|
|
+ operdemandvo.setSpec(styvo.getSpec());
|
|
|
+ operdemandvo.setModel(styvo.getModel());
|
|
|
+// operdemandvo.setColor(styvo.getColor());
|
|
|
+// operdemandvo.setSizing(styvo.getSizing());
|
|
|
+// operdemandvo.setAlloy(styvo.getAlloy());
|
|
|
+// operdemandvo.setStandard(styvo.getStandard());
|
|
|
+ operdemandvo.setColor(getdefdocid(styvo.getColor(),"YS(颜色)"));
|
|
|
+ operdemandvo.setSizing(getdefdocid(styvo.getSizing(),"DC(定尺)"));
|
|
|
+ operdemandvo.setAlloy(getdefdocid(styvo.getAlloy(),"HI(合金)"));
|
|
|
+ operdemandvo.setStandard(getdefdocid(styvo.getStandard(),"BZ(标准)"));
|
|
|
+ demandvos.add(operdemandvo);
|
|
|
+ }
|
|
|
+ ivo.insertVOList(demandvos);
|
|
|
+
|
|
|
+ // 存货主键:cmaterialcode color : 颜色 sizing;尺寸 alloy :合金 standard : 标准 VDEF1:起订点
|
|
|
+ List<String> lisvos=(List<String>) iuap.executeQuery("select cmaterialcode from ic_safetystock where isnull(dr,0)=0;", new ColumnListProcessor());
|
|
|
+
|
|
|
+ //查询现存量
|
|
|
+ SqlBuilder sqlbuild=new SqlBuilder();
|
|
|
+ String sqlonhandnum="select vlot,cwarehouseid,cinventoryid,cinvbasid,vfree1,vfree2,vfree3,vfree4,nonhandnum "
|
|
|
+ + "from ic_onhandnum where cwarehouseid= (select pk_stordoc from bd_stordoc "
|
|
|
+ + "where storcode='JZ002') and nonhandnum>0 and ";
|
|
|
+ sqlbuild.append(sqlonhandnum);
|
|
|
+ sqlbuild.append("cinventoryid", lisvos.toArray(new String[lisvos.size()]));
|
|
|
+
|
|
|
+ List<OnhandunmUAPVO> lisonhandnums_gg= (List<OnhandunmUAPVO>) iuap.executeQuery(sqlbuild.toString(), new BeanListProcessor(OnhandunmUAPVO.class));
|
|
|
+ List<OperationSupplyVO> supplyvos=new ArrayList<OperationSupplyVO>();
|
|
|
+ for(OnhandunmUAPVO vo:lisonhandnums_gg) {
|
|
|
+ OperationSupplyVO opernsupplyvo=new OperationSupplyVO();
|
|
|
+ opernsupplyvo.setSupplytype("库存量_家装库");//供应类型
|
|
|
+ // opernsupplyvo.setVbatchcode(vo.getVlot());//批次
|
|
|
+ opernsupplyvo.setCmaterialcode(getInvbasdocValue(vo.getCinvbasid(),"invcode"));//物料编码
|
|
|
+ opernsupplyvo.setCmaterialname(getInvbasdocValue(vo.getCinvbasid(),"invname"));//物料名称
|
|
|
+ opernsupplyvo.setSpec(getInvbasdocValue(vo.getCinvbasid(),"invspec"));//规格
|
|
|
+ opernsupplyvo.setModel(getInvbasdocValue(vo.getCinvbasid(),"invtype"));//型号
|
|
|
+ opernsupplyvo.setColor(vo.getVfree1());//颜色
|
|
|
+ opernsupplyvo.setSizing(vo.getVfree3());//定尺
|
|
|
+ opernsupplyvo.setAlloy(vo.getVfree2());//合金
|
|
|
+ opernsupplyvo.setStandard(vo.getVfree4());//标准
|
|
|
+ opernsupplyvo.setNum(new UFDouble(vo.getNonhandnum()));//数量
|
|
|
+ opernsupplyvo.setVdef1(getStordocValue(vo.getCwarehouseid(),"storname"));//仓库名称
|
|
|
+ opernsupplyvo.setPk_operation(pk_operation);//主表主键
|
|
|
+ supplyvos.add(opernsupplyvo);
|
|
|
+ }
|
|
|
+
|
|
|
+ ivo.insertVOList(supplyvos);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //供需平衡结果
|
|
|
+ List<OperationBalanceVO> bancevos=new ArrayList<OperationBalanceVO>();
|
|
|
+ List<OperationBalanceVO> bancevoscg=new ArrayList<OperationBalanceVO>();//采购
|
|
|
+ //查询需求页签数据
|
|
|
+ String sqlxq="select * from mm_operation_demand where pk_operation='"+pk_operation+"' and isnull(dr,0)=0 ";
|
|
|
+ List<OperationDemandVO> lisopens=(List<OperationDemandVO>) iuap.executeQuery(sqlxq, new BeanListProcessor(OperationDemandVO.class));
|
|
|
+ for(OperationDemandVO vo:lisopens) {
|
|
|
+ OperationBalanceVO bancevo=new OperationBalanceVO();
|
|
|
+ for(String name : bancevo.getAttributeNames()) {
|
|
|
+ if("ts".equals(name)) {
|
|
|
+ continue;
|
|
|
+ }else if("demandtype".equals(name)) {
|
|
|
+ bancevo.setDemandtype("安全库存");//需求类型
|
|
|
+ }else {
|
|
|
+ bancevo.setAttributeValue(name, vo.getAttributeValue(name));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ bancevos.add(bancevo);
|
|
|
+
|
|
|
+ //供应数据--查询供应页签数据库数据
|
|
|
+ StringBuffer sbf=new StringBuffer();
|
|
|
+ String gysqlw="select * from mm_operation_supply where pk_operation='"+pk_operation+"' and isnull(dr,0)=0 "
|
|
|
+ + "and cmaterialcode='"+bancevo.getCmaterialcode()+"' ";
|
|
|
+ sbf.append(gysqlw);
|
|
|
+ if(null!=vo.getColor() && !"".equals(vo.getColor())) {
|
|
|
+ sbf.append( " and color='"+vo.getColor()+"' ");
|
|
|
+ }
|
|
|
+ if(null!=vo.getSizing() && !"".equals(vo.getSizing())) {
|
|
|
+ sbf.append( " and sizing='"+vo.getSizing()+"' ");
|
|
|
+ }
|
|
|
+ if(null!=vo.getAlloy() && !"".equals(vo.getAlloy())) {
|
|
|
+ sbf.append( " and alloy='"+vo.getAlloy()+"' ");
|
|
|
+ }
|
|
|
+ if(null!=vo.getStandard() && !"".equals(vo.getStandard())) {
|
|
|
+ sbf.append( " and standard='"+vo.getStandard()+"' ");
|
|
|
+ }
|
|
|
+ //查询供应页签--现存量
|
|
|
+ List<OperationSupplyVO> lissupplyvos=(List<OperationSupplyVO>) iuap.executeQuery(sbf.toString(), new BeanListProcessor(OperationSupplyVO.class));
|
|
|
+ if(null!=lissupplyvos && lissupplyvos.size()>0) {
|
|
|
+ UFDouble toalnum= UFDouble.ZERO_DBL;//现存量总数量
|
|
|
+ for(OperationSupplyVO supiyvo:lissupplyvos) {
|
|
|
+ UFDouble num=supiyvo.getNum();
|
|
|
+ toalnum=toalnum.add(num);
|
|
|
+ }
|
|
|
+
|
|
|
+ //安全库存起订点大于等于现存量,需要采购
|
|
|
+ if(new UFDouble(vo.getNum()).compareTo(toalnum)>=0) {
|
|
|
+ OperationBalanceVO bancevo1=new OperationBalanceVO();
|
|
|
+ bancevo1.setSupplytype("库存量_家装库");//供应类型
|
|
|
+ bancevo1.setWarehouse("家装库");//仓库
|
|
|
+ bancevo1.setProexecutenum(new UFDouble(vo.getNum()).sub(toalnum).setScale(2,UFDouble.ROUND_HALF_UP ).toString());//建议执行数量
|
|
|
+ bancevo1.setMatchnum(new UFDouble(vo.getNum()).sub(toalnum).setScale(2,UFDouble.ROUND_HALF_UP ).toString());//已匹配主数量
|
|
|
+ bancevo1.setSurdenum(UFDouble.ZERO_DBL.setScale(2,UFDouble.ROUND_HALF_UP ).toString());//剩余需求主数量
|
|
|
+ bancevo1.setPk_operation(pk_operation);
|
|
|
+ bancevo1.setCmaterialcode(bancevo.getCmaterialcode());//存货编码
|
|
|
+ bancevo1.setCmaterialname(bancevo.getCmaterialname());//存货名称
|
|
|
+ bancevo1.setSpec(bancevo.getSpec());//规格
|
|
|
+ bancevo1.setModel(bancevo.getModel());//型号
|
|
|
+ bancevo1.setColor(bancevo.getColor());//颜色
|
|
|
+ bancevo1.setSizing(bancevo.getSizing());//定尺
|
|
|
+ bancevo1.setAlloy(bancevo.getAlloy());//合金
|
|
|
+ bancevo1.setStandard(bancevo.getStandard());//标准
|
|
|
+ bancevo1.setWeight(bancevo.getWeight());//米重
|
|
|
+ bancevo1.setUnitid(bancevo.getUnitid());//计量单位
|
|
|
+ bancevo1.setProexecute("采购");//建议执行
|
|
|
+ bancevoscg.add(bancevo1);
|
|
|
+ bancevos.add(bancevo1);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }else {
|
|
|
+ OperationBalanceVO bancevo1=new OperationBalanceVO();
|
|
|
+ bancevo1.setSupplytype("库存量_家装库");//供应类型
|
|
|
+ bancevo1.setWarehouse("家装库");//仓库
|
|
|
+ bancevo1.setProexecutenum(new UFDouble(vo.getNum()).setScale(2,UFDouble.ROUND_HALF_UP ).toString());//建议执行数量
|
|
|
+ bancevo1.setMatchnum(new UFDouble(vo.getNum()).setScale(2,UFDouble.ROUND_HALF_UP ).toString());//已匹配主数量
|
|
|
+ bancevo1.setSurdenum(UFDouble.ZERO_DBL.toString());//剩余需求主数量
|
|
|
+ bancevo1.setPk_operation(pk_operation);
|
|
|
+ bancevo1.setCmaterialcode(bancevo.getCmaterialcode());//存货编码
|
|
|
+ bancevo1.setCmaterialname(bancevo.getCmaterialname());//存货名称
|
|
|
+ bancevo1.setSpec(bancevo.getSpec());//规格
|
|
|
+ bancevo1.setModel(bancevo.getModel());//型号
|
|
|
+ bancevo1.setColor(bancevo.getColor());//颜色
|
|
|
+ bancevo1.setSizing(bancevo.getSizing());//定尺
|
|
|
+ bancevo1.setAlloy(bancevo.getAlloy());//合金
|
|
|
+ bancevo1.setStandard(bancevo.getStandard());//标准
|
|
|
+ bancevo1.setWeight(bancevo.getWeight());//米重
|
|
|
+ bancevo1.setUnitid(bancevo.getUnitid());//计量单位
|
|
|
+ bancevo1.setProexecute("采购");//建议执行
|
|
|
+ bancevos.add(bancevo1);
|
|
|
+ bancevoscg.add(bancevo1);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ ivo.insertVOList(bancevos);
|
|
|
+
|
|
|
+
|
|
|
+ // 采购需求
|
|
|
+ if(null!=bancevoscg && bancevoscg.size()>0) {
|
|
|
+ OperationPurchaseVO[] purchasevos=new OperationPurchaseVO[bancevoscg.size()];
|
|
|
+ int flg=0;
|
|
|
+ for(OperationBalanceVO cgdd : bancevoscg) {
|
|
|
+ OperationPurchaseVO vo=new OperationPurchaseVO();
|
|
|
+ vo.setPrjcode(cgdd.getPrjcode());
|
|
|
+ vo.setPrjname(cgdd.getPrjname());
|
|
|
+ vo.setPrjtypecode(cgdd.getPrjtypecode());
|
|
|
+ vo.setPrjtypename(cgdd.getPrjtypename());
|
|
|
+ vo.setVbatchcode(cgdd.getVbatchcode());
|
|
|
+ vo.setWarehouse(cgdd.getWarehouse());
|
|
|
+ vo.setCmaterialcode(cgdd.getCmaterialcode());
|
|
|
+ vo.setCmaterialname(cgdd.getCmaterialname());
|
|
|
+ vo.setSpec(cgdd.getSpec());
|
|
|
+ vo.setModel(cgdd.getModel());
|
|
|
+ vo.setColor(cgdd.getColor());
|
|
|
+ vo.setSizing(cgdd.getSizing());
|
|
|
+ vo.setAlloy(cgdd.getAlloy());
|
|
|
+ vo.setStandard(cgdd.getStandard());
|
|
|
+ vo.setWeight(cgdd.getWeight());
|
|
|
+ vo.setNum(new UFDouble(cgdd.getProexecutenum()));
|
|
|
+ vo.setNprice(cgdd.getNprice());
|
|
|
+ vo.setNmny(cgdd.getNmny());
|
|
|
+ vo.setPk_operation(pk_operation);
|
|
|
+ purchasevos[flg]=vo;
|
|
|
+ flg+=1;
|
|
|
+ }
|
|
|
+ ivo.insertVOArray(purchasevos);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ getDataModel().setExtraCondition(" and pk_corp = '" + Global.getCorpPK() + "'"+" and pk_operation= '" + pk_operation + "'" );
|
|
|
|
|
|
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- getDataModel().setExtraCondition(" and pk_corp = '" + Global.getCorpPK() + "'"+" and pk_operation= '" + pk_operation + "'" );
|
|
|
+
|
|
|
|
|
|
super.execute();
|
|
|
|
|
@@ -873,6 +1324,17 @@ public class YsAction extends YsQuseryAction{
|
|
|
}
|
|
|
|
|
|
|
|
|
+ public String getCmangcodename(String pk_invmandoc,String value) throws BusinessException {
|
|
|
+ String cmangid = null;
|
|
|
+ String sql = " select invcode,invname from bd_invbasdoc where pk_invbasdoc =( select pk_invbasdoc from bd_invmandoc" + " where pk_invmandoc ='" + pk_invmandoc + "' and dr =0 )";
|
|
|
+ cmangid = (String) iuap.executeQuery(sql, new ColumnProcessor(value));
|
|
|
+ if (cmangid == null) {
|
|
|
+ throw new BusinessException("U8C物料主键不存在:" + pk_invmandoc);
|
|
|
+ }
|
|
|
+ return cmangid;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
//物料
|
|
|
public String getInvbasdocValue(String pk_invbasdoc,String param) throws Exception {
|
|
@@ -910,7 +1372,26 @@ public class YsAction extends YsQuseryAction{
|
|
|
}
|
|
|
|
|
|
|
|
|
+ public String getstordocpk(String storcode)throws Exception{
|
|
|
+ String sql = "select pk_stordoc from bd_stordoc where storcode = '"+storcode+"'";
|
|
|
+ String pk_stordoc = (String) iuap.executeQuery(sql, new ColumnProcessor());
|
|
|
+ if(pk_stordoc == null) {
|
|
|
+ throw new Exception("仓库"+storcode+"未查到,请检查");
|
|
|
+ }
|
|
|
+ return pk_stordoc;
|
|
|
+ }
|
|
|
|
|
|
+
|
|
|
+ //查询自定义档案主键查询编码
|
|
|
+ public String getdefdocid(String pk_defdoc,String defcode) throws Exception{
|
|
|
+ String qrysql = "select docname from bd_defdoc where pk_defdoclist = "
|
|
|
+ + "(select pk_defdoclist from bd_defdef where defcode='"+defcode+"') and pk_defdoc = '"+pk_defdoc+"'";
|
|
|
+ String res = (String) iuap.executeQuery(qrysql, new ColumnProcessor());
|
|
|
+ if(res == null) {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ return res;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}
|