diff --git a/.classpath b/.classpath index 74cbf75..55fee7b 100644 --- a/.classpath +++ b/.classpath @@ -55,7 +55,16 @@ - + + + + + + + + + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs index 99f26c0..1df7838 100644 --- a/.settings/org.eclipse.core.resources.prefs +++ b/.settings/org.eclipse.core.resources.prefs @@ -1,2 +1,4 @@ eclipse.preferences.version=1 -encoding/=UTF-8 +encoding//mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMORowFinishBP.java=gbk +encoding//uapbd/src/private/nc/bs/uapbd/bip/workplugin/ErpSaleOrderToBIPBackgroupWorkPlugin.java=UTF-8 +encoding/=gbk diff --git a/arap/src/private/nc/bs/arap/actions/GatheringbillEditSaveBatchBSAction.java b/arap/src/private/nc/bs/arap/actions/GatheringbillEditSaveBatchBSAction.java index a49745c..27127ea 100644 --- a/arap/src/private/nc/bs/arap/actions/GatheringbillEditSaveBatchBSAction.java +++ b/arap/src/private/nc/bs/arap/actions/GatheringbillEditSaveBatchBSAction.java @@ -41,34 +41,34 @@ public class GatheringbillEditSaveBatchBSAction extends BillUpdateBatchBSAction } /** - * 收款单保存校验关联的销售订单实际收款金额是否超过价税合计 + * տУ۶ʵտǷ񳬹˰ϼ */ int i = 0; for(AggregatedValueObject bill : bills) { AggregatedValueObject oriBill = orginBills[i++]; - BaseBillVO billVO = (BaseBillVO) bill.getParentVO(); //修改的收款单 - BaseBillVO billOriVO = (BaseBillVO) oriBill.getParentVO(); //之前的收款单 - UFDouble money = billVO.getMoney(); //修改后的金额 - UFDouble oriMoney = billOriVO.getMoney(); //修改前的金额 + BaseBillVO billVO = (BaseBillVO) bill.getParentVO(); //޸ĵտ + BaseBillVO billOriVO = (BaseBillVO) oriBill.getParentVO(); //֮ǰտ + UFDouble money = billVO.getMoney(); //޸ĺĽ + UFDouble oriMoney = billOriVO.getMoney(); //޸ǰĽ String pk_tradetype = billVO.getPk_tradetype(); if(!"F2-Cxx-02".equals(pk_tradetype)){ continue; } - String def3 = billVO.getDef3(); //收款单对应的销售订单id + String def3 = billVO.getDef3(); //տӦ۶id if(StringUtil.isEmpty(def3) || "N".equals(def3) || "~".equals(def3)){ - //无绑定的销售订单则下一次循环 + //ް󶨵۶һѭ continue; } - //计算收款单金额差值 + //տֵ UFDouble changeMoney = money.sub(oriMoney); - //根据销售订单id去查询销售订单 + //۶idȥѯ۶ BaseDAO dao = new BaseDAO(); String sql = "select nreceivedmny,ntotalorigmny from so_saleorder where dr = 0 and csaleorderid = '" +def3+"'"; Map saleMap = (Map)dao.executeQuery(sql, new MapProcessor()); - //销售订单价税合计 + //۶˰ϼ UFDouble ntotalorigmny = UFDouble.ZERO_DBL; - //销售订单实际收款金额 + //۶ʵտ UFDouble nreceivedmny = UFDouble.ZERO_DBL; if(saleMap != null) { nreceivedmny = new UFDouble(saleMap.get("nreceivedmny") == null ? "0" : saleMap.get("nreceivedmny").toString()); @@ -76,7 +76,7 @@ public class GatheringbillEditSaveBatchBSAction extends BillUpdateBatchBSAction } UFDouble moreMoney = nreceivedmny.add(changeMoney).sub(ntotalorigmny); if(nreceivedmny.add(changeMoney).compareTo(ntotalorigmny) > 0){ - throw new BusinessException("【该笔收款已超销售订单"+ moreMoney +"元,无法传输!请检查订单累计收款金额!】"); + throw new BusinessException("ñտѳ۶"+ moreMoney +"Ԫ޷䣡鶩ۼտ"); } } diff --git a/arap/src/private/nc/bs/arap/actions/GatheringbillSaveBatchBSAction.java b/arap/src/private/nc/bs/arap/actions/GatheringbillSaveBatchBSAction.java index 00be7a2..0bb5e58 100644 --- a/arap/src/private/nc/bs/arap/actions/GatheringbillSaveBatchBSAction.java +++ b/arap/src/private/nc/bs/arap/actions/GatheringbillSaveBatchBSAction.java @@ -59,29 +59,29 @@ public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction { ArapBillVOUtils.setDefaultSettleFlag(bills); /** - * 收款单保存校验关联的销售订单实际收款金额是否超过价税合计 + * տУ۶ʵտǷ񳬹˰ϼ */ for(AggregatedValueObject bill : bills) { - BaseBillVO billVO = (BaseBillVO) bill.getParentVO(); //修改的收款单 - UFDouble money = billVO.getMoney(); //金额 + BaseBillVO billVO = (BaseBillVO) bill.getParentVO(); //޸ĵտ + UFDouble money = billVO.getMoney(); // String pk_tradetype = billVO.getPk_tradetype(); if(!"F2-Cxx-02".equals(pk_tradetype)){ continue; } - String def3 = billVO.getDef3(); //收款单对应的销售订单id + String def3 = billVO.getDef3(); //տӦ۶id if(StringUtil.isEmpty(def3) || "N".equals(def3) || "~".equals(def3)){ - //无绑定的销售订单则下一次循环 + //ް󶨵۶һѭ continue; } - //根据销售订单id去查询销售订单 + //۶idȥѯ۶ BaseDAO dao = new BaseDAO(); String sql = "select nreceivedmny,ntotalorigmny from so_saleorder where dr = 0 and csaleorderid = '" +def3+"'"; Map saleMap = (Map)dao.executeQuery(sql, new MapProcessor()); - //销售订单价税合计 + //۶˰ϼ UFDouble ntotalorigmny = UFDouble.ZERO_DBL; - //销售订单实际收款金额 + //۶ʵտ UFDouble nreceivedmny = UFDouble.ZERO_DBL; if(saleMap != null) { nreceivedmny = new UFDouble(saleMap.get("nreceivedmny") == null ? "0" : saleMap.get("nreceivedmny").toString()); @@ -89,7 +89,7 @@ public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction { } UFDouble moreMoney = nreceivedmny.add(money).sub(ntotalorigmny); if(nreceivedmny.add(money).compareTo(ntotalorigmny) > 0){ - throw new BusinessException("【该笔收款已超销售订单"+ moreMoney +"元,无法传输!请检查订单累计收款金额!】"); + throw new BusinessException("ñտѳ۶"+ moreMoney +"Ԫ޷䣡鶩ۼտ"); } } } diff --git a/fbm/src/private/nc/impl/fbm/gather/GatherManageServiceImpl.java b/fbm/src/private/nc/impl/fbm/gather/GatherManageServiceImpl.java index fbfd35c..1180d82 100644 --- a/fbm/src/private/nc/impl/fbm/gather/GatherManageServiceImpl.java +++ b/fbm/src/private/nc/impl/fbm/gather/GatherManageServiceImpl.java @@ -173,7 +173,7 @@ public class GatherManageServiceImpl implements IGatherManageService { ICustsupPubService cusService = (ICustsupPubService) NCLocator.getInstance().lookup(ICustsupPubService.class); String paybillunit = registervo.getPaybillunit(); String entrustedpaybillunit = registervo.getEntrustedpaybillunit(); - // zhangxinah 去掉收票单位校验 + // zhangxinah ȥƱλУ if (StringUtil.isNull(paybillunit) && StringUtil.isNull(entrustedpaybillunit)) { throw new BusinessException(NCLangRes4VoTransl.getNCLangRes().getStrByID("3618ncc1_0", "03618ncc1-0000") + NCLangRes4VoTransl.getNCLangRes().getStrByID("3618ncc1_0", "03618ncc1-0000") @@ -1374,7 +1374,7 @@ public class GatherManageServiceImpl implements IGatherManageService { throw new BusinessException(obj.getExceptionMsg()); } - Logger.debug("快速导入已完成"); + Logger.debug("ٵ"); } private void checkOrgIsExist(String pk_org) throws BusinessException { @@ -1904,7 +1904,7 @@ public class GatherManageServiceImpl implements IGatherManageService { AggRegisterVO[] aggVOs = gatherService.getAggVOsByPKs(pk_registers); if (ArrayUtils.isEmpty(aggVOs)) { - throw new BusinessException("传入AggRegisterVO数组为空,请检查"); + throw new BusinessException("AggRegisterVOΪգ"); } GatherCheckUtil.checkSameOrgCurr(aggVOs); GatherCheckUtil.checkSamePaybillunit(aggVOs); diff --git a/fbm/src/private/nccloud/impl/fbm/gather/excel/GatherExcelImport4NCCImpl.java b/fbm/src/private/nccloud/impl/fbm/gather/excel/GatherExcelImport4NCCImpl.java index 079a4e1..86f4b3b 100644 --- a/fbm/src/private/nccloud/impl/fbm/gather/excel/GatherExcelImport4NCCImpl.java +++ b/fbm/src/private/nccloud/impl/fbm/gather/excel/GatherExcelImport4NCCImpl.java @@ -113,7 +113,7 @@ public class GatherExcelImport4NCCImpl extends AbstractImportProceeWithContext { throw new BusinessException( var10002 + NCLangRes4VoTransl.getNCLangRes().getStrByID("3618ncc_0", "03618ncc-0078")); } -//zhangxinah 去掉银行账户是否电票签约账户的校验 +//zhangxinah ȥ˻ǷƱǩԼ˻У // if (!accbasVO.getIsenableelecbill().booleanValue()) { // var10002 = pvo.getFbmbillno(); // throw new BusinessException( @@ -201,7 +201,7 @@ public class GatherExcelImport4NCCImpl extends AbstractImportProceeWithContext { pvo.setBillrange(var10001 + "-" + pvo.getBillrangeend()); } else if (ifBelongNewbillSys) { if (!"0".equals(pvo.getBillrangestart()) || !"0".equals(pvo.getBillrangeend())) { - throw new BusinessException("票据[" + pvo.getFbmbillno() + "]为新一代票且不可分包流转,子票区间开始和结束应为0!"); + throw new BusinessException("Ʊ[" + pvo.getFbmbillno() + "]ΪһƱҲɷְתƱ俪ʼͽӦΪ0"); } pvo.setBillrange(String.valueOf("0")); diff --git a/fbm/src/public/nc/vo/fbm/pub/util/FbmCommonTools.java b/fbm/src/public/nc/vo/fbm/pub/util/FbmCommonTools.java index 242c69a..888b82a 100644 --- a/fbm/src/public/nc/vo/fbm/pub/util/FbmCommonTools.java +++ b/fbm/src/public/nc/vo/fbm/pub/util/FbmCommonTools.java @@ -133,7 +133,7 @@ public class FbmCommonTools { fbmbillno + NCLangRes4VoTransl.getNCLangRes().getStrByID("3618nccd_0", "03618nccd--186")); } else { - // zhangxinah 去掉收票登记导入时票据长度校验 + // zhangxinah ȥƱǼǵʱƱݳУ // checkFbmbillnoLength(fbmbillno); if (fbmbillno.length() > 16) { eBillNoCheck(fbmbillno); @@ -196,7 +196,7 @@ public class FbmCommonTools { private static void eBillNoCheck(String fbmno) throws BusinessException { Pattern pattern = Pattern.compile("\\d{30}"); Boolean ismatch = pattern.matcher(fbmno).matches(); - // 电票不校验票据号长度 + // ƱУƱݺų ismatch = true; if (!ismatch) { throw new BusinessException( @@ -353,7 +353,7 @@ public class FbmCommonTools { && BillRangeTools .handleBillRange(register.getBillrangestart()) <= billrangeend)) { throw new BusinessException( - "票据号码" + fbmBillNo + "子票区间" + billrangestart + "-" + billrangeend + "已存在"); + "Ʊݺ" + fbmBillNo + "Ʊ" + billrangestart + "-" + billrangeend + "Ѵ"); } } } @@ -371,8 +371,8 @@ public class FbmCommonTools { Integer total = billrangeend - billrangestart + 1; UFDouble count = (new UFDouble("0.01")).multiply((double) total); if (count.compareTo(money) != 0) { - throw new BusinessException("票据号码" + registerVO.getFbmbillno() + "子票区间" + billrangestart + "-" - + billrangeend + "的金额" + count.toString() + "与票据金额不相等,请修改"); + throw new BusinessException("Ʊݺ" + registerVO.getFbmbillno() + "Ʊ" + billrangestart + "-" + + billrangeend + "Ľ" + count.toString() + "Ʊݽȣ޸"); } } @@ -420,17 +420,17 @@ public class FbmCommonTools { String billRangeEnd = registerVO.getBillrangeend(); String firstNum = registerVO.getFbmbillno().substring(0, 1); if (isEbill && !"5".equals(firstNum) && !"6".equals(firstNum)) { - throw new BusinessException("票据" + registerVO.getFbmbillno() + "非新一代票据,不可进行分包流转!"); + throw new BusinessException("Ʊ" + registerVO.getFbmbillno() + "һƱݣɽзְת"); } if (StringUtil.isNull(billRangeStart) || StringUtil.isNull(billRangeEnd)) { - throw new BusinessException("票据可分包流转状态下,票据子票区间开始和截止值不能为空!"); + throw new BusinessException("Ʊݿɷְת״̬£ƱƱ俪ʼͽֵֹΪգ"); } if (Long.valueOf(billRangeStart) > 0L && Long.valueOf(billRangeEnd) > 0L) { if (billRangeStart.length() >= 12 && billRangeEnd.length() >= 12) { if (Long.parseLong(billRangeEnd) < Long.parseLong(billRangeStart)) { - throw new BusinessException("子票区间截止值不能小于开始值!"); + throw new BusinessException("ƱֵֹСڿʼֵ"); } checkMoneyFormatCorrect(registerVO.getMoney()); @@ -439,25 +439,25 @@ public class FbmCommonTools { UFDouble diffMoney = (new UFDouble(rangeDiff)).add(1.0).multiply(0.01); RegisterVO newRegisterVO = calcMoneyPrecision(registerVO, diffMoney); if (newRegisterVO.getMoney().doubleValue() != registerVO.getMoney().doubleValue()) { - throw new BusinessException("票据号码" + registerVO.getFbmbillno() + ",子票区间" + billRangeStart - + "-" + billRangeEnd + "的金额" + newRegisterVO.getMoney().toString() - + "(根据公式自动计算出的金额)与票据金额不相等,请修改!"); + throw new BusinessException("Ʊݺ" + registerVO.getFbmbillno() + "Ʊ" + billRangeStart + + "-" + billRangeEnd + "Ľ" + newRegisterVO.getMoney().toString() + + "ݹʽԶĽƱݽȣ޸ģ"); } if (!isEbill) { - throw new BusinessException("纸票不能进行分包流转!"); + throw new BusinessException("ֽƱܽзְת"); } if (Long.parseLong(billRangeEnd) < Long.parseLong(billRangeStart)) { - throw new BusinessException("子票区间截止值不能小于开始值!"); + throw new BusinessException("ƱֵֹСڿʼֵ"); } break label101; } - throw new BusinessException("子票区间开始值和截止值长度都必须为12位!"); + throw new BusinessException("Ʊ俪ʼֵͽֵֹȶΪ12λ"); } - throw new BusinessException("子票区间开始值和截止值都必须大于0!"); + throw new BusinessException("Ʊ俪ʼֵͽֵֹ0"); } } @@ -474,10 +474,10 @@ public class FbmCommonTools { } } else { - throw new BusinessException("非新一代票据不可进行分包流转,不可输入子票区间!"); + throw new BusinessException("һƱݲɽзְתƱ䣡"); } } else { - throw new BusinessException("票据[" + registerVO.getFbmbillno() + "]为新一代票且不可分包流转,子票区间开始和结束应为0!"); + throw new BusinessException("Ʊ[" + registerVO.getFbmbillno() + "]ΪһƱҲɷְתƱ俪ʼͽӦΪ0"); } } @@ -495,20 +495,20 @@ public class FbmCommonTools { if (ifIncludesInterval(register, newRegisterVO)) { var10002 = register.getparentVO().getFbmbillno(); throw new BusinessException( - "票据号码" + var10002 + ",子票区间" + register.getparentVO().getBillrangestart() + "-" + "Ʊݺ" + var10002 + "Ʊ" + register.getparentVO().getBillrangestart() + "-" + register.getparentVO().getBillrangeend() - + "已存在,请勿重复录入,请在票据台账节点查询该票据号对应单据是否处理完成!"); + + "Ѵڣظ¼룬Ʊ̨˽ڵѯƱݺŶӦǷɣ"); } return null; } - throw new BusinessException("票据号[" + newRegisterVO.getFbmbillno() + "]已存在,且为等分票据,不可再登记非等分票据信息!"); + throw new BusinessException("Ʊݺ[" + newRegisterVO.getFbmbillno() + "]ѴڣΪȷƱݣٵǼǷǵȷƱϢ"); } if (!StringUtil.isNull(newRegisterVO.getBillrangestart()) && !StringUtil.isNull(newRegisterVO.getBillrangeend())) { - return "票据号[" + newRegisterVO.getFbmbillno() + "]已存在,且为非等分票据,不可再登记等分票据信息!"; + return "Ʊݺ[" + newRegisterVO.getFbmbillno() + "]ѴڣΪǵȷƱݣٵǼǵȷƱϢ"; } throw new BusinessException(NCLangRes4VoTransl.getNCLangRes().getStrByID("3618fbm_0", "03618fbm-0598", @@ -516,7 +516,7 @@ public class FbmCommonTools { } else if (registers != null && registers.length > 1) { if (StringUtil.isNull(newRegisterVO.getBillrangestart()) || StringUtil.isNull(newRegisterVO.getBillrangeend())) { - throw new BusinessException("票据号[" + newRegisterVO.getFbmbillno() + "]已存在,且为等分票据,不可再登记非等分票据信息!"); + throw new BusinessException("Ʊݺ[" + newRegisterVO.getFbmbillno() + "]ѴڣΪȷƱݣٵǼǷǵȷƱϢ"); } AggRegisterVO[] var7 = registers; @@ -526,20 +526,20 @@ public class FbmCommonTools { AggRegisterVO vo = var7[var4]; if (ifIncludesInterval(vo, newRegisterVO)) { var10002 = vo.getparentVO().getFbmbillno(); - throw new BusinessException("票据号码" + var10002 + ",子票区间" + vo.getparentVO().getBillrangestart() - + "-" + vo.getparentVO().getBillrangeend() + "已存在,请勿重复录入,请在票据台账节点查询该票据号对应单据是否处理完成!"); + throw new BusinessException("Ʊݺ" + var10002 + "Ʊ" + vo.getparentVO().getBillrangestart() + + "-" + vo.getparentVO().getBillrangeend() + "Ѵڣظ¼룬Ʊ̨˽ڵѯƱݺŶӦǷɣ"); } } } } else { if (registers == null || registers.length == 0) { - throw new BusinessException("修改失败,票据" + newRegisterVO.getFbmbillno() + "数据不存在!"); + throw new BusinessException("޸ʧܣƱ" + newRegisterVO.getFbmbillno() + "ݲڣ"); } if (registers != null && registers.length > 1) { if (newRegisterVO.getSubcontractcirculation() != null && !newRegisterVO.getSubcontractcirculation().booleanValue()) { - throw new BusinessException("票据号码 " + newRegisterVO.getFbmbillno() + "作为等分票据已拆包,无法再变更为非等分票据!"); + throw new BusinessException("Ʊݺ " + newRegisterVO.getFbmbillno() + "ΪȷƱѲ޷ٱΪǵȷƱݣ"); } boolean intervalRepeat = false; @@ -551,7 +551,7 @@ public class FbmCommonTools { if (StringUtil.isNull(vo.getparentVO().getBillrangestart()) || StringUtil.isNull(vo.getparentVO().getBillrangeend())) { throw new BusinessException( - "修改失败,票据 " + newRegisterVO.getFbmbillno() + "既存在等分票据数据,又存在非等分票据数据!"); + "޸ʧܣƱ " + newRegisterVO.getFbmbillno() + "ȴڵȷƱݣִڷǵȷƱݣ"); } if (vo.getparentVO().getPk_register().equals(newRegisterVO.getPk_register())) { @@ -566,8 +566,8 @@ public class FbmCommonTools { if (intervalRepeat) { var10002 = newRegisterVO.getFbmbillno(); - throw new BusinessException("票据号码" + var10002 + ",子票区间" + newRegisterVO.getBillrangestart() + "-" - + newRegisterVO.getBillrangeend() + "已存在,请勿重复录入,请在票据台账节点查询该票据号对应单据是否处理完成!"); + throw new BusinessException("Ʊݺ" + var10002 + "Ʊ" + newRegisterVO.getBillrangestart() + "-" + + newRegisterVO.getBillrangeend() + "Ѵڣظ¼룬Ʊ̨˽ڵѯƱݺŶӦǷɣ"); } } } @@ -632,7 +632,7 @@ public class FbmCommonTools { && !(standardAmountMultiplier.sub(new UFDouble(roundmum)).doubleValue() < 0.0)) { return roundmum; } else { - throw new BusinessException("等分票据的票据金额要等于标准金额的整数倍,请修改!"); + throw new BusinessException("ȷƱݵƱݽҪڱ׼޸ģ"); } } } diff --git a/ic/src/public/nccloud/resources/ic/ic/saleout/saveBeforeCheck.java b/ic/src/public/nccloud/resources/ic/ic/saleout/saveBeforeCheck.java index d748044..c2e1861 100644 --- a/ic/src/public/nccloud/resources/ic/ic/saleout/saveBeforeCheck.java +++ b/ic/src/public/nccloud/resources/ic/ic/saleout/saveBeforeCheck.java @@ -24,9 +24,9 @@ import java.time.LocalDateTime; /** - * 发货时保存时验证销售订单累计发货数量,并校验销售发票标识,并验证发货款比例 + * ʱʱ֤۶ۼƷУ۷Ʊʶ֤ * zhangxinah - * 2005适配2312 + * 20052312 */ public class saveBeforeCheck implements IBusinessListener { @@ -38,7 +38,7 @@ public class saveBeforeCheck implements IBusinessListener { if (event != null) { Map map = this.getBills(event); SaleOutVO[] obills = map.get("obj"); - // 判断是否是需要控制的业务单元 + // жǷҪƵҵԪ SaleOutHeadVO parentVO = obills[0].getHead(); String pkstockorgStr = getPk_stockorg(parentVO.getPk_org()); if (pkstockorgStr == null || pkstockorgStr.equals("")) { @@ -51,7 +51,7 @@ public class saveBeforeCheck implements IBusinessListener { if (valMap == null || valMap.isEmpty()) { return; } - // 历史数据不考虑 + // ʷݲ String storedDateStr = (String) valMap.get("creationtime"); String targetDateStr = "2024-12-31 00:00:00"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); @@ -60,51 +60,51 @@ public class saveBeforeCheck implements IBusinessListener { if (storedDate.isBefore(targetDate)) { return; } - // 销售发票表头pk_billtypecode=30-Cxx-12 + // ۷Ʊͷpk_billtypecode=30-Cxx-12 if (valMap.get("pk_billtypecode").equals("30-Cxx-12") || valMap.get("pk_billtypecode").equals("30-Cxx-02") || valMap.get("pk_billtypecode").equals("30-Cxx-08") || valMap.get("pk_billtypecode").equals("30-Cxx-13")) { return; } - // 销售发票表头vdef21=是 + // ۷Ʊͷvdef21= if (valMap.get("vdef20") == null || !valMap.get("vdef20").equals("Y")) { - throw new BusinessException("销售出库单明细" + (i + 1) + ",销售发票验证不通过,无法保存!"); + throw new BusinessException("۳ⵥϸ" + (i + 1) + "۷Ʊ֤ͨ޷棡"); } if (valMap.get("sqty") == null) { - throw new BusinessException("销售出库单明细" + (i + 1) + ",累计发货申请数量为0,无法保存!"); + throw new BusinessException("۳ⵥϸ" + (i + 1) + "ۼƷΪ0޷棡"); } else { try { - double sQty = Double.parseDouble((String) valMap.get("sqty"));// 累计发货申请数量 - UFDouble bdnumUF = vo.getNshouldassistnum();// 本单应发数量 + double sQty = Double.parseDouble((String) valMap.get("sqty"));// ۼƷ + UFDouble bdnumUF = vo.getNshouldassistnum();// Ӧ double bdnum = 0; if (bdnumUF != null) { bdnum = bdnumUF.getDouble(); } - // 应发数量判断 + // Ӧж Object ntotaloutnumsObj = valMap.get("ntotaloutnums"); String ntotaloutnums = (ntotaloutnumsObj != null) ? ntotaloutnumsObj.toString() : ""; - double ntotaloutnum = (ntotaloutnums.isEmpty()) ? 0 : Double.parseDouble(ntotaloutnums);// 累计出库主数量 + double ntotaloutnum = (ntotaloutnums.isEmpty()) ? 0 : Double.parseDouble(ntotaloutnums);// ۼƳ if (sQty < (ntotaloutnum + bdnum)) { - throw new BusinessException("销售出库单明细" + (i + 1) + ",累计出库应发数量'" + (ntotaloutnum + bdnum) - + "'大于销售订单累计发货申请数量'" + sQty + "',无法保存!"); + throw new BusinessException("۳ⵥϸ" + (i + 1) + "ۼƳӦ'" + (ntotaloutnum + bdnum) + + "'۶ۼƷ'" + sQty + "'޷棡"); } - // 实发数量判断 - UFDouble bdsfnumUF = vo.getNassistnum();// 本单实发数量 + // ʵж + UFDouble bdsfnumUF = vo.getNassistnum();// ʵ double bdsfnum = 0; if (bdsfnumUF != null) { bdsfnum = bdsfnumUF.getDouble(); } Object nassistnumObj = valMap.get("nassistnum"); String nassistnums = (nassistnumObj != null) ? nassistnumObj.toString() : ""; - double nassistnum = (nassistnums.isEmpty()) ? 0 : Double.parseDouble(nassistnums);// 累计出库主数量 + double nassistnum = (nassistnums.isEmpty()) ? 0 : Double.parseDouble(nassistnums);// ۼƳ if (sQty < (nassistnum + bdsfnum)) { - throw new BusinessException("销售出库单明细" + (i + 1) + ",累计出库实发数量'" + (nassistnum + bdsfnum) - + "'大于销售订单累计发货申请数量'" + sQty + "',无法保存!"); + throw new BusinessException("۳ⵥϸ" + (i + 1) + "ۼƳʵ'" + (nassistnum + bdsfnum) + + "'۶ۼƷ'" + sQty + "'޷棡"); } } catch (NumberFormatException e) { - throw new BusinessException("累计发货申请数量、累计出库数量转化数值失败" + e); + throw new BusinessException("ۼƷۼƳתֵʧ" + e); } } @@ -142,7 +142,7 @@ public class saveBeforeCheck implements IBusinessListener { Object object = null; Object old = null; Map retMap = new HashMap<>(); - // 类型判断和赋值 + // жϺ͸ֵ if (event instanceof BusinessEvent) { BusinessEvent bills = (BusinessEvent) event; object = bills.getObject(); @@ -155,17 +155,17 @@ public class saveBeforeCheck implements IBusinessListener { object = e.getNewObjs(); old = e.getOldObjs(); } else { - throw new BusinessException("未找到单据类型"); + throw new BusinessException("δҵ"); } - // 将 object 和 old 转换为 SaleOutVO[] 并添加到 retMap + // object old תΪ SaleOutVO[] ӵ retMap retMap.put("new", toSaleOutVOArray(object)); retMap.put("old", toSaleOutVOArray(old)); - // 根据 new 或 old 来设置 "obj" + // new old "obj" retMap.put("obj", retMap.get("new") != null ? retMap.get("new") : retMap.get("old")); return retMap; } - // 辅助方法:将对象转换为 SaleOutVO 数组 + // תΪ SaleOutVO private SaleOutVO[] toSaleOutVOArray(Object object) { if (object == null) { return null; diff --git a/mmpac/src/private/nc/bs/mmpac/pickm/bp/rule/PickmFillInfoFormMORule.java b/mmpac/src/private/nc/bs/mmpac/pickm/bp/rule/PickmFillInfoFormMORule.java index d5cbc68..bd95b22 100644 --- a/mmpac/src/private/nc/bs/mmpac/pickm/bp/rule/PickmFillInfoFormMORule.java +++ b/mmpac/src/private/nc/bs/mmpac/pickm/bp/rule/PickmFillInfoFormMORule.java @@ -23,14 +23,14 @@ public class PickmFillInfoFormMORule implements IRule { return; } try { - //流程生产订单表体主键 + // Set bmopksSet = new HashSet<>(); Arrays.stream(vos).forEach(aggPickmVO -> bmopksSet.add(aggPickmVO.getParentVO().getVsourcemorowid())); IPMOQueryService ipmoQueryService = NCLocator.getInstance().lookup(IPMOQueryService.class); Map pMOItemVOMap = ipmoQueryService.queryItemBybid(bmopksSet.toArray(new String[0])); Arrays.stream(vos).forEach(aggPickmVO -> { - //生产订单行主键 + // String vsourcemorowid = aggPickmVO.getParentVO().getVsourcemorowid(); PickmItemVO[] children = (PickmItemVO[])aggPickmVO.getChildren(PickmItemVO.class); if(!MMValueCheck.isNotEmpty(children)){ @@ -38,9 +38,9 @@ public class PickmFillInfoFormMORule implements IRule { } for (PickmItemVO pickmItemVO : children) { PMOItemVO pmoItemVO = pMOItemVOMap.get(vsourcemorowid); - pickmItemVO.setVbdef5(pmoItemVO.getVdef1());//合同编号 - pickmItemVO.setVbdef6(pmoItemVO.getVdef2());//合同销售订单号 - pickmItemVO.setVbdef7(pmoItemVO.getVdef7());//标前项目号 + pickmItemVO.setVbdef5(pmoItemVO.getVdef1());//ͬ + pickmItemVO.setVbdef6(pmoItemVO.getVdef2());//ͬ۶ + pickmItemVO.setVbdef7(pmoItemVO.getVdef7());//ǰĿ } }); } catch (BusinessException e) { diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOFinishBP.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOFinishBP.java index fb11fc9..92c1948 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOFinishBP.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOFinishBP.java @@ -43,7 +43,7 @@ public class PMOFinishBP { private void addFinishAfterRule(CompareAroundProcesser processer) { IRule finishPutPlanRule = new PMOFinishAutoFinishPutPlanRule(); processer.addAfterRule(finishPutPlanRule); - /** 同步修改备料计划完成(生产订单强制完工时) */ + /** ͬ޸ıϼƻ(ǿ깤ʱ) */ IRule pMOToFinishPickMRule = new PMOToFinishPickMRule(); processer.addAfterRule(pMOToFinishPickMRule); } diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMORowFinishBP.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMORowFinishBP.java index 7640377..ac9d2e4 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMORowFinishBP.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMORowFinishBP.java @@ -88,7 +88,7 @@ public class PMORowFinishBP { returnvos[0].setChildrenVO((CircularlyAccessibleValueObject[])newitemMap.values().toArray(new PMOItemVO[0])); processer.after(returnvos, returnvos); - /** 同步修改备料计划完成(生产订单强制完工时) */ + /** ͬ޸ıϼƻ(ǿ깤ʱ) */ IRule pMOToFinishPickMRule = new PMOToFinishPickMRule(); pMOToFinishPickMRule.process(newaggvos); /** ******************** */ diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/putBeforeCheckRule.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/putBeforeCheckRule.java index d1f1f11..b24b5da 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/putBeforeCheckRule.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/putBeforeCheckRule.java @@ -20,7 +20,7 @@ import nc.vo.so.m30.entity.SaleOrderBVO; //import nc.bs.rbac.bizlistener.BaseDocDataPermChangeEventListener; //import nc.impl.mmpac.pmo.pac0002.PMOTransTypeQueryServiceImpl; //import nc.impl.mmpac.bcrule.predata.BarCodeDataInitListener; -//import nc.ui.mmpub.setanalysis.action.SaAnalysisAction.actionPerformed;//流程生产订单齐套分析-分析 +//import nc.ui.mmpub.setanalysis.action.SaAnalysisAction.actionPerformed;//׷- //import nc.impl.mmpub.setanalysis.SetAnalysisServiceImpl; import nc.bs.mmpac.pmo.pac0002.bp.PMORowPutBP; @@ -38,7 +38,7 @@ public class putBeforeCheckRule implements IRule { // TODO Auto-generated method stub List list = new ArrayList(); for (PMOAggVO vo : vos) { - //判断是否是需要控制的业务单元 + //жǷҪƵҵԪ PMOHeadVO pmoHeadVO = vo.getParentVO(); String pkstockorgStr = getPk_stockorg(pmoHeadVO.getPk_org()); if (pkstockorgStr == null || pkstockorgStr.equals("")) { @@ -47,16 +47,16 @@ public class putBeforeCheckRule implements IRule { PMOItemVO[] iSuperVOs = vo.getChildrenVO(); for (int i = 0; i < iSuperVOs.length; i++) { PMOItemVO itemvo = iSuperVOs[i]; - //判断是否类型是否为30 + //жǷǷΪ30 if (itemvo.getVsrctype() == null || !itemvo.getVsrctype().equals("30")) { return; } Map valMap = getVbdef6(itemvo.getVsrcbid()); - //销售发票表头pk_billtypecode=30-Cxx-12 + //۷Ʊͷpk_billtypecode=30-Cxx-12 if (valMap.get("pk_billtypecode").equals("30-Cxx-12")||valMap.get("pk_billtypecode").equals("30-Cxx-02")||valMap.get("pk_billtypecode").equals("30-Cxx-08")||valMap.get("pk_billtypecode").equals("30-Cxx-13")) { return; } - //历史数据不考虑 + //ʷݲ String storedDateStr = (String) valMap.get("creationtime"); String targetDateStr = "2024-12-31 00:00:00"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); @@ -65,15 +65,15 @@ public class putBeforeCheckRule implements IRule { if (storedDate.isBefore(targetDate)) { return; } - String vdef4Str = itemvo.getVdef4();//齐套率 + String vdef4Str = itemvo.getVdef4();// String vdef4 = (vdef4Str != null) ? vdef4Str.toString() : ""; - double vdef4qty = (vdef4.isEmpty()) ? 0 : Double.parseDouble(vdef4);//齐套率 - String vdef10Str = itemvo.getVdef10();//齐套率标准 + double vdef4qty = (vdef4.isEmpty()) ? 0 : Double.parseDouble(vdef4);// + String vdef10Str = itemvo.getVdef10();//ʱ׼ String vdef10 = (vdef10Str != null) ? vdef10Str.toString() : ""; - double vdef10qty = (vdef10.isEmpty()) ? 0 : Double.parseDouble(vdef10);//齐套率标准 + double vdef10qty = (vdef10.isEmpty()) ? 0 : Double.parseDouble(vdef10);//ʱ׼ if (vdef4qty < vdef10qty) { throw new BusinessException( - "齐套率" + vdef4qty + "小于齐套率标准'" + vdef10qty + "',无法保存!"); + "" + vdef4qty + "Сʱ׼'" + vdef10qty + "'޷棡"); } } diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/saveBeforeCheckRule.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/saveBeforeCheckRule.java index 5e56d69..dad157c 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/saveBeforeCheckRule.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/saveBeforeCheckRule.java @@ -17,8 +17,8 @@ import nc.vo.pub.BusinessException; import nc.vo.so.m30.entity.SaleOrderBVO; /** - * 流程生成订单保存时验证销售订单累计排产状态,并验收首付款比例 - * zhangxinah 适配2312 + * ɶʱ֤۶ۼŲ״̬׸ + * zhangxinah 2312 */ public class saveBeforeCheckRule implements IRule { @@ -28,7 +28,7 @@ public class saveBeforeCheckRule implements IRule { try { List list = new ArrayList(); for (PMOAggVO vo : vos) { - //判断是否是需要控制的业务单元 + //жǷҪƵҵԪ PMOHeadVO pmoHeadVO = vo.getParentVO(); String pkstockorgStr = getPk_stockorg(pmoHeadVO.getPk_org()); if (pkstockorgStr == null || pkstockorgStr.equals("")) { @@ -37,20 +37,20 @@ public class saveBeforeCheckRule implements IRule { PMOItemVO[] iSuperVOs = vo.getChildrenVO(); for (int i = 0; i < iSuperVOs.length; i++) { PMOItemVO itemvo = iSuperVOs[i]; - //判断是否类型是否为30 + //жǷǷΪ30 if (itemvo.getVsrctype() == null || !itemvo.getVsrctype().equals("30")) { return; } Map valMap = getVbdef6(itemvo.getVsrcbid()); if (valMap == null || valMap.isEmpty()) { - throw new BusinessException("无法关联到销售订单,无法保存!"); + throw new BusinessException("޷۶޷棡"); } - //销售发票表头pk_billtypecode=30-Cxx-12 + //۷Ʊͷpk_billtypecode=30-Cxx-12 if (valMap.get("pk_billtypecode").equals("30-Cxx-12")||valMap.get("pk_billtypecode").equals("30-Cxx-02")||valMap.get("pk_billtypecode").equals("30-Cxx-08")||valMap.get("pk_billtypecode").equals("30-Cxx-13")) { return; } - //历史数据不考虑 + //ʷݲ String storedDateStr = (String) valMap.get("creationtime"); String targetDateStr = "2024-12-27 00:00:00"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); @@ -61,22 +61,22 @@ public class saveBeforeCheckRule implements IRule { } if (valMap.get("vbdef12") == null) { throw new BusinessException( - "生产订单明细" + (i + 1) + ",累计排产申请数量为0,无法保存!"); + "ϸ" + (i + 1) + "ۼŲΪ0޷棡"); } else { try { - double sQty = Double.parseDouble((String) valMap.get("vbdef12"));//累计排产申请数量 + double sQty = Double.parseDouble((String) valMap.get("vbdef12"));//ۼŲ Object ntotaloutnumsObj = valMap.get("nastnum"); String ntotaloutnums = (ntotaloutnumsObj != null) ? ntotaloutnumsObj.toString() : ""; double ntotaloutnum = - (ntotaloutnums.isEmpty()) ? 0 : Double.parseDouble(ntotaloutnums);//累计生产数量 + (ntotaloutnums.isEmpty()) ? 0 : Double.parseDouble(ntotaloutnums);//ۼ double bdnum = itemvo.getNastnum().getDouble(); if (sQty < (ntotaloutnum + bdnum)) { throw new BusinessException( - "生产订单明细" + (i + 1) + ",累计生产数量'" + (ntotaloutnum + bdnum) - + "'大于销售订单累计排产申请数量'" + sQty + "',无法保存!"); + "ϸ" + (i + 1) + "ۼ'" + (ntotaloutnum + bdnum) + + "'۶ۼŲ'" + sQty + "'޷棡"); } } catch (NumberFormatException e) { - throw new BusinessException("累计排产申请数量转化数值失败" + e); + throw new BusinessException("ۼŲתֵʧ" + e); } } } diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/rule/PMOToFinishPickMRule.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/rule/PMOToFinishPickMRule.java index bf89dfc..38129aa 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/rule/PMOToFinishPickMRule.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/rule/PMOToFinishPickMRule.java @@ -21,49 +21,49 @@ public class PMOToFinishPickMRule return; } /** - * 业务逻辑: - * 1.循环生产订单明细表 - * 2.查看生产订单明细行的状态是否为完工(2) - * 3.若为完工状态,则根据生产订单明细表中生产订单行查询备料计划 - * 4.修改备料计划为完成状态(3) + * ҵ߼ + * 1.ѭϸ + * 2.鿴ϸе״̬ǷΪ깤2 + * 3.Ϊ깤״̬ϸвѯϼƻ + * 4.޸ıϼƻΪ״̬3 */ for(int i = 0; i < vos.length; i++) { PMOAggVO vo = vos[i]; PMOItemVO[] items = vo.getChildrenVO(); - //循环生产订单明细 + //ѭϸ for(int j = 0; j < items.length; j++) { PMOItemVO item = items[j]; - //查看生产订单行状态是否为完工(2) + //鿴״̬ǷΪ깤2 int fitemStatus = item.getFitemstatus(); if(fitemStatus != 2) { continue; } - //根据生产订单行查询备料计划 + //вѯϼƻ String cmoid = item.getCmoid(); String whereSql = "nvl(mm_pickm.dr,0) = 0 and mm_pickm.vsourcemorowid = '" + cmoid + "'"; IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance().lookup(IMDPersistenceQueryService.class); - // 根据主键查询得到aggvo + // ѯõaggvo try { @SuppressWarnings("unchecked") ArrayList aggVOs = (ArrayList)aggvoQueryService.queryBillOfVOByCond(AggPickmVO.class, whereSql, true, false); if(aggVOs.size() <= 0) { continue; } - //数组转换 + //ת AggPickmVO[] aggVOsArr = new AggPickmVO[aggVOs.size()]; boolean flag = false; for(int z=0; z snSaveRule = new WrSerialNoSaveRule(); processor.addAfterRule(snSaveRule); - /** 同步修改备料计划完成 */ + /** ͬ޸ıϼƻ */ IRule pickMFinishRule = new PickMFinishRule(); processor.addAfterRule(pickMFinishRule); /** ******************** */ diff --git a/mmpac/src/private/nc/bs/mmpac/wr/rule/serialno/PickMFinishRule.java b/mmpac/src/private/nc/bs/mmpac/wr/rule/serialno/PickMFinishRule.java index 037ab8b..ef2ac92 100644 --- a/mmpac/src/private/nc/bs/mmpac/wr/rule/serialno/PickMFinishRule.java +++ b/mmpac/src/private/nc/bs/mmpac/wr/rule/serialno/PickMFinishRule.java @@ -33,43 +33,43 @@ public class PickMFinishRule return; } /** - * 业务逻辑: - * 1.根据生产报告子表中生产订单行查看生产订单明细表 - * 2.查看生产订单明细行的状态是否为完工(2) - * 3.若为完工状态,则根据生成报告子表中生产订单行查询备料计划 - * 4.修改备料计划为完成状态(3) + * ҵ߼ + * 1.ӱв鿴ϸ + * 2.鿴ϸе״̬ǷΪ깤2 + * 3.Ϊ깤״̬ɱӱвѯϼƻ + * 4.޸ıϼƻΪ״̬3 */ for(int i = 0; i < vos.length; i++) { AggWrVO vo = vos[i]; WrItemVO[] items = vo.getChildrenVO(); - //循环生产报告子表 + //ѭӱ for(int j = 0; j < items.length; j++) { WrItemVO item = items[j]; String cbmobid = item.getCbmobid(); String[] keys = {cbmobid}; - //生产订单行查询 + //вѯ PMOItemVO[] pmoItemvos = (new PMOItemVOQueryBP()).getPMOItemVOsByids(keys); - //查看生产订单行状态是否为完工(2) + //鿴״̬ǷΪ깤2 if(pmoItemvos.length > 0) { PMOItemVO pmoItem = pmoItemvos[0]; int fitemStatus = pmoItem.getFitemstatus(); if(fitemStatus != 2) { continue; } - //根据生产订单行查询备料计划 + //вѯϼƻ // BillQuery query = new BillQuery(AggPickmVO.class); // AggPickmVO[] aggVOs = (AggPickmVO[])query.query(keys); String whereSql = "nvl(mm_pickm.dr,0) = 0 and mm_pickm.vsourcemorowid = '" + cbmobid + "'"; IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance().lookup(IMDPersistenceQueryService.class); - // 根据主键查询得到aggvo + // ѯõaggvo try { @SuppressWarnings("unchecked") ArrayList aggVOs = (ArrayList)aggvoQueryService.queryBillOfVOByCond(AggPickmVO.class, whereSql, true, false); if(aggVOs.size() <= 0) { continue; } - //数组转换 + //ת AggPickmVO[] aggVOsArr = new AggPickmVO[aggVOs.size()]; boolean flag = false; for(int z=0; z + + \ No newline at end of file diff --git a/pu/config/billcodepredata/.gitkeep b/pu/config/billcodepredata/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pu/config/doc-lucene-config/.gitkeep b/pu/config/doc-lucene-config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pu/config/pfxx/.gitkeep b/pu/config/pfxx/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pu/config/tabconfig/.gitkeep b/pu/config/tabconfig/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pu/designmodel/ace/.gitkeep b/pu/designmodel/ace/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pu/designmodel/coderule/.gitkeep b/pu/designmodel/coderule/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pu/designmodel/funcmodel/.gitkeep b/pu/designmodel/funcmodel/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pu/designmodel/systemplatebase/.gitkeep b/pu/designmodel/systemplatebase/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pu/designmodel/templet/.gitkeep b/pu/designmodel/templet/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pu/doc/.gitkeep b/pu/doc/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pu/resources/.gitkeep b/pu/resources/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pu/script/business/.gitkeep b/pu/script/business/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pu/script/conf/.gitkeep b/pu/script/conf/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pu/script/dbcreate/.gitkeep b/pu/script/dbcreate/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pu/script/dbml/.gitkeep b/pu/script/dbml/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pu/src/client/.gitkeep b/pu/src/client/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pu/src/client/yyconfig/modules/ic/outbound/config/action/sapplybill.xml b/pu/src/client/yyconfig/modules/ic/outbound/config/action/sapplybill.xml new file mode 100644 index 0000000..47a6ba6 --- /dev/null +++ b/pu/src/client/yyconfig/modules/ic/outbound/config/action/sapplybill.xml @@ -0,0 +1,110 @@ + + + + ic.sapplybill.query + + nccloud.web.ic.outbound.sapplybill.action.SapplyBillQueryAction + + + ic.sapplybill.queryPage + + nccloud.web.ic.outbound.sapplybill.action.SapplyBillPageQueryAction + + + ic.sapplybill.maintain + + nccloud.web.ic.outbound.sapplybill.action.SapplyBillMaintainAction + Commit,UnCommit,Delete + + + ic.sapplybill.save + + nccloud.web.ic.outbound.sapplybill.action.SapplyBillSaveAction + Save + + + ic.sapplybill.saveAndCommit + + nccloud.web.ic.outbound.sapplybill.action.SapplyBillSaveCommitAction + SaveCommit, Commit + + + ic.sapplybill.canbecopy + + nccloud.web.ic.outbound.sapplybill.action.SapplyBillBeforeCopyAction + + + ic.sapplybill.copy + + nccloud.web.ic.outbound.sapplybill.action.SapplyBillCopyAction + Copy + + + ic.sapplybill.cardquery + + nccloud.web.ic.outbound.sapplybill.action.SapplyBillQueryCardAction + + + ic.sapplybill.query422x + + nccloud.web.ic.outbound.sapplybill.action.Query422XFor4455Action + + + ic.sapplybill.transfervo + + nccloud.web.ic.outbound.sapplybill.action.TransToSapplyBillAction + + + ic.sapplybill.queryPickm + + nccloud.web.ic.outbound.sapplybill.action.QueryPickmFor4455Action + + + ic.sapplybill.transfervo1 + + nccloud.web.ic.outbound.sapplybill.action.TransToSapplyBill1Action + + + ic.sapplybill.print + + nccloud.web.ic.outbound.sapplybill.action.SapplyBillPrintAction + Print,output,Print_list + + + ic.sapplybill.combine + + nccloud.web.ic.outbound.sapplybill.action.SapplyBillCombineAction + CombinePrint + + + ic.sapplybill.checkprem + + nccloud.web.ic.outbound.sapplybill.action.SapplyBillDataPermissionAction + Edit,Print + + + ic.sapplybill.headAfterEdit + + nccloud.web.ic.outbound.sapplybill.events.SapplyBillHeadAfterEventAction + + + ic.sapplybill.bodyAfterEdit + + nccloud.web.ic.outbound.sapplybill.events.SapplyBillBodyAfterEditAction + + + ic.sapplybill.rowOpenClose + + nccloud.web.ic.outbound.sapplybill.action.SapplyBillRowOpenCloseAction + + + ic.sapplybill.billOpenClose + + nccloud.web.ic.outbound.sapplybill.action.SapplyBillOpenCloseAction + + + ic.sapplybill.ntpLinkList + + nccloud.web.ic.outbound.sapplybill.action.SapplyBillNtpLinkListAction + + \ No newline at end of file diff --git a/pu/src/client/yyconfig/modules/ic/outbound/config/authorize/sapplybill_authorize.xml b/pu/src/client/yyconfig/modules/ic/outbound/config/authorize/sapplybill_authorize.xml new file mode 100644 index 0000000..4949b3b --- /dev/null +++ b/pu/src/client/yyconfig/modules/ic/outbound/config/authorize/sapplybill_authorize.xml @@ -0,0 +1,27 @@ + + + 400801200,400801204 + + ic.sapplybill.query + ic.sapplybill.queryPage + ic.sapplybill.maintain + ic.sapplybill.save + ic.sapplybill.saveAndCommit + ic.sapplybill.canbecopy + ic.sapplybill.copy + ic.sapplybill.cardquery + ic.sapplybill.query422x + ic.sapplybill.transfervo + ic.sapplybill.queryPickm + ic.sapplybill.transfervo1 + ic.sapplybill.print + ic.sapplybill.combine + ic.sapplybill.checkprem + ic.sapplybill.headAfterEdit + ic.sapplybill.bodyAfterEdit + ic.sapplybill.rowOpenClose + ic.sapplybill.billOpenClose + ic.sapplybill.ntpLinkList + + + diff --git a/pu/src/test/.gitkeep b/pu/src/test/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/uapbd/src/private/nc/bs/bd/pfxx/plugin/MaterialPfxxPlugin.java b/uapbd/src/private/nc/bs/bd/pfxx/plugin/MaterialPfxxPlugin.java new file mode 100644 index 0000000..29fc7d8 --- /dev/null +++ b/uapbd/src/private/nc/bs/bd/pfxx/plugin/MaterialPfxxPlugin.java @@ -0,0 +1,262 @@ +package nc.bs.bd.pfxx.plugin; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import com.yonyou.cloud.utils.CollectionUtils; + +import nc.bs.dao.BaseDAO; +import nc.bs.dao.DAOException; +import nc.bs.framework.common.NCLocator; +import nc.bs.logging.Logger; +import nc.bs.pfxx.ISwapContext; +import nc.itf.bd.material.baseinfo.IMaterialBaseInfoService; +import nc.jdbc.framework.processor.ColumnListProcessor; +import nc.itf.bd.material.plan.IMaterialPlanQueryService; +import nc.itf.bd.material.plan.IMaterialPlanService; +import nc.itf.bd.material.stock.IMaterialStockQueryService; +import nc.itf.bd.material.stock.IMaterialStockService; +import nc.vo.bd.errorlog.ErrLogReturnValue; +import nc.vo.bd.errorlog.ErrorMsgVO; +import nc.vo.bd.material.IMaterialEnumConst; +import nc.vo.bd.material.MaterialConvertVO; +import nc.vo.bd.material.MaterialTaxTypeVO; +import nc.vo.bd.material.MaterialVO; +import nc.vo.bd.material.plan.MaterialPlanVO; +import nc.vo.bd.material.stock.MaterialStockVO; +import nc.vo.bd.pub.IPubEnumConst; +import nc.vo.pfxx.auxiliary.AggxsysregisterVO; +import nc.vo.pfxx.util.PfxxPluginUtils; +import nc.vo.pub.BusinessException; +import nc.vo.pub.VOStatus; +import nc.vo.pub.lang.UFBoolean; + +import nccloud.commons.lang.StringUtils; + +/** + * 物料基本信息外部交互平台导入 + * + * @author jiangjuna + * @since NC6.0 + */ +public class MaterialPfxxPlugin extends nc.bs.pfxx.plugin.AbstractPfxxPlugin { + + private BaseDAO baseDAO = null; + + private IMaterialBaseInfoService service = null; + + @Override + protected Object processBill(Object vo, ISwapContext swapContext, AggxsysregisterVO aggxsysvo) throws BusinessException { + String pk = null; + try { + MaterialVO materialVO = (MaterialVO) vo; + // by_zhangzhyz_20220113//项目专项需求 根据物料编码和组织进行查询,不通过ID对照表 + String whereSql = MaterialVO.CODE + " = '" + materialVO.getCode() + "'"; + @SuppressWarnings("unchecked") + Collection cols = new BaseDAO().retrieveByClause(MaterialVO.class, whereSql); + if (cols != null && !cols.isEmpty()) { + MaterialVO[] vos = cols.toArray(new MaterialVO[0]); + pk = vos[0].getPk_material(); + } + if (StringUtils.isBlank(pk)) { + materialVO = this.insertMaterialVO(materialVO); + PfxxPluginUtils.addDocIDVsPKContrast(swapContext.getBilltype(), swapContext.getDocID(), materialVO.getPrimaryKey()); + return materialVO.getPrimaryKey(); + } else { + this.getService().updateMaterial(this.getUpdateVO(materialVO, pk)); + String sender = swapContext.getSender(); + if("pdm".equalsIgnoreCase(sender)) { + // 物料更新后更新计划信息 + updatePlanVOsAfterMaterialUpdate(materialVO); + // 物料更新后更新库存信息 + updateStockVOsAfterMaterialUpdate(materialVO); + } + } + } catch (Exception ex) { + Logger.error(ex.getMessage(), ex.getCause()); + throw new BusinessException(ex.getMessage(), ex.getCause()); + } + return pk; + } + + /** + * 物料更新后更新计划信息 + * + * @param materialVO + * @throws BusinessException + */ + private void updatePlanVOsAfterMaterialUpdate(MaterialVO materialVO) throws BusinessException { + if (materialVO.getDef19() == null) + return; + String pk_org = materialVO.getPk_org(); + String pk_material = materialVO.getPk_material(); + IMaterialPlanQueryService queryService = NCLocator.getInstance().lookup(IMaterialPlanQueryService.class); + // 查询物料计划信息 + MaterialPlanVO[] pvos = queryService.queryMaterialPlanVOs(new String[] { pk_org }, pk_material); + IMaterialPlanService planService = NCLocator.getInstance().lookup(IMaterialPlanService.class); + for (MaterialPlanVO planVO : pvos) { + // PLM计划虚项映射到计划信息 + if (materialVO.getDef19() != null && UFBoolean.TRUE.toString().equals(materialVO.getDef19())) + planVO.setIsvirtual(UFBoolean.TRUE); + else + planVO.setIsvirtual(UFBoolean.FALSE); + planVO.setStatus(VOStatus.UPDATED); + planService.updateMaterialPlanVO(planVO); + } + } + + /** + * 物料更新后更新库存信息 + * + * @param materialVO + * @throws BusinessException + */ + private void updateStockVOsAfterMaterialUpdate(MaterialVO materialVO) throws BusinessException { + if (materialVO.getDef18() == null) + return; + IMaterialStockQueryService queryService = NCLocator.getInstance().lookup(IMaterialStockQueryService.class); + MaterialStockVO[] svos = queryService.queryMaterialStockVOs(new String[] { materialVO.getPk_org() }, materialVO.getPk_material()); + IMaterialStockService stockService = NCLocator.getInstance().lookup(IMaterialStockService.class); + for (MaterialStockVO stockVO : svos) { + if (stockVO.getMartype() != null) { + // PLM物料类型映射到库存信息 + switch (materialVO.getDef18()) { + case IMaterialEnumConst.MATERTYPE_DR: + stockVO.setMartype(IMaterialEnumConst.MATERTYPE_DR); + break; + case IMaterialEnumConst.MATERTYPE_FR: + stockVO.setMartype(IMaterialEnumConst.MATERTYPE_FR); + break; + case IMaterialEnumConst.MATERTYPE_MR: + stockVO.setMartype(IMaterialEnumConst.MATERTYPE_MR); + break; + case IMaterialEnumConst.MATERTYPE_PR: + stockVO.setMartype(IMaterialEnumConst.MATERTYPE_PR); + break; + case IMaterialEnumConst.MATERTYPE_OT: + stockVO.setMartype(IMaterialEnumConst.MATERTYPE_OT); + break; + case IMaterialEnumConst.MATERTYPE_ET: + stockVO.setMartype(IMaterialEnumConst.MATERTYPE_ET); + break; + default: + // 物料类型默认为“MR” + stockVO.setMartype(IMaterialEnumConst.MATERTYPE_MR); + break; + } + } + } + stockService.updateMaterialStockVOs(svos); + } + + private BaseDAO getBaseDAO() { + if (this.baseDAO == null) { + this.baseDAO = new BaseDAO(); + } + return this.baseDAO; + } + + private MaterialVO getInsertVO(MaterialVO materialVO) throws DAOException { + materialVO.setEnablestate(IPubEnumConst.ENABLESTATE_ENABLE); + materialVO.setStatus(VOStatus.NEW); + materialVO.setMaterialconvert(this.getMaterialConvertVOs(materialVO)); + materialVO.setMaterialtaxtype(this.getMaterialTaxTypeVOs(materialVO)); + return materialVO; + } + + @SuppressWarnings("unchecked") + private MaterialConvertVO[] getMaterialConvertVOs(MaterialVO MaterialVO) throws DAOException { + List newConverts = new ArrayList(); + if (StringUtils.isNotBlank(MaterialVO.getPrimaryKey())) { + Collection oldAgentStores = this.getBaseDAO().retrieveByClause(MaterialConvertVO.class, + MaterialConvertVO.PK_MATERIAL + " = '" + MaterialVO.getPrimaryKey() + "'", new String[] { MaterialConvertVO.PK_MATERIALCONVERT }); + for (MaterialConvertVO agentstore : oldAgentStores) { + agentstore.setStatus(VOStatus.DELETED); + newConverts.add(agentstore); + } + } + if (MaterialVO.getMaterialconvert() != null && MaterialVO.getMaterialconvert().length > 0) { + for (MaterialConvertVO agentstore : MaterialVO.getMaterialconvert()) { + agentstore.setStatus(VOStatus.NEW); + newConverts.add(agentstore); + } + } + return newConverts.toArray(new MaterialConvertVO[0]); + } + + private MaterialTaxTypeVO[] getMaterialTaxTypeVOs(MaterialVO MaterialVO) throws DAOException { + List newConverts = new ArrayList(); + if (StringUtils.isNotBlank(MaterialVO.getPrimaryKey())) { + Collection oldAgentStores = this.getBaseDAO().retrieveByClause(MaterialTaxTypeVO.class, + MaterialTaxTypeVO.PK_MATERIAL + " = '" + MaterialVO.getPrimaryKey() + "'", new String[] { MaterialTaxTypeVO.PK_MATERIALTAXTYPE }); + for (MaterialTaxTypeVO agentstore : oldAgentStores) { + agentstore.setStatus(VOStatus.DELETED); + newConverts.add(agentstore); + } + } + if (MaterialVO.getMaterialtaxtype() != null && MaterialVO.getMaterialtaxtype().length > 0) { + for (MaterialTaxTypeVO agentstore : MaterialVO.getMaterialtaxtype()) { + agentstore.setStatus(VOStatus.NEW); + newConverts.add(agentstore); + } + } + return newConverts.toArray(new MaterialTaxTypeVO[0]); + } + + private IMaterialBaseInfoService getService() { + if (this.service == null) { + this.service = NCLocator.getInstance().lookup(IMaterialBaseInfoService.class); + } + return this.service; + } + + private MaterialVO getUpdateVO(MaterialVO materialVO, String pk) throws BusinessException { + MaterialVO oldVO = (MaterialVO) this.getBaseDAO().retrieveByPK(MaterialVO.class, pk, + new String[] { MaterialVO.CREATOR, MaterialVO.CREATIONTIME, MaterialVO.PK_SOURCE, MaterialVO.VERSION, MaterialVO.LATEST, MaterialVO.ENABLESTATE }); + if (oldVO == null) { + throw new BusinessException(nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID("bdpub", "0bdpub0057") + /* @res "该数据已被删除" */); + } + materialVO.setPrimaryKey(pk); + materialVO.setCreator(oldVO.getCreator()); + materialVO.setCreationtime(oldVO.getCreationtime()); + materialVO.setPk_source(oldVO.getPk_source()); + materialVO.setVersion(oldVO.getVersion()); + materialVO.setLatest(oldVO.getLatest()); + materialVO.setEnablestate(oldVO.getEnablestate()); + materialVO.setStatus(VOStatus.UPDATED); + materialVO.setTs(oldVO.getTs()); + materialVO.setMaterialconvert(this.getMaterialConvertVOs(materialVO)); + materialVO.setMaterialtaxtype(this.getMaterialTaxTypeVOs(materialVO)); + return materialVO; + } + + private MaterialVO insertMaterialVO(MaterialVO materialVO) throws BusinessException, DAOException { + if (StringUtils.isBlank(materialVO.getPk_source())) { + materialVO = this.getService().insertMaterial(this.getInsertVO(materialVO)); + } else { + ErrLogReturnValue value = this.getService().createMaterialVersion(materialVO, materialVO.getPk_source()); + if (value.getReturnValue() == null || !value.getReturnValue().getClass().isArray()) { + return materialVO; + } + materialVO = (MaterialVO) ((Object[]) value.getReturnValue())[0]; + this.LogErrorMessage(value); + } + return materialVO; + } + + private void LogErrorMessage(ErrLogReturnValue value) { + ErrorMsgVO[] vos = value.getErrLogResult().getErrorMsgs(); + if (vos != null && vos.length > 0) { + String message = nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID("10140mag", "010140mag0200", null, + new String[] { Integer.toString(value.getTotalNum()), Integer.toString(value.getErrLogResult().getErrorMessagegNum()) }) + /* @res "外部交换平台导入物料新版本数据时,分配操作部分成功,共处理了{0}条记录,其中有{1}条处理失败:" */+ "\n"; + for (int i = 0; i < vos.length; i++) { + message += vos[i].getErrormsg() + "\n"; + } + Logger.debug(message); + } + } + +}