其他git仓库代码同步

This commit is contained in:
mzr 2025-11-07 20:20:15 +08:00
parent 29147f682c
commit 6910229b30
1 changed files with 120 additions and 49 deletions

View File

@ -123,7 +123,8 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
}
// String csettleorgid = bvos[0].getCsettleorgid();
String ccurrencyorgid = o1.toString();
// UFDouble exchangerate = SOCurrencyUtil.getInCurrencyRateByOrg(csettleorgid, BFPubTools.getString_TrimAsNull(o), ccurrencyorgid, dbilldate);
// UFDouble exchangerate = SOCurrencyUtil.getInCurrencyRateByOrg(csettleorgid,
// BFPubTools.getString_TrimAsNull(o), ccurrencyorgid, dbilldate);
for (SaleOrderBVO bvo : bvos) {
bvo.setCcurrencyid(BFPubTools.getString_TrimAsNull(o1));
if (!BFPubTools.getString_TrimAsNull(o).equals(ccurrencyorgid)) {
@ -132,12 +133,12 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
// bvo.setNexchangerate(UFDouble.ONE_DBL);
}
// 折本汇率判空及保留小数位数
UFDouble exchangerate1 = getUFDouble_NullAsOne(bvo.getNexchangerate()).setScale(2, UFDouble.ROUND_HALF_UP);
UFDouble exchangerate1 = getUFDouble_NullAsOne(bvo.getNexchangerate()).setScale(2,
UFDouble.ROUND_HALF_UP);
bvo.setNexchangerate(exchangerate1);
}
}
BillVOsCheckRule checker = new BillVOsCheckRule(new SaleOrderValidator());
checker.check(vos);
Map<String, String> origcurrencyMap = new HashMap<>();
@ -286,14 +287,27 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
childrenVO.setVchangerate(measrate);// 换算率
childrenVO.setVqtunitrate(measrate);// 报价换算率
UFDouble[] measrateNums = HslParseUtil.parseHsl(measrate);
// UFDouble measrateNum = UFDouble.ONE_DBL;
// if (null != measrateNums && measrateNums.length != 0) {
// measrateNum = measrateNums[0].div(measrateNums[1]).setScale(2, 4);
// }
// // 主数量
// UFDouble nnum = childrenVO.getNnum().setScale(2, UFDouble.ROUND_HALF_UP);
// childrenVO.setNnum(nnum);
// UFDouble nastnum = nnum.multiply(measrateNum).setScale(2, UFDouble.ROUND_HALF_UP);
// childrenVO.setNastnum(nastnum);// 数量
// childrenVO.setNqtunitnum(nastnum);// 报价单位数量
// sumnum = sumnum.add(nnum);
// sumnny = sumnny.add(norigtaxmny);
UFDouble measrateNum = UFDouble.ONE_DBL;
if (null != measrateNums && measrateNums.length != 0) {
measrateNum = measrateNums[0].div(measrateNums[1]).setScale(2, 4);
measrateNum = measrateNums[0].div(measrateNums[1]);
}
// 主数量
UFDouble nnum = childrenVO.getNnum().setScale(2, UFDouble.ROUND_HALF_UP);
UFDouble nnum = childrenVO.getNnum();
childrenVO.setNnum(nnum);
UFDouble nastnum = nnum.multiply(measrateNum).setScale(2, UFDouble.ROUND_HALF_UP);
UFDouble nastnum = nnum.multiply(measrateNum);
childrenVO.setNastnum(nastnum);// 数量
childrenVO.setNqtunitnum(nastnum);// 报价单位数量
sumnum = sumnum.add(nnum);
@ -301,7 +315,7 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
}
ordervo.getParentVO().setNtotalnum(sumnum);
ordervo.getParentVO().setNtotalorigmny(sumnny.setScale(2, 4));
ordervo.getParentVO().setNtotalorigmny(sumnny);
}
@Override
@ -479,7 +493,8 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
// 订单类型
// String ctrantypeid = orderHVO.getAttributeValue("ctrantypeid") + "";
String vtrantypecode = orderHVO.getVtrantypecode();
// NCCForUAPLogger.debug("setOtherId-ccustomerid:" + ccustomerid + ",vtrantypecode:" + vtrantypecode);
// NCCForUAPLogger.debug("setOtherId-ccustomerid:" + ccustomerid +
// ",vtrantypecode:" + vtrantypecode);
try {
String sql = "";
// 部门
@ -487,7 +502,8 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
sql = " select pk_vid,pk_dept from org_dept where code = '[code]' ";
sql = sql.replace("[code]", cdeptvid);
Map deptMap = (Map) getDao().executeQuery(sql, new MapProcessor());
// NCCForUAPLogger.debug("APISaleOrderMaitainImpl-setOtherId-deptObj:" + deptMap);
// NCCForUAPLogger.debug("APISaleOrderMaitainImpl-setOtherId-deptObj:" +
// deptMap);
if (deptMap != null && !deptMap.isEmpty()) {
if (!"".equals(deptMap.getOrDefault("pk_dept", "") + "")) {
orderHVO.setCdeptid(deptMap.getOrDefault("pk_dept", "") + "");
@ -502,7 +518,8 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
sql = " select pk_psndoc from bd_psndoc where code = '[code]' ";
sql = sql.replace("[code]", cemployeeid);
Object staffObj = getDao().executeQuery(sql, new ColumnProcessor("pk_psndoc"));
// NCCForUAPLogger.debug("APISaleOrderMaitainImpl-setOtherId-staffObj:" + staffObj);
// NCCForUAPLogger.debug("APISaleOrderMaitainImpl-setOtherId-staffObj:" +
// staffObj);
if (staffObj != null) {
String id = BFPubTools.getString_TrimAsNull(staffObj);
if (!id.isEmpty()) {
@ -541,7 +558,8 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
IBilltypeService billtypeService = NCLocator.getInstance().lookup(IBilltypeService.class);
BilltypeVO billtype = billtypeService.getBilltype(vtrantypecode);
if (billtype != null && billtype.getPk_billtypeid() != null) {
// NCCForUAPLogger.debug("setOtherId-pk_billtypeid:" + billtype.getPk_billtypeid());
// NCCForUAPLogger.debug("setOtherId-pk_billtypeid:" +
// billtype.getPk_billtypeid());
orderHVO.setCtrantypeid(billtype.getPk_billtypeid());
}
}
@ -724,12 +742,14 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
UFDouble[] measrateNums = HslParseUtil.parseHsl(measrate);
UFDouble measrateNum = UFDouble.ONE_DBL;
if (null != measrateNums && measrateNums.length != 0) {
measrateNum = measrateNums[0].div(measrateNums[1]).setScale(2, 4);
measrateNum = measrateNums[0].div(measrateNums[1]);
}
// 主数量
UFDouble nnum = sourceBVO.getNnum().setScale(2, UFDouble.ROUND_HALF_UP);
targetBVO.setNnum(nnum);
UFDouble nastnum = nnum.multiply(measrateNum).setScale(2, UFDouble.ROUND_HALF_UP);
// UFDouble nnum = sourceBVO.getNnum().setScale(2, UFDouble.ROUND_HALF_UP);
UFDouble nnum = sourceBVO.getNnum();
// UFDouble nastnum = nnum.multiply(measrateNum).setScale(2,
// UFDouble.ROUND_HALF_UP);
UFDouble nastnum = nnum.multiply(measrateNum);
targetBVO.setNastnum(nastnum);// 数量
targetBVO.setNqtunitnum(nastnum);// 报价单位数量
@ -756,6 +776,7 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
if (StringUtils.isNotEmpty(sourceBVO.getVbdef20())) {
targetBVO.setVbdef20(sourceBVO.getVbdef20()); // 计划完工日期
}
targetBVO.setVbdef24(sourceBVO.getVbdef24()); // 计划评审日期
}
@ -985,7 +1006,8 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
if (map == null) {
throw new BusinessException(cmaterialvid + "物料未查到");
}
// NCCForUAPLogger.debug(String.format("setMaterl: cqtunitid = [%S], cunitid = [%S], castunitid = [%S]",
// NCCForUAPLogger.debug(String.format("setMaterl: cqtunitid = [%S], cunitid =
// [%S], castunitid = [%S]",
// map.get("cqtunitid"), map.get("cunitid"), map.get("castunitid")));
bVO.setAttributeValue("castunitid", map.get("castunitid"));
bVO.setAttributeValue("vchangerate", map.get("vchangerate"));
@ -1027,9 +1049,8 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
return null;
}
IUAPQueryBS queryBS = NCLocator.getInstance().lookup(IUAPQueryBS.class);
String sql = " select nvl(measrate, '1/1') measrate" +
" from bd_materialconvert" +
" where pk_material='" + pk_material + "' ";
String sql = " select nvl(measrate, '1/1') measrate" + " from bd_materialconvert" + " where pk_material='"
+ pk_material + "' ";
return (Map<String, Object>) queryBS.executeQuery(sql, new MapProcessor());
}
@ -1195,14 +1216,30 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
// newBvo.setVchangerate(measrate);// 换算率
// newBvo.setVqtunitrate(measrate);// 报价换算率
UFDouble[] measrateNums = HslParseUtil.parseHsl(measrate);
// UFDouble measrateNum = UFDouble.ONE_DBL;
// if (null != measrateNums && measrateNums.length != 0) {
// measrateNum = measrateNums[0].div(measrateNums[1]).setScale(2, 4);
// }
// // 主数量
// UFDouble nnum = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nnum")).setScale(2, UFDouble.ROUND_HALF_UP);
// newBvo.setNnum(nnum);
// UFDouble nastnum = nnum.multiply(measrateNum).setScale(2, UFDouble.ROUND_HALF_UP);
// newBvo.setNastnum(nastnum);// 数量
// newBvo.setNqtunitnum(nastnum);// 报价单位数量
//
// UFDouble[] measrateNums = HslParseUtil.parseHsl(measrate);
// UFDouble measrateNum = UFDouble.ONE_DBL;
// if (null != measrateNums && measrateNums.length != 0) {
// measrateNum = measrateNums[0].div(measrateNums[1]).setScale(2, 4);
// }
UFDouble measrateNum = UFDouble.ONE_DBL;
if (null != measrateNums && measrateNums.length != 0) {
measrateNum = measrateNums[0].div(measrateNums[1]).setScale(2, 4);
measrateNum = measrateNums[0].div(measrateNums[1]);
}
// 主数量
UFDouble nnum = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nnum")).setScale(2, UFDouble.ROUND_HALF_UP);
UFDouble nnum = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nnum"));
UFDouble nastnum = nnum.multiply(measrateNum);
newBvo.setNnum(nnum);
UFDouble nastnum = nnum.multiply(measrateNum).setScale(2, UFDouble.ROUND_HALF_UP);
newBvo.setNastnum(nastnum);// 数量
newBvo.setNqtunitnum(nastnum);// 报价单位数量
@ -1213,10 +1250,13 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
String vbdef5 = bodydata.getOrDefault("vbdef5", "") + "";// 合同销售订单号
defList.clear();
defList = getDefList("BIP-ddh");
newBvo.setVbdef5(defList.getOrDefault(vbdef5, ""));
newBvo.setVbdef10(bodydata.getOrDefault("vbdef10", "") + "");// 项目名称
newBvo.setVbdef13(bodydata.getOrDefault("vbdef13", "") + "");// 国网行项目号
newBvo.setVbdef22(bodydata.getOrDefault("vbdef22", "") + "");// 国内采购订单号
newBvo.setVbdef5(defList.getOrDefault(vbdef5, "~"));
newBvo.setVbdef10(bodydata.getOrDefault("vbdef10", "~") + "");// 项目名称
newBvo.setVbdef13(bodydata.getOrDefault("vbdef13", "~") + "");// 国网行项目号
newBvo.setVbdef22(bodydata.getOrDefault("vbdef22", "~") + "");// 国内采购订单号
if (bodydata.get("vbdef24") != null && !"".equals(bodydata.get("vbdef24")) && !"~".equals(bodydata.get("vbdef24"))) {
newBvo.setVbdef24(bodydata.get("vbdef24") + "");// 计划评审日期
}
bvoList.add(newBvo);
}
@ -1393,7 +1433,6 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
String accessToken = "";
Map<String, String> params = new HashMap<>();
params.put("appKey", appKey);
String timestamp = String.valueOf(System.currentTimeMillis());
params.put("timestamp", timestamp);
@ -1428,7 +1467,8 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
return accessToken;
}
public static String doSendHttp(String baseUrl, String method, Map<String, String> paramMap, String mediaType, Map<String, String> headers, String json) {
public static String doSendHttp(String baseUrl, String method, Map<String, String> paramMap, String mediaType,
Map<String, String> headers, String json) {
HttpURLConnection urlConnection = null;
InputStream in = null;
OutputStream out = null;
@ -1768,7 +1808,6 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
}
}
/**
* 更新关联的下游单据
*
@ -1782,6 +1821,8 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
String ccustomerid = hvo.getCcustomerid();
String ccustomervid = hvo.getCcustomervid();
String cemployeeid = hvo.getCemployeeid();
//zhangxinah 订单客户和开票客户同步核销明细表
dealWithBalance(hvo);
String cdeptid = hvo.getCdeptid();
String cdeptvid = hvo.getCdeptvid();
SaleOrderBVO[] bvos = vo.getChildrenVO();
@ -1946,5 +1987,35 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
}
}
/**
* zhangxinah 订单客户和开票客户同步核销明细表
* @param hvo
*/
private void dealWithBalance(SaleOrderHVO hvo) {
String csaleorderid=hvo.getCsaleorderid();
String ccustomerid = hvo.getCcustomerid();
String ccustomervid = hvo.getCcustomervid();
String cinvoicecustid = hvo.getCinvoicecustid();
String cinvoicecustvid = hvo.getCinvoicecustvid();
//zhangxinah 订单客户和开票客户同步核销明细表
// 构建并执行更新SQL
String updateSql = "UPDATE so_balance SET "
+ " ccustomerid = '[ccustomerid]', "
+ " ccustomervid = '[ccustomervid]',"
+ " cinvoicecustid = '[cinvoicecustid]',"
+ " cinvoicecustvid = '[cinvoicecustvid]'"
+ " WHERE csaleorderid = '[csaleorderid]'";
updateSql = updateSql.replace("[ccustomerid]", ccustomerid);
updateSql = updateSql.replace("[ccustomervid]", ccustomervid);
updateSql = updateSql.replace("[cinvoicecustid]", cinvoicecustid);
updateSql = updateSql.replace("[cinvoicecustvid]", cinvoicecustvid);
updateSql = updateSql.replace("[csaleorderid]", csaleorderid);
try {
getDao().executeUpdate(updateSql);
} catch (Exception e) {
ExceptionUtils.wrappBusinessException("so-updateRelatedBill-exp: " + e.getMessage());
}
}
}