From 9c1cca9eaa439b2d290a02d06b48b1f961eb7e5e Mon Sep 17 00:00:00 2001 From: zhengyf Date: Fri, 8 Nov 2024 10:10:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BD=E7=9F=A5=EF=BC=9A=E8=B0=83=E6=8B=A8?= =?UTF-8?q?=E5=87=BA=E5=BA=93=E4=BB=B7=E6=A0=BC=E5=8F=96=E6=95=B0=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TransferOutPluginInitializer.java | 95 +++++++++++++------ .../plugin/lets/u8cdto/GeneralBillVO.java | 4 + 2 files changed, 71 insertions(+), 28 deletions(-) diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferOutPluginInitializer.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferOutPluginInitializer.java index ce0d0543..6054b456 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferOutPluginInitializer.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferOutPluginInitializer.java @@ -10,16 +10,14 @@ import com.hzya.frame.base.PluginBaseEntity; import com.hzya.frame.plugin.lets.constant.OverallConstant; import com.hzya.frame.plugin.lets.constant.ProfilesActiveConstant; import com.hzya.frame.plugin.lets.dao.IIaMonthledgerDao; -import com.hzya.frame.plugin.lets.entity.BdCorpEntity; -import com.hzya.frame.plugin.lets.entity.BdInvbasdocEntity; -import com.hzya.frame.plugin.lets.entity.BdInvmandocEntity; -import com.hzya.frame.plugin.lets.entity.IaMonthledgerEntity; +import com.hzya.frame.plugin.lets.entity.*; import com.hzya.frame.plugin.lets.ofsvo.QueryOfsStockinOrderRequestVO; import com.hzya.frame.plugin.lets.ofsvo.QueryOfsStockoutOrderRequestVO; import com.hzya.frame.plugin.lets.ofsvo.QueryOfsTransferOrderRequestVO; import com.hzya.frame.plugin.lets.u8cdto.BillVO; import com.hzya.frame.plugin.lets.u8cdto.GeneralBillVO_4IDto; import com.hzya.frame.plugin.lets.u8cdto.ReusltStrDto; +import com.hzya.frame.plugin.lets.util.BalanceUnitPriceUtil; import com.hzya.frame.plugin.lets.util.PushDataByU8cUtil; import com.hzya.frame.plugin.lets.util.QueryU8CEntityUtil; import com.hzya.frame.plugin.lets.util.SaveOrUpdateBusinessLogUtil; @@ -333,30 +331,42 @@ public class TransferOutPluginInitializer extends PluginBaseEntity { //vuserdef20 OFS调拨订单 id parentvo.setVdef20(ofsTranseferOrder.getHeader().getId()); + boolean is_flag=false; + StringBuffer stringBuffer = new StringBuffer(); + //子表 List ofsDetails = ofsTranseferOrder.getDetails(); List childrenvo = new ArrayList<>(); for (OFSTranseferOrderSearchResponse.OFSTranseferOrder.OFSTranseferB ofsDetail : ofsDetails) { - BillVO.Childrenvo children = new BillVO.Childrenvo(); - //表体 - //cinvbasid 存货基本档案 - children.setCinvbasid(ofsDetail.getSkuCode()); - //nnum 数量 - children.setNnum(BigDecimal.valueOf(Long.parseLong(ofsDetail.getShipQty()))); - childrenvo.add(children); - //ofs行id + try { + BillVO.Childrenvo children = new BillVO.Childrenvo(); + //表体 + //cinvbasid 存货基本档案 + children.setCinvbasid(ofsDetail.getSkuCode()); + //nnum 数量 + children.setNnum(BigDecimal.valueOf(Long.parseLong(ofsDetail.getShipQty()))); + childrenvo.add(children); + //ofs行id // children.setPk_defdoc20(ofsDetail.getId()); - children.setVbdef20(ofsDetail.getId()); + children.setVbdef20(ofsDetail.getId()); - //nprice 单价(含税单价),取上一次结账的单价 nmny金额 nnotaxmny无税金额 nnotaxprice 无税单价 - IaMonthledgerEntity iaMonthledgerEntity = queryIaMonthledger(ofsDetail, ofsTranseferOrder.getHeader().getCompanyCode()); - if(iaMonthledgerEntity==null){ - children.setNprice("0"); - }else { - children.setNprice(iaMonthledgerEntity.getNabprice()); + //nprice 单价(含税单价),取上一次结账的单价 nmny金额 nnotaxmny无税金额 nnotaxprice 无税单价 + //202411091719:妮妮姐说:优先取结存价,没有的话取采购价,如果都没有就报错!!! + String nabprice = queryIaMonthledger(ofsDetail, ofsTranseferOrder.getHeader().getCompanyCode()); + if (nabprice == null) { + Assert.state(false, "货品:{},SKU编码:{},无结存价和采购价,请维护!",ofsDetail.getSkuName(),ofsDetail.getSkuCode()); + } else { + children.setNprice(nabprice); + } + //ntaxrate 税率 + children.setNtaxrate("13"); + }catch (Exception eD){ + is_flag=true; + stringBuffer.append(eD.getMessage()); } - //ntaxrate 税率 - children.setNtaxrate("13"); + } + if(is_flag){ + Assert.state(false, String.valueOf(stringBuffer)); } billVO.setParentvo(parentvo); billVO.setChildrenvo(childrenvo); @@ -548,12 +558,14 @@ public class TransferOutPluginInitializer extends PluginBaseEntity { return null; } - + @Autowired + private BalanceUnitPriceUtil balanceUnitPriceUtil; /** + * 202411091719:妮妮姐说:优先取结存价,没有的话取采购价,如果都没有就报错!!! * 根据存货管理档案档案,查询最后一次结算的单价,已根据ts 倒排,get(0)为最近一次核算价格 */ - public IaMonthledgerEntity queryIaMonthledger(OFSTranseferOrderSearchResponse.OFSTranseferOrder.OFSTranseferB sku,String companyCode){ - + public String queryIaMonthledger(OFSTranseferOrderSearchResponse.OFSTranseferOrder.OFSTranseferB sku,String companyCode) throws Exception { + String totalPayAmount = null; //查询公司 BdCorpEntity bdCorpEntity = queryU8CEntityUtil.queryBdCorpByUnitCode(companyCode); if(bdCorpEntity==null){ @@ -572,17 +584,44 @@ public class TransferOutPluginInitializer extends PluginBaseEntity { Assert.state(false,"根据U8C存货基本档案主键:{},U8C公司主键:{},查询U8C存货管理档案不存在。请检查U8C档案",bdInvbasdocEntity.getPkInvbasdoc(),bdCorpEntity.getPkCorp()); } + //结存价 IaMonthledgerEntity iaMonthledgerEntity = new IaMonthledgerEntity(); iaMonthledgerEntity.setPkCorp(bdCorpEntity.getPkCorp()); iaMonthledgerEntity.setCinventoryid(bdInvmandocEntity.getPkInvmandoc()); iaMonthledgerEntity.setFrecordtypeflag("3"); iaMonthledgerEntity.setDataSourceCode(ProfilesActiveConstant.LETS_DATE_SOURCE); List iaMonthledgerEntityList = iaMonthledgerDao.query(iaMonthledgerEntity); - if (iaMonthledgerEntityList.size() == 0) {//没有也没事 - return null; -// Assert.state(false, "该存货名称:{},编码:{},U8C基本档案主键:{},没有进行过结算,请检查",sku.getSkuName(),sku.getSkuCode(),bdInvbasdocEntity.getPkInvbasdoc()); +// if (iaMonthledgerEntityList.size() == 0) {//没有也没事 +// return null; +//// Assert.state(false, "该存货名称:{},编码:{},U8C基本档案主键:{},没有进行过结算,请检查",sku.getSkuName(),sku.getSkuCode(),bdInvbasdocEntity.getPkInvbasdoc()); +// } +// return iaMonthledgerEntityList.get(0); + + if (iaMonthledgerEntityList.size() != 0) { + return iaMonthledgerEntityList.get(0).getNabprice(); + } + + + //取采购价 + List bdInvmandocEntityArrayList1 = new ArrayList<>(); + bdInvmandocEntityArrayList1.add(bdInvmandocEntity); + List poOrderBEntityList = balanceUnitPriceUtil.queryPurchaseUnitPriceByInvcodes(bdInvmandocEntityArrayList1); + if (poOrderBEntityList != null && poOrderBEntityList.size() > 0) { + String norgtaxprice = poOrderBEntityList.get(0).getNorgtaxprice(); + String nordernum = poOrderBEntityList.get(0).getNordernum(); + if ("0".equals(new BigDecimal(norgtaxprice).stripTrailingZeros().toPlainString()) || "0".equals(new BigDecimal(nordernum).stripTrailingZeros().toPlainString())) { + //如果采购单价都为0,那么金额也为0 + totalPayAmount = "0"; + } else { + BigDecimal norgtaxpriceBigDecimal = new BigDecimal(norgtaxprice); + BigDecimal nordernumBigDecimal = new BigDecimal(nordernum); + BigDecimal multiply = norgtaxpriceBigDecimal.multiply(nordernumBigDecimal).setScale(2, BigDecimal.ROUND_HALF_UP); + totalPayAmount = multiply.stripTrailingZeros().toPlainString(); + } + return totalPayAmount; + }else { + return null; } - return iaMonthledgerEntityList.get(0); } } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/GeneralBillVO.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/GeneralBillVO.java index 179f5c2d..dcdd74e4 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/GeneralBillVO.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/GeneralBillVO.java @@ -54,6 +54,10 @@ public class GeneralBillVO { * 备注 */ private String vnote; + /** + * 单据日期 + */ + private String dbilldate; private String pk_defdoc1; private String pk_defdoc10; private String pk_defdoc11;