销售出库修改接口改修改签字

This commit is contained in:
李正@用友 2025-05-27 14:59:34 +08:00
parent 05affd15bb
commit 161e38087b
3 changed files with 727 additions and 0 deletions

View File

@ -0,0 +1,362 @@
package nccloud.api.impl.ic.m4c;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import nc.bs.framework.common.NCLocator;
import nc.bs.scmpub.query.SCMBillQuery;
import nc.itf.scmpub.reference.uap.pf.PfServiceScmUtil;
import nc.pubitf.ic.m4c.api.ISaleOutMaintainAPI;
import nc.vo.ic.general.define.ICBillFlag;
import nc.vo.ic.general.define.ICBillHeadVO;
import nc.vo.ic.general.define.MetaNameConst;
import nc.vo.ic.general.util.ICLocationUtil;
import nc.vo.ic.location.ICLocationVO;
import nc.vo.ic.m4c.entity.SaleOutBodyVO;
import nc.vo.ic.m4c.entity.SaleOutHeadVO;
import nc.vo.ic.m4c.entity.SaleOutVO;
import nc.vo.ic.pub.define.ICPubMetaNameConst;
import nc.vo.pub.BusinessException;
import nc.vo.pub.VOStatus;
import nc.vo.pubapp.util.VORowNoUtils;
import nc.vo.scmpub.check.billvalidate.BillVOsCheckRule;
import nc.vo.scmpub.res.billtype.ICBillType;
import nccloud.api.ic.m4c.IAPISaleOutMaintain;
import nccloud.api.impl.ic.m4c.check.CheckSaleOutSaveValidator;
import nccloud.api.impl.ic.m4c.fill.SaleOutSaveFillValue;
import nccloud.api.impl.ic.m4c.fill.SaleOutSaveFromRefFillValue;
import nccloud.api.impl.ic.m4c.fill.SaleOutUpdateFillValue;
import nccloud.api.impl.ic.pub.check.CheckProhibitUpdateFields;
import nccloud.api.impl.ic.pub.rule.ChooseHeadOrg;
import nccloud.commons.lang.ArrayUtils;
import nccloud.commons.lang.StringUtils;
import nccloud.openapi.ic.util.ICAPILocationVOUtils;
import nccloud.openapi.scmpub.pub.TransferCodeToPKTool;
import nccloud.openapi.scmpub.pub.TransferMapToVOTool;
/**
* @version NCC1909
* @Description: 销售出库单维护接口实现类
* @author: 曹军
* @date: 2019-5-17 上午10:19:25
*/
public class APISaleOutMaintainImpl implements IAPISaleOutMaintain {
@Override
public SaleOutVO[] save(List<Map<String, Object>> paramList) throws BusinessException {
// MapList转聚合VOList
List<SaleOutVO> aggVOList =
TransferMapToVOTool.transferMapToAggVO(paramList, SaleOutVO.class);
SaleOutVO[] vos = aggVOList.toArray(new SaleOutVO[aggVOList.size()]);
// 设置货位序列号VO
ICAPILocationVOUtils.setLocationVO(ICBillType.PurchaseIn.getCode(), vos);
// 1传入数据基本非空校验
BillVOsCheckRule checker =
new BillVOsCheckRule(new CheckSaleOutSaveValidator());
checker.check(vos);
// 2编码翻译成pk
aggVOList = TransferCodeToPKTool.transferAggVO(aggVOList);
// 翻译货位
ICAPILocationVOUtils.translate(vos);
// 其他数据填充
new SaleOutSaveFillValue().setDefaultValue(vos);
return (SaleOutVO[]) PfServiceScmUtil.processBatch("WRITE", "4C", vos, null,
null);
}
@Override
public SaleOutVO[] update(List<Map<String, Object>> paramList) throws BusinessException {
// MapList转聚合VOList
List<SaleOutVO> aggVOList =
TransferMapToVOTool.transferMapToAggVO(paramList, SaleOutVO.class);
// 2编码翻译成pk
aggVOList = TransferCodeToPKTool.transferAggVO(aggVOList);
SaleOutVO[] vos =
aggVOList.toArray(new SaleOutVO[aggVOList.size()]);
// 设置货位序列号VO
ICAPILocationVOUtils.setLocationVO(ICBillType.MaterialOut.getCode(), vos);
SaleOutHeadVO newVO = vos[0].getHead();
String cgeneralhid = newVO.getCgeneralhid();
if (StringUtils.isEmpty(cgeneralhid)) {
throw new BusinessException(nc.vo.ml.NCLangRes4VoTransl.getNCLangRes()
.getStrByID("4008027_0", "04008027-0390")/*
* @res
* "修改销售出库单请指定表头主键cgeneralhid值。"
*/);
}
SCMBillQuery<SaleOutVO> queryTool =
new SCMBillQuery<SaleOutVO>(SaleOutVO.class);
SaleOutVO[] saleOutVOs = queryTool.queryVOByIDs(new String[]{
cgeneralhid
});
Map<String, ICLocationVO[]> deleteLoc =
new HashMap<String, ICLocationVO[]>();
// 加载原始单据和货位信息
SaleOutVO[] originBills = queryTool.queryVOByIDs(new String[]{
cgeneralhid
});
ICLocationUtil.loadLocationVOs(originBills);
if (ArrayUtils.isEmpty(saleOutVOs)) {
throw new BusinessException(nc.vo.ml.NCLangRes4VoTransl.getNCLangRes()
.getStrByID("4008027_0", "04008027-0360")/*
* @res
* "没找到要修改的出库单信息请检查数据的表头主键cgeneralhid。"
*/);
} else {
List<String> headProFields =
CheckProhibitUpdateFields.getHeadProhibitFields("4C");
List<String> bodyProFields =
CheckProhibitUpdateFields.getBodyProhibitFields("4C");
SaleOutHeadVO origVO = saleOutVOs[0].getHead();
if (origVO.getFbillflag() == null
|| 0 != ((Integer) ICBillFlag.FREE.value())
.compareTo((Integer) origVO.getFbillflag())) {
throw new BusinessException(nc.vo.ml.NCLangRes4VoTransl
.getNCLangRes().getStrByID("4008027_0", "04008027-0361")/*
* @res
* "当前出库单编号:"
*/
+ origVO.getVbillcode()
+ nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID(
"4008027_0", "04008027-0362")/* @res "不是自由状态,不能修改" */);
}
origVO.setStatus(VOStatus.UPDATED);
for (String attr : newVO.getAttributeNames()) {
if (newVO.getAttributeValue(attr) == null) {
continue;
}
if (headProFields.contains(attr)
&& !newVO.getAttributeValue(attr).equals(
origVO.getAttributeValue(attr))) {
throw new BusinessException(nc.vo.ml.NCLangRes4VoTransl
.getNCLangRes().getStrByID("4008027_0", "04008027-0363")/*
* @res
* "表头字段:"
*/
+ attr
+ nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID(
"4008027_0", "04008027-0364")/* @res "不允许修改。" */);
}
origVO.setAttributeValue(attr, newVO.getAttributeValue(attr));
}
for (SaleOutVO orivo : originBills) {
SaleOutBodyVO[] oribodys = orivo.getBodys();
for (SaleOutBodyVO oribody : oribodys) {
ICLocationVO[] locationVOs = oribody.getLocationVOs();
if (null != locationVOs) {
deleteLoc.put(oribody.getCgeneralbid(), locationVOs);
}
}
}
if (vos[0].getBodys() != null) {
Map<String, SaleOutBodyVO> pkbs =
new HashMap<String, SaleOutBodyVO>();
for (SaleOutBodyVO origBvo : saleOutVOs[0].getBodys()) {
origBvo.setStatus(VOStatus.UPDATED);
pkbs.put(origBvo.getCgeneralbid(), origBvo);
}
for (SaleOutBodyVO newBvo : vos[0].getBodys()) {
SaleOutBodyVO roigBvo = pkbs.get(newBvo.getCgeneralbid());
if (newBvo.getCgeneralbid() == null || roigBvo == null) {
throw new BusinessException(nc.vo.ml.NCLangRes4VoTransl
.getNCLangRes().getStrByID("4008027_0", "04008027-0365")/*
* @res
* "没有匹配到原始出库单表体信息请检查数据的表体主键cgeneralbid。"
*/);
}
Set<String> bfields = new HashSet<String>();
for (String battr : newBvo.getAttributeNames()) {
if (newBvo.getAttributeValue(battr) == null) {
continue;
}
if (bodyProFields.contains(battr)
&& !newBvo.getAttributeValue(battr).equals(
roigBvo.getAttributeValue(battr))) {
throw new BusinessException(nc.vo.ml.NCLangRes4VoTransl
.getNCLangRes().getStrByID("4008027_0", "04008027-0366")/*
* @res
* "表体字段:"
*/
+ battr
+ nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID(
"4008027_0", "04008027-0364")/* @res "不允许修改。" */);
}
roigBvo.setAttributeValue(battr, newBvo.getAttributeValue(battr));
bfields.add(battr);
}
//设置货位序列号孙表,把原来的孙表删除修改的货位置为新增
if (null != newBvo.getLocationVOs()) {
List<ICLocationVO> allloc = new ArrayList<ICLocationVO>();
if (null != deleteLoc && null != deleteLoc.get(roigBvo.getCgeneralbid())) {
for (ICLocationVO delloc : deleteLoc.get(roigBvo.getCgeneralbid())) {
delloc.setStatus(VOStatus.DELETED);
allloc.add(delloc);
}
}
for (ICLocationVO loc : newBvo.getLocationVOs()) {
loc.setStatus(VOStatus.NEW);
allloc.add(loc);
}
roigBvo.setLocationVOs(allloc.toArray(new ICLocationVO[allloc.size()]));
}
// 翻译货位
ICAPILocationVOUtils.translate(saleOutVOs);
// 其他数据填充
new SaleOutUpdateFillValue().setDefaultValue(saleOutVOs, bfields);
}
}
}
return NCLocator.getInstance()
.lookup(nc.itf.ic.m4c.self.ISaleOutMaintain.class)
.update(saleOutVOs, originBills);
}
@Override
public SaleOutVO[] updateAndSign(List<Map<String, Object>> paramList) throws BusinessException {
SaleOutVO[] updateVOs =NCLocator.getInstance().lookup(IAPISaleOutMaintain.class).update(paramList);
SaleOutVO[] signVOs =NCLocator.getInstance().lookup(IAPISaleOutMaintain.class).sign(updateVOs);
return signVOs;
}
@Override
public SaleOutVO[] delete(SaleOutVO[] vos) throws BusinessException {
if (ArrayUtils.isEmpty(vos)) {
return null;
}
for (SaleOutVO aggvo : vos) {
ICBillHeadVO parentVO = aggvo.getParentVO();
if (parentVO.getFbillflag() == null
|| 0 != ((Integer) ICBillFlag.FREE.value())
.compareTo((Integer) parentVO.getFbillflag())) {
throw new BusinessException(nc.vo.ml.NCLangRes4VoTransl
.getNCLangRes().getStrByID("4008027_0", "04008027-0361")/*
* @res
* "当前出库单编号:"
*/
+ parentVO.getVbillcode()
+ nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID(
"4008027_0", "04008027-0367")/* @res "不是自由状态,不能删除" */);
}
}
return (SaleOutVO[]) PfServiceScmUtil.processBatch("DELETE", "4C", vos,
null, null);
}
@Override
public SaleOutVO[] sign(SaleOutVO[] vos) throws BusinessException {
if (ArrayUtils.isEmpty(vos)) {
return null;
}
for (SaleOutVO aggvo : vos) {
ICBillHeadVO parentVO = aggvo.getParentVO();
if (parentVO.getFbillflag() == null
|| 0 != ((Integer) ICBillFlag.FREE.value())
.compareTo((Integer) parentVO.getFbillflag())) {
throw new BusinessException(nc.vo.ml.NCLangRes4VoTransl
.getNCLangRes().getStrByID("4008027_0", "04008027-0361")/*
* @res
* "当前出库单编号:"
*/
+ parentVO.getVbillcode()
+ nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID(
"4008027_0", "04008027-0330")/* @res "不是自由状态,不能签字" */);
}
if (aggvo.getChildrenVO() != null && aggvo.getChildrenVO().length > 0) {
if (aggvo.getChildrenVO()[0]
.getAttributeValue(ICPubMetaNameConst.NNUM) == null) {
throw new BusinessException(nc.vo.ml.NCLangRes4VoTransl
.getNCLangRes().getStrByID("4008027_0", "04008027-0361")/*
* @res
* "当前出库单编号:"
*/
+ parentVO.getVbillcode()
+ nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID(
"4008027_0", "04008027-0331")/* @res "主数量为空,不能签字" */);
}
}
}
ICLocationUtil.loadLocationVOs(vos);
return (SaleOutVO[]) PfServiceScmUtil.processBatch("SIGN", "4C", vos,
null, null);
}
@Override
public SaleOutVO[] unSign(SaleOutVO[] vos) throws BusinessException {
// TODO Auto-generated method stub
return null;
}
@Override
public SaleOutVO[] saveRefSaleOrder(List<Map<String, Object>> paramList) throws BusinessException {
// MapList转聚合VOList
List<SaleOutVO> aggVOList =
TransferMapToVOTool.transferMapToAggVO(paramList, SaleOutVO.class);
SaleOutVO[] vos = aggVOList.toArray(new SaleOutVO[aggVOList.size()]);
// 1传入数据基本非空校验
BillVOsCheckRule checker =
new BillVOsCheckRule(new CheckSaleOutSaveValidator());
checker.check(vos);
// 2编码翻译成pk
aggVOList = TransferCodeToPKTool.transferAggVO(aggVOList);
// 其他数据填充
new SaleOutSaveFromRefFillValue().setRefValue(vos, "30");
// 保存销售出库单
return (SaleOutVO[]) PfServiceScmUtil.processBatch("WRITE", "4C", vos, null,
null);
}
@Override
public SaleOutVO[] saveRefDelivery(List<Map<String, Object>> paramList) throws BusinessException {
// MapList转聚合VOList
List<SaleOutVO> aggVOList =
TransferMapToVOTool.transferMapToAggVO(paramList, SaleOutVO.class);
SaleOutVO[] vos = aggVOList.toArray(new SaleOutVO[aggVOList.size()]);
// 1传入数据基本非空校验
BillVOsCheckRule checker =
new BillVOsCheckRule(new CheckSaleOutSaveValidator());
checker.check(vos);
// 2编码翻译成pk
aggVOList = TransferCodeToPKTool.transferAggVO(aggVOList);
// 其他数据填充
new SaleOutSaveFromRefFillValue().setRefValue(vos, "4331");
// 保存销售出库单
return (SaleOutVO[]) PfServiceScmUtil.processBatch("WRITE", "4C", vos, null,
null);
}
@Override
public SaleOutVO[] saveFromRef(List<Map<String, Object>> paramList)
throws BusinessException {
// MapList转聚合VOList
List<SaleOutVO> aggVOList =
TransferMapToVOTool.transferMapToAggVO(paramList, SaleOutVO.class);
SaleOutVO[] vos =
aggVOList.toArray(new SaleOutVO[aggVOList.size()]);
// 1传入数据基本非空校验
BillVOsCheckRule checker =
new BillVOsCheckRule(new CheckSaleOutSaveValidator());
checker.check(vos);
// 2编码翻译成pk
aggVOList = TransferCodeToPKTool.transferAggVO(aggVOList);
//设置组织vid
new ChooseHeadOrg().process(vos);
//设置行号
VORowNoUtils.setVOsRowNoByRule(vos, MetaNameConst.CROWNO);
ISaleOutMaintainAPI saleOut = NCLocator.getInstance().lookup(ISaleOutMaintainAPI.class);
return saleOut.insertBills(vos);
}
}

View File

@ -0,0 +1,93 @@
package nccloud.api.ic.m4c;
import java.util.List;
import java.util.Map;
import nc.vo.ic.m4c.entity.SaleOutVO;
import nc.vo.pub.BusinessException;
/**
*
* @Description: 销售出库单维护接口
*
* @author: 曹军
* @date: 2019-5-17 上午9:23:53
* @version NCC1909
*/
public interface IAPISaleOutMaintain {
/**
* 销售出库单新增保存操作
* @param vos
* @return
* @throws BusinessException
*/
public SaleOutVO[] save(List<Map<String, Object>> paramList) throws BusinessException;
/**
* 销售出库单修改操作
* @param vos
* @return
* @throws BusinessException
*/
public SaleOutVO[] update(List<Map<String, Object>> paramList) throws BusinessException;
/**
* 销售出库单修改签字操作
* @param paramList
* @return
* @throws BusinessException
*/
public SaleOutVO[] updateAndSign(List<Map<String, Object>> paramList) throws BusinessException;
/**
* 销售出库单删除操作
* @param vos
* @return
* @throws BusinessException
*/
public SaleOutVO[] delete(SaleOutVO[] vos) throws BusinessException;
/**
* 销售出库单签字操作
* @param vos
* @return
* @throws BusinessException
*/
public SaleOutVO[] sign(SaleOutVO[] vos) throws BusinessException;
/**
* 销售出库单取消签字操作
* @param vos
* @return
* @throws BusinessException
*/
public SaleOutVO[] unSign(SaleOutVO[] vos) throws BusinessException;
/**
* 根据销售订单生成销售出库单
* @param vos
* @return
* @throws BusinessException
*/
public SaleOutVO[] saveRefSaleOrder(List<Map<String, Object>> paramMapList)
throws BusinessException;
/**
* 根据发货单生成销售出库单
* @param vos
* @return
* @throws BusinessException
*/
public SaleOutVO[] saveRefDelivery (List<Map<String, Object>> paramMapList)
throws BusinessException;
/**
* 参照生成销售出库单
* @param vos
* @return
* @throws BusinessException
*/
public SaleOutVO[] saveFromRef (List<Map<String, Object>> paramList)
throws BusinessException;
}

View File

@ -0,0 +1,272 @@
package nccloud.openapi.ic.m4c;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import nc.bs.framework.common.InvocationInfoProxy;
import org.json.JSONString;
import nc.bs.framework.common.NCLocator;
import nc.bs.scmpub.query.SCMBillQuery;
import nc.vo.ic.m4c.entity.SaleOutVO;
import nc.vo.ic.pub.define.ICPubMetaNameConst;
import nc.ws.opm.pub.utils.result.APIErrCodeEnum;
import nccloud.api.ic.m4c.IAPISaleOutMaintain;
import nccloud.api.ic.m4c.IAPISaleOutQuery;
import nccloud.api.rest.utils.ResultMessageUtil;
import nccloud.openapi.scmpub.pub.NCCPubRestResource;
/**
*
* @Description: 库存销售出库单资源类
*
* @author: 曹军
* @date: 2019-5-17 上午10:21:00
* @version NCC1909
*/
@Path("ic/saleout")
public class SaleOutResource extends NCCPubRestResource {
private Integer pageNo = defaultPageIndex;
private Integer pageSize = defaultPageNum;
private static String HEADTABLE = "ic_saleout_h";
private static String BODYTABLE = "ic_saleout_b";
@POST
@Path("commonquery")
@Consumes("application/json")
@Produces("application/json")
public JSONString queryVOByCommon(Map<String, Object> paramMap) {
if (paramMap == null || !paramMap.containsKey(ICPubMetaNameConst.PK_ORG)
|| !paramMap.containsKey(ICPubMetaNameConst.DBILLDATE)) {
return ResultMessageUtil.exceptionToJSON("传入参数错误,组织、单据日期条件必输", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
}
try {
// 处理传过来的分页信息
if (paramMap.get(PAGE_NO) != null) {
Double pageno = (Double) paramMap.get(PAGE_NO);
this.pageNo = pageno.intValue();
}
if (paramMap.get(PAGE_SIZE) != null) {
Double pagesize = (Double) paramMap.get(PAGE_SIZE);
this.pageSize = pagesize.intValue();
}
IAPISaleOutQuery iQuery =
NCLocator.getInstance().lookup(IAPISaleOutQuery.class);
SaleOutVO[] saleoutVOs =
iQuery.queryPageVOByScheme(paramMap, this.pageNo,
this.pageSize);
return ResultMessageUtil.toJSON(saleoutVOs,
nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID(
"4008027_0", "04008027-0460")/* @res "销售出库单查询成功" */);
}
catch (Exception e) {
return ResultMessageUtil.exceptionToJSON(e);
}
}
@POST
@Path("schemequery")
@Consumes("application/json")
@Produces("application/json")
public JSONString queryVOByScheme(Map<String, Object> paramMap) {
if (paramMap == null) {
return ResultMessageUtil.exceptionToJSON("传入参数为空,请检查", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
}
try {
// 调用查询接口
IAPISaleOutQuery query =
NCLocator.getInstance().lookup(IAPISaleOutQuery.class);
SaleOutVO[] saleOutVOs = query.queryVOByScheme(paramMap);
return ResultMessageUtil.toJSON(saleOutVOs,
nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID("4008027_0",
"04008027-0460")/* @res "销售出库单查询成功" */);
}
catch (Exception e) {
return ResultMessageUtil.exceptionToJSON(e);
}
}
@POST
@Path("save")
@Consumes("application/json")
@Produces("application/json")
public JSONString save(List<Map<String, Object>> paramList) {
try {
for (Map<String, Object> map : paramList) {
if (!map.containsKey(HEADTABLE) || !map.containsKey(BODYTABLE)) {
return ResultMessageUtil.exceptionToJSON("传入数据异常,参数要包含表头信息和表体信息", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
}
}
// 保存
SaleOutVO[] saleOutVOs =
NCLocator.getInstance().lookup(IAPISaleOutMaintain.class)
.save(paramList);
return ResultMessageUtil.toJSON(saleOutVOs,
nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID("4008027_0",
"04008027-0462")/* @res "销售出库单保存成功" */);
}
catch (Exception e) {
return ResultMessageUtil.exceptionToJSON(e);
}
}
@POST
@Path("update")
@Consumes("application/json")
@Produces("application/json")
public JSONString update(Map<String, Object> paramMap) {
try {
if (paramMap == null || !paramMap.containsKey(HEADTABLE)) {
return ResultMessageUtil.exceptionToJSON("传入数据异常,参数要包含表头信息和表体信息", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
}
List<Map<String, Object>> paramMapList= new ArrayList<>();
paramMapList.add(paramMap);
//锐制需要修改保存时走签字
String userCode = InvocationInfoProxy.getInstance().getUserCode();
if("gaoning".equals(userCode)){
// 修改并签字--事务一致
SaleOutVO[] signVOs =NCLocator.getInstance().lookup(IAPISaleOutMaintain.class).updateAndSign(paramMapList);
return ResultMessageUtil.toJSON(signVOs,
nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID("4008027_0",
"04008027-0464")/* @res "销售出库单修改签字成功" */);
}else{
// 修改
SaleOutVO[] updateVO =
NCLocator.getInstance().lookup(IAPISaleOutMaintain.class)
.update(paramMapList);
return ResultMessageUtil.toJSON(updateVO,
nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID("4008027_0",
"04008027-0464")/* @res "销售出库单修改成功" */);
}
}
catch (Exception e) {
return ResultMessageUtil.exceptionToJSON(e);
}
}
@POST
@Path("delete")
@Consumes("application/json")
@Produces("application/json")
public JSONString delete(String[] hids) {
if (hids == null || hids.length == 0) {
return ResultMessageUtil.exceptionToJSON("传入参数为空,请检查", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
}
else {
try {
SCMBillQuery<SaleOutVO> queryTool =
new SCMBillQuery<SaleOutVO>(SaleOutVO.class);
SaleOutVO[] saleOutVOs = queryTool.queryVOByIDs(hids);
if (saleOutVOs.length == 0) {
return ResultMessageUtil.exceptionToJSON("根据传入数据未匹配到相关数据", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
}
else {
NCLocator.getInstance()
.lookup(IAPISaleOutMaintain.class).delete(saleOutVOs);
return ResultMessageUtil.toJSON(new String[0], nc.vo.ml.NCLangRes4VoTransl
.getNCLangRes().getStrByID("4008027_0", "04008027-0466")/*
* @res
* "销售出库单删除成功"
*/);
}
}
catch (Exception e) {
return ResultMessageUtil.exceptionToJSON(e);
}
}
}
@POST
@Path("sign")
@Consumes("application/json")
@Produces("application/json")
public JSONString sign(String[] hids) {
if (hids == null || hids.length == 0) {
return ResultMessageUtil.exceptionToJSON("传入参数为空,请检查", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
}
else {
try {
SCMBillQuery<SaleOutVO> queryTool =
new SCMBillQuery<SaleOutVO>(SaleOutVO.class);
SaleOutVO[] saleOutVOs = queryTool.queryVOByIDs(hids);
if (saleOutVOs.length == 0) {
return ResultMessageUtil.exceptionToJSON("根据传入数据未匹配到相关数据", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
}
else {
saleOutVOs =
NCLocator.getInstance()
.lookup(IAPISaleOutMaintain.class).sign(saleOutVOs);
return ResultMessageUtil.toJSON(saleOutVOs, nc.vo.ml.NCLangRes4VoTransl
.getNCLangRes().getStrByID("4008027_0", "04008027-0468")/*
* @res
* "销售出库单签字成功"
*/);
}
}
catch (Exception e) {
return ResultMessageUtil.exceptionToJSON(e);
}
}
}
@POST
@Path("saveRefSaleOrder")
@Consumes("application/json")
@Produces("application/json")
public JSONString saveRefSaleOrder(Map<String, Object> paramMap) {
try {
if (!paramMap.containsKey(HEADTABLE) || !paramMap.containsKey(BODYTABLE)) {
return ResultMessageUtil.exceptionToJSON("传入数据异常,参数要包含表头信息和表体信息", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
}
List<Map<String, Object>> paramMapList= new ArrayList<>();
paramMapList.add(paramMap);
IAPISaleOutMaintain service =
NCLocator.getInstance().lookup(IAPISaleOutMaintain.class);
SaleOutVO[] resultVOs =
service.saveRefSaleOrder(paramMapList);
// 返回结果
return ResultMessageUtil.toJSON(resultVOs, "销售出库单保存成功");
}
catch (Exception e) {
return ResultMessageUtil.exceptionToJSON(e);
}
}
@POST
@Path("saveRefDelivery")
@Consumes("application/json")
@Produces("application/json")
public JSONString saveRefDelivery(Map<String, Object> paramMap) {
try {
if (!paramMap.containsKey(HEADTABLE) || !paramMap.containsKey(BODYTABLE)) {
return ResultMessageUtil.exceptionToJSON("传入数据异常,参数要包含表头信息和表体信息", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
}
List<Map<String, Object>> paramMapList= new ArrayList<>();
paramMapList.add(paramMap);
IAPISaleOutMaintain service =
NCLocator.getInstance().lookup(IAPISaleOutMaintain.class);
SaleOutVO[] resultVOs =
service.saveRefDelivery(paramMapList);
return ResultMessageUtil.toJSON(resultVOs, "销售出库单保存成功");
}
catch (Exception e) {
return ResultMessageUtil.exceptionToJSON(e);
}
}
}