Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
3f1fc5a7a6
|
@ -0,0 +1,113 @@
|
||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package nc.bs.pub.action;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Hashtable;
|
||||||
|
import nc.bs.arap.actions.N_BASE_ACTION;
|
||||||
|
import nc.bs.arap.paybp.PayBillBO;
|
||||||
|
import nc.bs.framework.common.NCLocator;
|
||||||
|
import nc.bs.logging.Logger;
|
||||||
|
import nc.vo.arap.pay.AggPayBillVO;
|
||||||
|
import nc.vo.arap.pub.ArapConstant;
|
||||||
|
import nc.vo.arap.pub.BillEnumCollection.ApproveStatus;
|
||||||
|
import nc.vo.fipub.exception.ExceptionHandler;
|
||||||
|
import nc.vo.pub.AggregatedValueObject;
|
||||||
|
import nc.vo.pub.BusinessException;
|
||||||
|
import nc.vo.pub.compiler.PfParameterVO;
|
||||||
|
import nccloud.bs.arap.util.commit.ArapCommitUtil;
|
||||||
|
import nccloud.pubitf.arap.arappub.IArapBillPubUtilService;
|
||||||
|
|
||||||
|
public class N_F3_SAVE extends N_BASE_ACTION {
|
||||||
|
private Hashtable<String, Object> m_keyHas;
|
||||||
|
|
||||||
|
public N_F3_SAVE() {
|
||||||
|
new Hashtable();
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean hasBill(String primaryKey) throws BusinessException {
|
||||||
|
boolean hasBill = false;
|
||||||
|
if (primaryKey != null) {
|
||||||
|
AggPayBillVO[] bvos = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
PayBillBO payableBO = new PayBillBO();
|
||||||
|
bvos = payableBO.findBillByPrimaryKey(new String[]{primaryKey});
|
||||||
|
} catch (Exception e) {
|
||||||
|
Logger.error(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bvos != null && bvos.length != 0 && bvos[0] != null) {
|
||||||
|
hasBill = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return hasBill;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object runComClass(PfParameterVO paraVo) throws BusinessException {
|
||||||
|
try {
|
||||||
|
if (paraVo.m_preValueVos == null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
Object obj = null;
|
||||||
|
super.m_tmpVo = paraVo;
|
||||||
|
if (paraVo.isCloudEntry) {
|
||||||
|
String actionCode = ArapConstant.SAVE;
|
||||||
|
((IArapBillPubUtilService)NCLocator.getInstance().lookup(IArapBillPubUtilService.class)).interceptorVaildator(paraVo.m_preValueVos, actionCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.setParameter("context", paraVo.m_preValueVos);
|
||||||
|
this.beforeCheck();
|
||||||
|
String primaryKey = paraVo.m_preValueVos[0].getParentVO().getPrimaryKey();
|
||||||
|
if (this.hasBill(primaryKey)) {
|
||||||
|
obj = this.runClass("nc.bs.arap.actions.PaybillEditSaveBatchBSAction", "updateVOs", "&context:nc.vo.pub.AggregatedValueObject[]", paraVo, this.m_keyHas);
|
||||||
|
} else {
|
||||||
|
paraVo = this.approveStatusChange(paraVo);
|
||||||
|
obj = this.runClass("nc.bs.arap.actions.PaybillSaveBatchBSAction", "insertVOs", "&context:nc.vo.pub.AggregatedValueObject[]", paraVo, this.m_keyHas);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.afterCheck();
|
||||||
|
obj = (new ArapCommitUtil()).autoCommit(obj);
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
} catch (Exception exception) {
|
||||||
|
throw ExceptionHandler.handleException(this.getClass(), exception);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setParameter(String key, Object val) {
|
||||||
|
if (this.m_keyHas == null) {
|
||||||
|
this.m_keyHas = new Hashtable();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (val != null) {
|
||||||
|
this.m_keyHas.put(key, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodeRemark() {
|
||||||
|
return " arap action script not allowed to modify ,all rights reserved!";
|
||||||
|
}
|
||||||
|
|
||||||
|
private PfParameterVO approveStatusChange(PfParameterVO paraVo) {
|
||||||
|
for(AggregatedValueObject vo : paraVo.m_preValueVos) {
|
||||||
|
vo.getParentVO().setAttributeValue("approvestatus", ApproveStatus.NOSTATE.VALUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
return paraVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
private PfParameterVO def10Change(PfParameterVO paraVo) {
|
||||||
|
for(AggregatedValueObject vo : paraVo.m_preValueVos) {
|
||||||
|
vo.getParentVO().setAttributeValue("approvestatus", ApproveStatus.NOSTATE.VALUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
return paraVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -196,16 +196,15 @@ public class AfterApproveRuleSyncMes implements IRule<PMOAggVO> {
|
||||||
private void syncOrderItemToMes(PMOHeadVO head, PMOItemVO item) throws BusinessException {
|
private void syncOrderItemToMes(PMOHeadVO head, PMOItemVO item) throws BusinessException {
|
||||||
JSONObject data = new JSONObject();
|
JSONObject data = new JSONObject();
|
||||||
String vbillcode = head.getVbillcode(); // µ¥¾ÝºÅ
|
String vbillcode = head.getVbillcode(); // µ¥¾ÝºÅ
|
||||||
String itemRow = item.getVrowno(); // 行号
|
String itemRow = item.getVrowno(); // 行号 obmlog.info("开始为生产订单 " + vbillcode + " 行 " + itemRow + " 构建同步MES数据。");
|
||||||
|
|
||||||
obmlog.info("开始为生产订单 " + vbillcode + " 行 " + itemRow + " 构建同步MES数据。");
|
// orderNo String 是 生产订单号+行号 vbillcode+itemRow
|
||||||
|
String orderNoWithRow = vbillcode + itemRow;
|
||||||
// orderNo String 是 生产订单号 vbillcode
|
if (orderNoWithRow.length() > 18) {
|
||||||
if (vbillcode.length() > 18) {
|
throw new BusinessException("MES同步要求:生产订单 " + vbillcode + " 行 " + itemRow + " 单据号+行号长度不能超过18位,当前长度:" + orderNoWithRow.length());
|
||||||
throw new BusinessException("MES同步要求:生产订单 " + vbillcode + " 行 " + itemRow + " 单据号长度不能超过18位。");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
data.put("orderNo", vbillcode);
|
data.put("orderNo", orderNoWithRow);
|
||||||
|
|
||||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
package nccloud.openapi.mmpac.wr;
|
package nccloud.openapi.mmpac.wr;
|
||||||
|
|
||||||
|
|
||||||
import nc.bs.dao.BaseDAO;
|
import nc.bs.dao.BaseDAO;
|
||||||
|
import nc.bs.framework.common.InvocationInfoProxy;
|
||||||
import nc.bs.framework.common.NCLocator;
|
import nc.bs.framework.common.NCLocator;
|
||||||
import nc.bs.logging.Log;
|
import nc.bs.logging.Log;
|
||||||
import nc.bs.uif2.validation.ValidationFailure;
|
import nc.bs.uif2.validation.ValidationFailure;
|
||||||
|
import nc.jdbc.framework.SQLParameter;
|
||||||
|
import nc.jdbc.framework.processor.ColumnProcessor;
|
||||||
import nc.util.mmf.framework.base.MMArrayUtil;
|
import nc.util.mmf.framework.base.MMArrayUtil;
|
||||||
import nc.util.mmf.framework.base.MMCollectionUtil;
|
import nc.util.mmf.framework.base.MMCollectionUtil;
|
||||||
import nc.util.mmf.framework.base.MMNumberUtil;
|
import nc.util.mmf.framework.base.MMNumberUtil;
|
||||||
import nc.util.mmf.framework.base.MMValueCheck;
|
import nc.util.mmf.framework.base.MMValueCheck;
|
||||||
import nc.vo.mmpac.wr.entity.AggWrVO;
|
import nc.vo.mmpac.wr.entity.*;
|
||||||
import nc.vo.mmpac.wr.entity.WrItemVO;
|
|
||||||
import nc.vo.mmpac.wr.entity.WrQualityVO;
|
|
||||||
import nc.vo.mmpac.wr.entity.WrSerialNoVO;
|
|
||||||
import nc.vo.mmpac.wr.entity.WrVO;
|
|
||||||
import nc.vo.mmpac.wr.enumeration.WrBillStatusEnum;
|
import nc.vo.mmpac.wr.enumeration.WrBillStatusEnum;
|
||||||
import nc.vo.pub.BusinessException;
|
import nc.vo.pub.BusinessException;
|
||||||
import nc.vo.pub.VOStatus;
|
import nc.vo.pub.VOStatus;
|
||||||
|
@ -31,14 +31,7 @@ import javax.ws.rs.Consumes;
|
||||||
import javax.ws.rs.POST;
|
import javax.ws.rs.POST;
|
||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
import javax.ws.rs.Produces;
|
import javax.ws.rs.Produces;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
@Path("mmpac/wr")
|
@Path("mmpac/wr")
|
||||||
public class WrResource extends AbstractNCCRestResource {
|
public class WrResource extends AbstractNCCRestResource {
|
||||||
|
@ -312,6 +305,9 @@ public class WrResource extends AbstractNCCRestResource {
|
||||||
Map<String, Object> bodyInfo = (Map<String, Object>) paramMap.get(BODYTABLE);
|
Map<String, Object> bodyInfo = (Map<String, Object>) paramMap.get(BODYTABLE);
|
||||||
itemInfos.add(bodyInfo);
|
itemInfos.add(bodyInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 预处理数据:处理仓库转换和MES相关字段
|
||||||
|
preProcessMesData(headInfo, itemInfos, baseDAO);
|
||||||
AggWrVO vo = new AggWrVO();
|
AggWrVO vo = new AggWrVO();
|
||||||
WrVO head = new WrVO();
|
WrVO head = new WrVO();
|
||||||
head.setPk_group(AppContext.getInstance().getPkGroup());
|
head.setPk_group(AppContext.getInstance().getPkGroup());
|
||||||
|
@ -577,9 +573,169 @@ public class WrResource extends AbstractNCCRestResource {
|
||||||
}
|
}
|
||||||
server.delete(deleteVos.toArray(new AggWrVO[0]));
|
server.delete(deleteVos.toArray(new AggWrVO[0]));
|
||||||
return ResultMessageUtil.toJSON(new String[0], "Éú²ú±¨¸æÉ¾³ý³É¹¦");
|
return ResultMessageUtil.toJSON(new String[0], "Éú²ú±¨¸æÉ¾³ý³É¹¦");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) { return ResultMessageUtil.exceptionToJSON(e);
|
||||||
return ResultMessageUtil.exceptionToJSON(e);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预处理数据:包含仓库转换和MES相关字段处理
|
||||||
|
* @param headInfo 表头信息
|
||||||
|
* @param itemInfos 表体信息列表
|
||||||
|
* @param baseDAO 数据库操作对象
|
||||||
|
* @throws BusinessException 处理失败时抛出异常
|
||||||
|
*/
|
||||||
|
private void preProcessMesData(Map<String, Object> headInfo, List<Map<String, Object>> itemInfos, BaseDAO baseDAO)
|
||||||
|
throws BusinessException {
|
||||||
|
// 处理表体信息中的数据转换
|
||||||
|
for (Map<String, Object> itemMap : itemInfos) {
|
||||||
|
// 处理MES相关字段自动赋值
|
||||||
|
processMESFields(itemMap, baseDAO);
|
||||||
|
|
||||||
|
// 处理质量信息中的仓库转换
|
||||||
|
if (itemMap.containsKey(QUALITYTABLE)) {
|
||||||
|
List<Map<String, Object>> qualityInfos = (List<Map<String, Object>>) itemMap.get(QUALITYTABLE);
|
||||||
|
processWarehouseConversion(qualityInfos, baseDAO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理MES相关字段自动赋值
|
||||||
|
* 如果用户code是MES,那么将cbmoid保持和vbsrcid一致,cbmobid保持和vbsrcrowid一致
|
||||||
|
* 增加vbmobillcode单据号,通过cbmoid查询流程生产订单表的vbillcode
|
||||||
|
* @param itemMap 表体信息
|
||||||
|
* @param baseDAO 数据库操作对象
|
||||||
|
* @throws BusinessException 查询失败时抛出异常
|
||||||
|
*/
|
||||||
|
|
||||||
|
private void processMESFields(Map<String, Object> itemMap, BaseDAO baseDAO) throws BusinessException {
|
||||||
|
// 检查是否需要处理MES字段
|
||||||
|
// 这里可以通过上下文、用户信息或其他标识来判断
|
||||||
|
// 暂时通过检查是否存在特定字段来判断是MES用户
|
||||||
|
boolean isMESUser = isMESUser(itemMap);
|
||||||
|
|
||||||
|
if (!isMESUser) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 设置cbmoid保持和vbsrcid一致
|
||||||
|
if (itemMap.containsKey("vbsrcid") && MMValueCheck.isNotEmpty(itemMap.get("vbsrcid"))) {
|
||||||
|
itemMap.put("cbmoid", itemMap.get("vbsrcid"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置cbmobid保持和vbsrcrowid一致
|
||||||
|
if (itemMap.containsKey("vbsrcrowid") && MMValueCheck.isNotEmpty(itemMap.get("vbsrcrowid"))) {
|
||||||
|
itemMap.put("cbmobid", itemMap.get("vbsrcrowid"));
|
||||||
|
}
|
||||||
|
// 通过cbmoid查询流程生产订单表的vbillcode
|
||||||
|
if (itemMap.containsKey("cbmoid") && MMValueCheck.isNotEmpty(itemMap.get("cbmoid"))) {
|
||||||
|
String cbmoid = String.valueOf(itemMap.get("cbmoid"));
|
||||||
|
String sql = "SELECT vbillcode FROM mm_pmo WHERE cpmohid = ? AND dr = 0";
|
||||||
|
SQLParameter param = new SQLParameter();
|
||||||
|
param.addParam(cbmoid);
|
||||||
|
String vbillcode = (String) baseDAO.executeQuery(sql, param, new ColumnProcessor());
|
||||||
|
|
||||||
|
if (MMValueCheck.isEmpty(vbillcode)) {
|
||||||
|
throw new BusinessException("通过流程生产订单主键【" + cbmoid + "】查询不到对应的单据号,请检查数据");
|
||||||
|
}
|
||||||
|
|
||||||
|
itemMap.put("vbmobillcode", vbillcode);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
if (e instanceof BusinessException) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
throw new BusinessException("处理MES字段失败:" + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 判断是否为MES用户
|
||||||
|
* 通过获取线程上下文中的用户编码来判断是否为MES用户
|
||||||
|
* @param itemMap 表体信息(保留参数以保持方法签名一致性)
|
||||||
|
* @return 是否为MES用户
|
||||||
|
*/
|
||||||
|
|
||||||
|
private boolean isMESUser(Map<String, Object> itemMap) {
|
||||||
|
try {
|
||||||
|
// 获取当前线程上下文中的用户编码
|
||||||
|
String userCode = InvocationInfoProxy.getInstance().getUserCode();
|
||||||
|
|
||||||
|
// 判断用户编码是否为MES
|
||||||
|
return "MES".equals(userCode);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
// 如果获取用户编码失败,记录日志并返回false
|
||||||
|
Log.getInstance("mm-mes").error("获取用户编码失败:" + e.getMessage(), e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理仓库转换(将原有的仓库转换逻辑包装成独立函数)
|
||||||
|
* @param qualityInfos 质量信息列表
|
||||||
|
* @param baseDAO 数据库操作对象
|
||||||
|
* @throws BusinessException 转换失败时抛出异常
|
||||||
|
*/
|
||||||
|
private void processWarehouseConversion(List<Map<String, Object>> qualityInfos, BaseDAO baseDAO)
|
||||||
|
throws BusinessException {
|
||||||
|
if (qualityInfos == null || qualityInfos.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Map<String, Object> qualityInfo : qualityInfos) {
|
||||||
|
if (qualityInfo.containsKey("cgwarehouseid") && MMValueCheck.isNotEmpty(qualityInfo.get("cgwarehouseid"))) {
|
||||||
|
String warehouseValue = String.valueOf(qualityInfo.get("cgwarehouseid"));
|
||||||
|
String warehousePk = convertWarehouseCodeToPk(warehouseValue, baseDAO);
|
||||||
|
qualityInfo.put("cgwarehouseid", warehousePk);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转换仓库编码为主键
|
||||||
|
* 首先假设传入值是主键,如果查询不到,再假设是编码进行查询
|
||||||
|
* @param warehouseValue 仓库值(可能是主键或编码)
|
||||||
|
* @param baseDAO 数据库操作对象
|
||||||
|
* @return 仓库主键
|
||||||
|
* @throws BusinessException 如果仓库不存在
|
||||||
|
*/
|
||||||
|
private String convertWarehouseCodeToPk(String warehouseValue, BaseDAO baseDAO) throws BusinessException {
|
||||||
|
if (MMValueCheck.isEmpty(warehouseValue)) {
|
||||||
|
return warehouseValue;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
// 首先假设是主键,直接查询
|
||||||
|
String sql = "SELECT pk_stordoc FROM bd_stordoc WHERE pk_stordoc = ? AND dr = 0";
|
||||||
|
SQLParameter param = new SQLParameter();
|
||||||
|
param.addParam(warehouseValue);
|
||||||
|
String result = (String) baseDAO.executeQuery(sql, param, new ColumnProcessor());
|
||||||
|
|
||||||
|
if (MMValueCheck.isNotEmpty(result)) {
|
||||||
|
// 主键查询成功,直接返回
|
||||||
|
return warehouseValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 主键查询失败,假设是编码查询
|
||||||
|
sql = "SELECT pk_stordoc FROM bd_stordoc WHERE code = ? AND dr = 0";
|
||||||
|
param = new SQLParameter();
|
||||||
|
param.addParam(warehouseValue);
|
||||||
|
result = (String) baseDAO.executeQuery(sql, param, new ColumnProcessor());
|
||||||
|
|
||||||
|
if (MMValueCheck.isNotEmpty(result)) {
|
||||||
|
// 编码查询成功,返回主键
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 都查询不到,抛出异常
|
||||||
|
throw new BusinessException("仓库【" + warehouseValue + "】不存在,请检查仓库编码或主键");
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
if (e instanceof BusinessException) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
throw new BusinessException("查询仓库信息失败:" + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -204,7 +204,7 @@ public class IAPISaleInvMaitainImpl {
|
||||||
Logger.error("=====================inv-red-audit-end===============");
|
Logger.error("=====================inv-red-audit-end===============");
|
||||||
|
|
||||||
// 查询新生成红冲发票的信息
|
// 查询新生成红冲发票的信息
|
||||||
String newPk = returnApproveSaleInvoiceVOs[0].getParentVO().getCsaleinvoiceid();
|
String newPk = returnSaveSaleInvoiceVOs[0].getParentVO().getCsaleinvoiceid();
|
||||||
String[] idsNew = {newPk};
|
String[] idsNew = {newPk};
|
||||||
// String[] idsNew = {"1001A11000000FSB45YA"};
|
// String[] idsNew = {"1001A11000000FSB45YA"};
|
||||||
SaleInvoiceVO[] redVos = querySaleInvoiceByIds(idsNew);
|
SaleInvoiceVO[] redVos = querySaleInvoiceByIds(idsNew);
|
||||||
|
@ -503,8 +503,10 @@ public class IAPISaleInvMaitainImpl {
|
||||||
}
|
}
|
||||||
// BIP合同平台的数量对应BIP2312的主数量,BIP2312的 数量=主数量*换算关系
|
// BIP合同平台的数量对应BIP2312的主数量,BIP2312的 数量=主数量*换算关系
|
||||||
UFDouble nnum = new UFDouble(bipBvoJson.getString("nnum"));
|
UFDouble nnum = new UFDouble(bipBvoJson.getString("nnum"));
|
||||||
newInvBVO.setNastnum(nnum.multiply(vchangerateNum).setScale(2, 4)); // 数量
|
UFDouble nastnum = nnum.multiply(vchangerateNum).setScale(2, 4);
|
||||||
|
newInvBVO.setNastnum(nastnum); // 数量
|
||||||
newInvBVO.setNnum(nnum); // 主数量
|
newInvBVO.setNnum(nnum); // 主数量
|
||||||
|
newInvBVO.setNqtunitnum(nastnum); // 报价数量
|
||||||
newInvBVO.setNqtorigtaxprice(new UFDouble(bipBvoJson.getString("nqtorigtaxprice"))); // 含税单价
|
newInvBVO.setNqtorigtaxprice(new UFDouble(bipBvoJson.getString("nqtorigtaxprice"))); // 含税单价
|
||||||
newInvBVO.setNqtorigprice(new UFDouble(bipBvoJson.getString("nqtorigprice"))); // 无税单价
|
newInvBVO.setNqtorigprice(new UFDouble(bipBvoJson.getString("nqtorigprice"))); // 无税单价
|
||||||
newInvBVO.setNorigtaxprice(new UFDouble(bipBvoJson.getString("norigtaxprice"))); // 主含税单价
|
newInvBVO.setNorigtaxprice(new UFDouble(bipBvoJson.getString("norigtaxprice"))); // 主含税单价
|
||||||
|
@ -528,11 +530,17 @@ public class IAPISaleInvMaitainImpl {
|
||||||
newInvBVO.setNtaxmny(new UFDouble(bipBvoJson.getString("ntaxmny"))); // 本币价税合计
|
newInvBVO.setNtaxmny(new UFDouble(bipBvoJson.getString("ntaxmny"))); // 本币价税合计
|
||||||
newInvBVO.setNcaltaxmny(new UFDouble(bipBvoJson.getString("nmny"))); // 计税金额=本币无税金额
|
newInvBVO.setNcaltaxmny(new UFDouble(bipBvoJson.getString("nmny"))); // 计税金额=本币无税金额
|
||||||
newInvBVO.setCopposesrcbid(bipBvoJson.getString("vbdef15")); // 对冲来源子表id
|
newInvBVO.setCopposesrcbid(bipBvoJson.getString("vbdef15")); // 对冲来源子表id
|
||||||
newInvBVO.setNqtunitnum(null); // 报价数量
|
newInvBVO.setCunitid(bipBvoJson.getString("castunitid"));// 主单位
|
||||||
|
newInvBVO.setCqtunitid(bipBvoJson.getString("castunitid"));// 报价单位
|
||||||
|
// 通过 ntaxrate 获取 taxcode
|
||||||
|
String taxcodeStr = getTaxcode(bipBvoJson.getString("ntaxrate"));
|
||||||
|
newInvBVO.setCtaxcodeid(taxcodeStr);// 税码
|
||||||
|
|
||||||
newInvBVO.setCsaleinvoiceid(null); // 发票关联主表id
|
newInvBVO.setCsaleinvoiceid(null); // 发票关联主表id
|
||||||
newInvBVO.setNtotalcostnum(null); // 累计成本结算数量
|
newInvBVO.setNtotalcostnum(null); // 累计成本结算数量
|
||||||
newInvBVO.setNtotalincomemny(null); // 累计确认应收金额
|
newInvBVO.setNtotalincomemny(null); // 累计确认应收金额
|
||||||
newInvBVO.setNtotalincomenum(null); // 累计确认应收数量
|
newInvBVO.setNtotalincomenum(null); // 累计确认应收数量
|
||||||
|
|
||||||
newSaleInvoiceBVOs[i++] = newInvBVO;
|
newSaleInvoiceBVOs[i++] = newInvBVO;
|
||||||
sumNum = sumNum.add(new UFDouble(bipBvoJson.getString("nnum")));
|
sumNum = sumNum.add(new UFDouble(bipBvoJson.getString("nnum")));
|
||||||
sumNtax = sumNtax.add(new UFDouble(bipBvoJson.getString("ntax")));
|
sumNtax = sumNtax.add(new UFDouble(bipBvoJson.getString("ntax")));
|
||||||
|
@ -558,6 +566,8 @@ public class IAPISaleInvMaitainImpl {
|
||||||
newSaleInvoiceHVO.setCopposesrcid(saleInvoiceHVO.getCsaleinvoiceid()); // 对冲来源发票id
|
newSaleInvoiceHVO.setCopposesrcid(saleInvoiceHVO.getCsaleinvoiceid()); // 对冲来源发票id
|
||||||
newSaleInvoiceHVO.setApprover(null); // 审批人
|
newSaleInvoiceHVO.setApprover(null); // 审批人
|
||||||
newSaleInvoiceHVO.setTaudittime(null); // 审批日期
|
newSaleInvoiceHVO.setTaudittime(null); // 审批日期
|
||||||
|
newSaleInvoiceHVO.setVdef13(null); // 发票号码
|
||||||
|
newSaleInvoiceHVO.setVdef17(bject.getString("vdef17")); // BIP申请单号
|
||||||
|
|
||||||
// 组装VO
|
// 组装VO
|
||||||
saleInvoiceVO.setParentVO(newSaleInvoiceHVO);
|
saleInvoiceVO.setParentVO(newSaleInvoiceHVO);
|
||||||
|
|
Loading…
Reference in New Issue