委外加工入库保存openapi接口

This commit is contained in:
李正@用友 2025-05-15 14:16:30 +08:00
parent 4dd007bbf2
commit 10e7dcacd3
8 changed files with 601 additions and 0 deletions

View File

@ -0,0 +1,152 @@
<?xml version="1.0" encoding="gb2312"?>
<module name="SCM_IC_EJB60">
<public>
<!--粒劃 ⻌踱等峎誘-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m45.IAPIPurchaseInMaitain</interface>
<implementation>nccloud.api.impl.ic.m45.APIPurchaseInMaitainImpl</implementation>
</component>
<!--粒劃 ⻌踱等脤戙-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m45.IAPIPurchaseInQuery</interface>
<implementation>nccloud.api.impl.ic.m45.APIPurchaseInQueryImpl</implementation>
</component>
<!--莉傖ⅲ ⻌踱等峎誘-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m46.IAPIProductInMaitain</interface>
<implementation>nccloud.api.impl.ic.m46.APIProductInMaitainImpl</implementation>
</component>
<!--莉傖ⅲ ⻌踱等脤戙-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m46.IAPIProductInQuery</interface>
<implementation>nccloud.api.impl.ic.m46.APIProductInQueryImpl</implementation>
</component>
<!--[坳 ⻌踱等峎誘-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4a.IAPIGeneralInMaitain</interface>
<implementation>nccloud.api.impl.ic.m4a.APIGeneralInMaitainImpl</implementation>
</component>
<!--[坳 ⻌踱等脤戙-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4a.IAPIGeneralInQuery</interface>
<implementation>nccloud.api.impl.ic.m4a.APIGeneralInQueryImpl</implementation>
</component>
<!--覃畢 ⻌踱等峎誘-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4e.IAPITransInMaitain</interface>
<implementation>nccloud.api.impl.ic.m4e.APITransInMaitainImpl</implementation>
</component>
<!--覃畢 ⻌踱等脤戙-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4e.IAPITransInQuery</interface>
<implementation>nccloud.api.impl.ic.m4e.APITransInQueryImpl</implementation>
</component>
<!--汜莉惆煙 ⻌踱等峎誘-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4x.IAPIDiscardInMaitain</interface>
<implementation>nccloud.api.impl.ic.m4x.APIDiscardInMaitainImpl</implementation>
</component>
<!--汜莉惆煙 ⻌踱等脤戙-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4x.IAPIDiscardInQuery</interface>
<implementation>nccloud.api.impl.ic.m4x.APIDiscardInQueryImpl</implementation>
</component>
<!--堤踱扠ワ等峎誘-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4455.IAPISapplyBillMaintain</interface>
<implementation>nccloud.api.impl.ic.m4455.APISapplyBillMaintainImpl</implementation>
</component>
<!--堤踱扠ワ等脤戙-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4455.IAPISapplyBillQuery</interface>
<implementation>nccloud.api.impl.ic.m4455.APISapplyBillQueryImpl</implementation>
</component>
<!--[坳堤踱等峎誘-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4i.IAPIGeneralOutMaintain</interface>
<implementation>nccloud.api.impl.ic.m4i.APIGeneralOutMaintainImpl</implementation>
</component>
<!--[坳堤踱等脤戙-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4i.IAPIGeneralOutQuery</interface>
<implementation>nccloud.api.impl.ic.m4i.APIGeneralOutQueryImpl</implementation>
</component>
<!--种忮堤踱等峎誘-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4c.IAPISaleOutMaintain</interface>
<implementation>nccloud.api.impl.ic.m4c.APISaleOutMaintainImpl</implementation>
</component>
<!--种忮堤踱等脤戙-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4c.IAPISaleOutQuery</interface>
<implementation>nccloud.api.impl.ic.m4c.APISaleOutQueryImpl</implementation>
</component>
<!--第蹋堤踱等峎誘-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4d.IAPIMaterialOutMaintain</interface>
<implementation>nccloud.api.impl.ic.m4d.APIMaterialOutMaintainImpl</implementation>
</component>
<!--第蹋堤踱等脤戙-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4d.IAPIMaterialOutQuery</interface>
<implementation>nccloud.api.impl.ic.m4d.APIMaterialOutQueryImpl</implementation>
</component>
<!--蛌踱等峎誘-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4k.IAPIWhsTransMaintain</interface>
<implementation>nccloud.api.impl.ic.m4k.APIWhsTransMaintainImpl</implementation>
</component>
<!--蛌踱等脤戙-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4k.IAPIWhsTransQuery</interface>
<implementation>nccloud.api.impl.ic.m4k.APIWhsTransQueryIpml</implementation>
</component>
<!--測菜堍煤楷⑺峎誘-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4816.IAPIPrePaidInvoiceMaintain</interface>
<implementation>nccloud.api.impl.ic.m4816.APIPrePaidInvoiceMaintainImpl</implementation>
</component>
<!--億弇覃淕等-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4q.IAPILocadjustMaintain</interface>
<implementation>nccloud.api.impl.ic.m4q.APILocadjustMaintainImpl</implementation>
</component>
<!--攫萸等紱釬-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4r.IAPIInvcountMaintain</interface>
<implementation>nccloud.api.impl.ic.m4r.APIInvcountMaintainImpl</implementation>
</component>
<!--攫萸等脤戙-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m4r.IAPIInvcountQuery</interface>
<implementation>nccloud.api.impl.ic.m4r.APIInvcountQueryImpl</implementation>
</component>
<!--脤戙珋湔講-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.onhand.IAPIOnhandQuery</interface>
<implementation>nccloud.api.impl.ic.onhand.APIOnhandQueryIpml</implementation>
</component>
<!--脤戙褫蚚講-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.atp.IAPIATPQuery</interface>
<implementation>nccloud.api.impl.ic.atp.ATPQueryIpml</implementation>
</component>
<!--巹俋樓馱 ⻌踱等-->
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nccloud.api.ic.m47.IAPISubcontInMaintain</interface>
<implementation>nccloud.api.impl.ic.m47.APISubcontInMaintainImpl</implementation>
</component>
<!--巹俋樓馱 ⻌踱等-->
</public>
</module>

51
ic/META-INF/icbill.rest Normal file
View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="gb2312"?>
<module>
<rest>
<resource classname="nccloud.openapi.ic.m45.PurchaseInResource" exinfo=""/>
</rest>
<rest>
<resource classname="nccloud.openapi.ic.m46.ProductInResource" exinfo=""/>
</rest>
<rest>
<resource classname="nccloud.openapi.ic.m4a.GeneralInResource" exinfo=""/>
</rest>
<rest>
<resource classname="nccloud.openapi.ic.m4e.TransInResource" exinfo=""/>
</rest>
<rest>
<resource classname="nccloud.openapi.ic.m4x.DiscardInResource" exinfo=""/>
</rest>
<rest>
<resource classname="nccloud.openapi.ic.m4455.SapplyBillResource" exinfo=""/>
</rest>
<rest>
<resource classname="nccloud.openapi.ic.m4i.GeneralOutResource" exinfo=""/>
</rest>
<rest>
<resource classname="nccloud.openapi.ic.m4c.SaleOutResource" exinfo=""/>
</rest>
<rest>
<resource classname="nccloud.openapi.ic.m4d.MaterialOutResource" exinfo=""/>
</rest>
<rest>
<resource classname="nccloud.openapi.ic.m4k.WhstransResource" exinfo=""/>
</rest>
<rest>
<resource classname="nccloud.openapi.ic.m4816.PrePaidInvoiceResource" exinfo=""/>
</rest>
<rest>
<resource classname="nccloud.openapi.ic.m4q.LocadjustResource" exinfo=""/>
</rest>
<rest>
<resource classname="nccloud.openapi.ic.m4r.InvcountResource" exinfo=""/>
</rest>
<rest>
<resource classname="nccloud.openapi.ic.onhand.OnhandResource" exinfo=""/>
</rest>
<rest>
<resource classname="nccloud.openapi.ic.atp.ATPResource" exinfo=""/>
</rest>
<rest>
<resource classname="nccloud.openapi.ic.m47.SubcontInResource" exinfo=""/>
</rest>
</module>

View File

@ -0,0 +1,45 @@
package nccloud.api.impl.ic.m47;
import nc.bs.framework.common.NCLocator;
import nc.itf.ic.m47.ISubcontInMaintain;
import nc.vo.ic.m47.entity.SubcontInVO;
import nc.vo.scmpub.check.billvalidate.BillVOsCheckRule;
import nc.vo.scmpub.res.billtype.ICBillType;
import nccloud.api.ic.m47.IAPISubcontInMaintain;
import nccloud.api.impl.ic.m47.check.CheckSubcontInSaveValidator;
import nccloud.api.impl.ic.m47.fill.SubcontInSaveFillValue;
import nccloud.openapi.ic.util.ICAPILocationVOUtils;
import nccloud.openapi.scmpub.pub.TransferCodeToPKTool;
import nccloud.openapi.scmpub.pub.TransferMapToVOTool;
import java.util.List;
import java.util.Map;
/**
* @Classname APISubcontInMaintainImpl
* @Description TODO
* @Version 1.0.0
* @Date 2025/5/15 9:46
* @Created by ame
*/
public class APISubcontInMaintainImpl implements IAPISubcontInMaintain {
@Override
public SubcontInVO[] save(List<Map<String, Object>> subcontInVOList) throws Exception {
List<SubcontInVO> aggVOList = TransferMapToVOTool.transferMapToAggVO(subcontInVOList, SubcontInVO.class);
SubcontInVO[] vos = aggVOList.toArray(new SubcontInVO[0]);
// 设置货位序列号VO
ICAPILocationVOUtils.setLocationVO(ICBillType.PurchaseIn.getCode(), vos);
// 1传入数据基本非空校验
BillVOsCheckRule checker =
new BillVOsCheckRule(new CheckSubcontInSaveValidator());
checker.check(vos);
// 2编码翻译成pk
aggVOList = TransferCodeToPKTool.transferAggVO(aggVOList);
// 翻译货位
ICAPILocationVOUtils.translate(vos);
new SubcontInSaveFillValue().setDefaultValue(vos);
SubcontInVO[] insert = NCLocator.getInstance().lookup(ISubcontInMaintain.class).insert(vos);
return insert;
}
}

View File

@ -0,0 +1,100 @@
package nccloud.api.impl.ic.m47.check;
import nc.vo.ic.m47.entity.SubcontInBodyVO;
import nc.vo.ic.pub.define.ICPubMetaNameConst;
import nc.vo.pub.IAttributeMeta;
import nc.vo.pub.ISuperVO;
import nc.vo.pub.ValidationException;
import nc.vo.pubapp.pattern.model.entity.bill.AbstractBill;
import nc.vo.pubapp.pattern.pub.MapList;
import nc.vo.scmpub.check.vovalidate.VONullValidate;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* @Classname CheckSubcontInSaveValidator
* @Description TODO
* @Version 1.0.0
* @Date 2025/5/15 9:54
* @Created by ame
*/
public class CheckSubcontInSaveValidator extends VONullValidate {
@Override
public String[] getHeadNotNullFields() {
// TODO Auto-generated method stub
//组织仓库出入库类型编码
String[] headnames =
{
ICPubMetaNameConst.PK_ORG, ICPubMetaNameConst.CWAREHOUSEID, ICPubMetaNameConst.VTRANTYPECODE
};
return headnames;
}
@Override
public String[] getBodyNotNullFields() {
String[] bodynames = {
ICPubMetaNameConst.CMATERIALVID, ICPubMetaNameConst.NSHOULDASSISTNUM
// , ICPubMetaNameConst.CASTUNITID
};
return bodynames;
}
@Override
public MapList<String, String> getMultiBodyNotNullFields() {
return null;
}
@Override
public void otherCheck(AbstractBill billVO, List<ValidationException> exceptions) {
// check(billVO, null, new String[]{
// ICPubMetaNameConst.NNUM,
// SubcontInBodyVO.NORIGTAXMNY
// }, exceptions);
}
protected void check(AbstractBill bill, String[] headnullkeys,
String[] bodynullkeys, List<ValidationException> exceptions) {
// 检查表头
// 检查表体
checkBody(bill, bodynullkeys, exceptions);
}
private void checkBody(AbstractBill bill, String[] bodynullkeys,
List<ValidationException> exceptions) {
if (bodynullkeys != null) {
int row = 1;
ISuperVO[] supervos = bill.getChildren(SubcontInBodyVO.class);
Set<String> messagelist = new HashSet<String>();
for (ISuperVO vo : supervos) {
Set<String> nullbodyset = new HashSet<String>();
for (String bodynullkey : bodynullkeys) {
if (vo.getAttributeValue(bodynullkey) == null) {
IAttributeMeta attribute = vo.getMetaData().getAttribute(bodynullkey);
nullbodyset.add(attribute.getColumn().getLabel());
}
}
if (nullbodyset.size() > 0 && nullbodyset.size() == bodynullkeys.length) {
String message =
"表体第" + row + "行以下字段不能同时为空:" + getshow(nullbodyset, "");/*-=notranslate=-*/
messagelist.add(message);
}
row++;
}
if (messagelist.size() > 0) {
exceptions.add(new ValidationException(getshow(messagelist, "\r\n")));
}
}
}
private String getshow(Set<String> nullfields, String partition) {
StringBuffer str = new StringBuffer();
for (String field : nullfields) {
str.append(field + partition);
}
str.deleteCharAt(str.length() - 1);
return str.toString();
}
}

View File

@ -0,0 +1,69 @@
package nccloud.api.impl.ic.m47.fill;
import nc.bs.ic.pub.base.ICRule;
import nc.vo.ic.m47.entity.SubcontInVO;
import nc.vo.ic.pub.rule.ICBodyNshouldassistnumCal;
import nc.vo.ic.pub.rule.ICCountryInfoFillRule;
import nc.vo.ic.pub.rule.ICCvendoridFillRule;
import nc.vo.ic.pub.rule.ICCwarehouseidFillRule;
import nc.vo.ic.pub.rule.ICMaterialFullRule;
import nc.vo.ic.pub.rule.ICNchangestdrateFillRule;
import nc.vo.ic.pub.rule.ICNtaxrateFillRule;
import nc.vo.ic.pub.rule.ICOrgFillRule;
import nc.vo.ic.pub.rule.ICTranstypeFillRule;
import nc.vo.ic.pub.rule.processer.ICAroundProcesser;
import nccloud.api.impl.ic.m47.rule.Choose47DefaultFillRule;
/**
* @Classname SubcontInSaveFillValue
* @Description TODO
* @Version 1.0.0
* @Date 2025/5/15 10:10
* @Created by ame
*/
public class SubcontInSaveFillValue {
public void setDefaultValue(SubcontInVO[] vos) {
ICAroundProcesser<SubcontInVO> processer =
new ICAroundProcesser<SubcontInVO>();
// 组织
ICRule<SubcontInVO> rule = new ICOrgFillRule<SubcontInVO>();
processer.addFillvalueRule(rule);
// 国家
rule = new ICCountryInfoFillRule<SubcontInVO>();
processer.addFillvalueRule(rule);
// 表头供应商
rule = new ICCvendoridFillRule<SubcontInVO>();
processer.addFillvalueRule(rule);
// 仓库
rule = new ICCwarehouseidFillRule<SubcontInVO>();
processer.addFillvalueRule(rule);
// 交易类型
rule = new ICTranstypeFillRule<SubcontInVO>();
processer.addFillvalueRule(rule);
// 物料
rule = new ICMaterialFullRule<SubcontInVO>();
processer.addFillvalueRule(rule);
// 财务组织等默认值填充
rule = new Choose47DefaultFillRule<SubcontInVO>();
processer.addFillvalueRule(rule);
// 设置汇率
rule = new ICNchangestdrateFillRule<SubcontInVO>();
processer.addFillvalueRule(rule);
// 数量金额汇率税率处理
rule = new ICBodyNshouldassistnumCal<SubcontInVO>();
processer.addFillvalueRule(rule);
processer.fillvalue(vos);
}
}

View File

@ -0,0 +1,103 @@
package nccloud.api.impl.ic.m47.rule;
import nc.bs.ic.pub.base.ICRule;
import nc.pubitf.uapbd.CurrencyRateUtilHelper;
import nc.vo.ic.general.define.ICBillFlag;
import nc.vo.ic.m47.entity.SubcontInBodyVO;
import nc.vo.ic.m47.entity.SubcontInHeadVO;
import nc.vo.ic.m47.entity.SubcontInVO;
import nc.vo.ic.org.OrgInfoQuery;
import nc.vo.ic.pub.define.ICPubMetaNameConst;
import nc.vo.pub.lang.UFDate;
import nc.vo.pub.lang.UFDouble;
import nc.vo.pubapp.AppContext;
import nc.vo.pubapp.pattern.pub.PubAppTool;
/**
* @Classname Choose47DefaultFillRule
* @Description TODO
* @Version 1.0.0
* @Date 2025/5/15 10:19
* @Created by ame
*/
public class Choose47DefaultFillRule<E extends SubcontInVO> extends ICRule<E> {
@Override
public void process(E[] vos) {
for (E billvo : vos) {
// 填充默认值
setDefultInfo(billvo);
// 设置财务组织,币种
setFanaceorgValue(billvo);
}
}
private void setFanaceorgValue(SubcontInVO vo) {
SubcontInHeadVO head = vo.getHead();
String pk_org = head.getPk_org();
if (pk_org != null) {
String cfinanceoid =
new OrgInfoQuery().getFinanceOrgIDByCalBodyID(pk_org);
String cfinancevid =
new OrgInfoQuery().getFinanceOrgVIDByCalBodyID(pk_org);
String pk_orgv = head.getPk_org_v();
String cwareid = head.getCwarehouseid();
String ccurrencyid = CurrencyRateUtilHelper.getInstance()
.getLocalCurrtypeByOrgID(cfinanceoid);
SubcontInBodyVO[] bodys = vo.getBodys();
for (SubcontInBodyVO body : bodys) {
// 有来源的单据行不设置默认值只有自制入才设置默认值
String csourcebillbid = body.getCsourcebillbid();
if (!PubAppTool.isNull(csourcebillbid)) {
continue;
}
// 币种
if (null == body.getAttributeValue(SubcontInBodyVO.CORIGCURRENCYID)) {
body.setAttributeValue(SubcontInBodyVO.CORIGCURRENCYID, ccurrencyid);// TODO
body.setAttributeValue(SubcontInBodyVO.NCHANGESTDRATE, UFDouble.ONE_DBL);
}
body.setAttributeValue(SubcontInBodyVO.CCURRENCYID, ccurrencyid);
}
}
}
private void setDefultInfo(SubcontInVO vo) {
// 单据状态
vo.getHead().setAttributeValue(ICPubMetaNameConst.FBILLFLAG,
ICBillFlag.FREE.value());
UFDate busdate = AppContext.getInstance().getBusiDate();
String pk_group = (String) vo.getParentVO()
.getAttributeValue(ICPubMetaNameConst.PK_GROUP);
// 单据日期
if (null == vo.getParentVO()
.getAttributeValue(ICPubMetaNameConst.DBILLDATE)) {
vo.getParentVO().setAttributeValue(ICPubMetaNameConst.DBILLDATE, busdate);
}
// 制单人
if (null == vo.getParentVO()
.getAttributeValue(ICPubMetaNameConst.OPERATOR)) {
vo.getParentVO().setAttributeValue(ICPubMetaNameConst.OPERATOR,
AppContext.getInstance().getPkUser());
}
// 集团
if (null == pk_group) {
pk_group = AppContext.getInstance().getPkGroup();
vo.getParentVO().setAttributeValue(ICPubMetaNameConst.PK_GROUP, pk_group);
}
for (SubcontInBodyVO body : vo.getBodys()) {
// 入库日期
UFDate dbizdate = body.getDbizdate();
if (null == dbizdate) {
body.setDbizdate(busdate);
}
body.setPk_org(vo.getParentVO().getPk_org());
body.setPk_org_v(vo.getParentVO().getPk_org_v());
body.setPk_group(pk_group);
}
}
}

View File

@ -0,0 +1,18 @@
package nccloud.api.ic.m47;
import nc.vo.ic.m47.entity.SubcontInVO;
import java.util.List;
import java.util.Map;
/**
* @Classname IAPISubcontInMaintain
* @Description TODO
* @Version 1.0.0
* @Date 2025/5/15 9:45
* @Created by ame
*/
public interface IAPISubcontInMaintain {
SubcontInVO[] save(List<Map<String, Object>> subcontInVOList) throws Exception;
}

View File

@ -0,0 +1,63 @@
package nccloud.openapi.ic.m47;
import nc.bs.framework.common.NCLocator;
import nc.vo.ic.m47.entity.SubcontInVO;
import nc.vo.scmpub.res.billtype.ICBillType;
import nc.ws.opm.pub.utils.result.APIErrCodeEnum;
import nccloud.api.ic.m47.IAPISubcontInMaintain;
import nccloud.api.rest.utils.ResultMessageUtil;
import nccloud.openapi.ic.util.ICAPILocationVOUtils;
import nccloud.openapi.scmpub.pub.NCCPubRestResource;
import nccloud.openapi.scmpub.pub.TransferMapToVOTool;
import org.json.JSONString;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @Classname SubcontInResource
* @Description TODO
* @Version 1.0.0
* @Date 2025/5/15 8:54
* @Created by sdlizheng
*/
@Path("ic/subcontin")
public class SubcontInResource extends NCCPubRestResource {
private static String HEADTABLE = "ic_subcontin_h";
private static String BODYTABLE = "ic_subcontin_b";
@POST
@Path("operation/save")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString save(Map<String, Object> param) {
List<Map<String, Object>> paramList = new ArrayList();
paramList.add(param);
JSONString result = this.save(paramList);
return result;
}
@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());
}
}
SubcontInVO[] save = NCLocator.getInstance().lookup(IAPISubcontInMaintain.class).save(paramList);
return ResultMessageUtil.toJSON(save, "保存成功");
}catch (Exception e){
return ResultMessageUtil.exceptionToJSON(e);
}
}
}