
请求参数中添加附件 url
- 获取附件信息:


- 上传附件的文件服务器和拼装附件VO写入数据库

package indi.stitch.test;
import nccloud.open.api.auto.token.cur.utils.APICurUtils;
import nccloud.open.api.auto.token.itf.IAPIUtils;
import nccloud.open.api.auto.token.old.utils.APIOldUtils;
/**
* 测试销售合同OpenApi
* @author hwl
*
*/
public class TestZ3OpenApi {
public static void main(String[] args) throws Exception {
IAPIUtils util = null;
util = new APIOldUtils(); // 2021.05之前的版本
//util = new APICurUtils();//2021.05版本及以后版本
// 服务地址ip
String ip = "127.0.0.1";
// 服务地址端口号
String port = "80";
// 账套编码,开发环境使用develop,生产环境需要使用用root账号登录,在“系统管理”节点查看账套编码
String busi_center = "develop";
// 第三方应用编码
String app_id = "ysxttoncc";
// app_secret,用于请求加签
String app_secret = "3b1f844bb928482c95fc";
// 公钥,加解密使用
String public_key = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCEfh4A8uS5p5Tth+lsKl3xT1IF51U6ZcO9Bs27UCKOI9wlM2RYM03EMTvg3wzV1f953LUtdPlLv0dbiFQxyUp6O/YTsBa1Df3HDpJ8VcZXrJco5nPvXCWbtc7UWEBCrODdFWcdO6/pWlmWFJKCR29kuM+rzdvV49kyok61c6d9IQIDAQAB";
// ncc用户名
String ncc_user = "yonyou02";
// ncc用户密码
String password = "ncc1234";
util.init(ip, port, busi_center, app_id, app_secret, public_key, ncc_user, password);
// 获取token
String token = util.getToken();
System.out.println(token);
// 请求的OpenAPI接口地址,注意nccloud前面没有"/"
String apiuri = "nccloud/api/ct/saledaily/savebase";
util.setApiUrl(apiuri);
//对应接口地址的请求参数
String requestParam = "[{\"ct_sale\":{\"pk_org\":\"0001A310000000004OFT\",\"vbillcode\":\"RLJT2022-QN-XS-0007\",\"ctname\":\"测试OpenApi接口\",\"vtrantypecode\":\"Z3-01\",\"valdate\":\"2022-04-20 00:00:00\",\"invallidate\":\"2022-05-19 00:00:00\",\"pk_customer\":\"1001A31000000001GIQK\" },\"ct_sale_b\":[{\"pk_material\":\"1001A31000000008AT29\",\"nqtorigtaxprice\":1,\"nnum\":2,\"vmemo\":\"测试表体备注\"}],\"file\":[{\"name\":\"张店区人才公寓申请表\",\"type\":\"docx\",\"url\":\"http://www.zhangdian.gov.cn/resources/public/20220405/624bf9f559341953b634d39d.docx\"},{\"name\":\"单身承若书\",\"type\":\"doc\",\"url\":\"http://www.zhangdian.gov.cn/resources/public/20220405/624bf9f53f963d17a234d357.doc\"}]}]";
//进行接口测试
String result = util.getAPIRetrun(token, requestParam);
System.out.println(result);
}
}
package nccloud.openapi.ct.mz3;
import com.google.gdata.util.common.base.StringUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
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.NCLocator;
import nc.bs.scmpub.query.SCMBillQuery;
import nc.bs.scmpub.query.SCMViewQuery;
import nc.ui.querytemplate.operator.BetweenOperator;
import nc.ui.querytemplate.operator.EqOperator;
import nc.ui.querytemplate.operator.GtOperator;
import nc.ui.querytemplate.operator.LtOperator;
import nc.vo.ct.enumeration.CtEntity;
import nc.vo.ct.saledaily.entity.AggCtSaleVO;
import nc.vo.ct.saledaily.entity.CtSaleBVO;
import nc.vo.ct.saledaily.entity.CtSaleChangeVO;
import nc.vo.ct.saledaily.entity.CtSaleVO;
import nc.vo.ct.saledaily.entity.CtSalebillViewVO;
import nc.vo.ct.saledaily.entity.RecvPlanVO;
import nc.vo.pub.BusinessException;
import nc.vo.pub.ISuperVO;
import nc.vo.pub.lang.UFDateTime;
import nc.vo.pubapp.AppContext;
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
import nc.vo.scmpub.util.QuerySchemeBuilder;
import nccloud.api.ct.mz3.IAPISaledailyMaintain;
import nccloud.api.ct.mz3.IAPISaledailyQuery;
import nccloud.api.rest.utils.NCCRestUtils;
import nccloud.openapi.common.tool.ThirdSysFileToNcc;
import nccloud.openapi.scmpub.util.CallReturnBuildUtil;
import nccloud.ws.rest.resource.AbstractNCCRestResource;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONString;
@Path("ct/saledaily")
public class SaledailyResource extends AbstractNCCRestResource {
@POST
@Path("savebase")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString save(List<Map<String, Object>> paramList) {
Map<String, Object> result = new HashMap();
result.put("success", true);
ArrayList aggVOList = new ArrayList();
try {
Iterator var4 = paramList.iterator();
while (var4.hasNext()) {
Map<String, Object> map = (Map) var4.next();
if (!map.containsKey(CtEntity.ct_sale.name()) || !map.containsKey(CtEntity.ct_sale_b.name())) {
result.put("message", "传入数据异常,合同要包含表头信息和表体信息");
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
Map<String, String> headInfo = (Map) map.get(CtEntity.ct_sale.name());
List<Map<String, String>> bodyInfo = (List) map.get(CtEntity.ct_sale_b.name());
AggCtSaleVO aggvo = new AggCtSaleVO();
CtSaleVO hvo = new CtSaleVO();
Iterator var10 = headInfo.keySet().iterator();
while (var10.hasNext()) {
String headkey = (String) var10.next();
hvo.setAttributeValue(headkey, headInfo.get(headkey));
}
//add by hwl 20220420 客开新增附件 start
if (map.containsKey("file")) {
ThirdSysFileToNcc tsf = new ThirdSysFileToNcc();
//手动创建pk,给单据主键赋值,用pk关联附件信息(NCC附件管理的逻辑)
String pk = tsf.getPK();
hvo.setAttributeValue("pk_ct_sale", pk);
List<Map<String, String>> fileInfo = (List) map.get("file");
if(fileInfo.size()>0) {
tsf.UploadFileAction(pk,fileInfo);
}
System.out.println(fileInfo);
}
aggvo.setParentVO(hvo);
List<CtSaleBVO> bvoList = new ArrayList();
Iterator var20 = bodyInfo.iterator();
while (var20.hasNext()) {
Map<String, String> bodyMap = (Map) var20.next();
CtSaleBVO bvo = new CtSaleBVO();
Iterator var14 = bodyMap.keySet().iterator();
while (var14.hasNext()) {
String bodykey = (String) var14.next();
bvo.setAttributeValue(bodykey, bodyMap.get(bodykey));
}
bvoList.add(bvo);
}
aggvo.setCtSaleBVO((ISuperVO[]) bvoList.toArray(new CtSaleBVO[bvoList.size()]));
aggVOList.add(aggvo);
}
AggCtSaleVO[] ctSaleVOs = (AggCtSaleVO[]) aggVOList.toArray(new AggCtSaleVO[aggVOList.size()]);
AggCtSaleVO[] saveBase = ((IAPISaledailyMaintain) NCLocator.getInstance()
.lookup(IAPISaledailyMaintain.class)).saveBase(ctSaleVOs);
result.put("message", "合同保存成功");
result.put("data", saveBase);
result.put("code", 0);
return NCCRestUtils.toJSONString(result);
} catch (BusinessException var16) {
result.put("message", "合同保存异常" + var16.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
}
@POST
@Path("querybycodes")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString queryByBillcode(String[] billcodes) {
Map<String, Object> result = new HashMap();
result.put("success", true);
if (ArrayUtils.isEmpty(billcodes)) {
result.put("message", "传入合同编号不能为空,请检查");
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
} else {
try {
IAPISaledailyQuery query = (IAPISaledailyQuery) NCLocator.getInstance()
.lookup(IAPISaledailyQuery.class);
QuerySchemeBuilder builder = QuerySchemeBuilder.buildByFullClassName(CtSaleVO.class.getName());
builder.append("vbillcode", EqOperator.getInstance(), billcodes);
AggCtSaleVO[] vos = query.queryVOByScheme(builder.create());
if (ArrayUtils.isEmpty(vos)) {
result.put("message", "没有符合条件的数据");
result.put("code", 1);
} else {
result.put("message", "合同查询成功");
result.put("data", vos);
result.put("code", 0);
}
} catch (BusinessException var6) {
result.put("message", "查询合同出现异常" + var6.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
return NCCRestUtils.toJSONString(result);
}
}
@POST
@Path("querybyids")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString queryByHids(String[] hids) {
Map<String, Object> result = new HashMap();
result.put("success", true);
if (ArrayUtils.isEmpty(hids)) {
result.put("message", "传入合同主键不能为空,请检查");
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
} else {
try {
AggCtSaleVO[] vos = ((IAPISaledailyQuery) NCLocator.getInstance().lookup(IAPISaledailyQuery.class))
.queryVOByHIDs(hids);
if (ArrayUtils.isEmpty(vos)) {
result.put("message", "没有符合条件的数据");
result.put("code", 1);
} else {
result.put("message", "合同查询成功");
result.put("data", vos);
result.put("code", 0);
}
} catch (BusinessException var4) {
result.put("message", "查询合同出现异常" + var4.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
return NCCRestUtils.toJSONString(result);
}
}
@POST
@Path("queryvo")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString queryVO(Map<String, Object> paramMap) {
Map<String, Object> result = new HashMap();
result.put("success", true);
if (paramMap == null) {
result.put("message", "传入参数不能为空");
result.put("code", 0);
return NCCRestUtils.toJSONString(result);
} else {
String[] queryFields = new String[]{"pk_ct_sale", "pk_org", "ctrantypeid", "vbillcode", "ctname",
"pk_customer.code", "pk_customer.name", "personnelid", "depid", "corigcurrencyid", "fstatusflag",
"cprojectid", "billmaker", "pk_ct_sale_b.pk_srcmaterial.code", "pk_ct_sale_b.pk_srcmaterial.name",
"pk_ct_sale_b.pk_marbasclass.name", "pk_ct_sale_b.pk_marbasclass.code"};
String[] dateFields = new String[]{"subscribedate", "valdate", "invallidate", "actualvalidate",
"actualinvalidate"};
QuerySchemeBuilder builder = QuerySchemeBuilder.buildByFullClassName(AggCtSaleVO.class.getName());
try {
String[] var6 = queryFields;
int var7 = queryFields.length;
int var8;
String field;
for (var8 = 0; var8 < var7; ++var8) {
field = var6[var8];
List<String> fieldValue = (List) paramMap.get(field);
if (fieldValue != null && fieldValue.size() > 0) {
builder.append(field, EqOperator.getInstance(), fieldValue.toArray(new String[0]));
}
}
var6 = dateFields;
var7 = dateFields.length;
for (var8 = 0; var8 < var7; ++var8) {
field = var6[var8];
String fieldValue = (String) paramMap.get(field);
if (fieldValue != null && fieldValue.trim().length() > 0) {
String[] date = fieldValue.split("~");
if (date.length == 1) {
if (fieldValue.contains("~")) {
builder.append(field, GtOperator.getInstance(),
new UFDateTime[]{new UFDateTime(date[0].trim())});
} else {
builder.append(field, EqOperator.getInstance(),
new UFDateTime[]{new UFDateTime(date[0].trim())});
}
} else if (date.length == 2) {
if (!StringUtil.isEmpty(date[0].trim()) && !StringUtil.isEmpty(date[1].trim())) {
builder.append(field, BetweenOperator.getInstance(), new UFDateTime[]{
new UFDateTime(date[0].trim()), new UFDateTime(date[1].trim())});
} else if (StringUtil.isEmpty(date[0].trim())) {
builder.append(field, LtOperator.getInstance(),
new UFDateTime[]{new UFDateTime(date[1].trim())});
} else if (StringUtil.isEmpty(date[1].trim())) {
builder.append(field, GtOperator.getInstance(),
new UFDateTime[]{new UFDateTime(date[0].trim())});
}
}
}
}
SCMBillQuery<AggCtSaleVO> queryTool = new SCMBillQuery(AggCtSaleVO.class);
AggCtSaleVO[] vos = (AggCtSaleVO[]) queryTool.queryVOByScheme(builder.create());
if (ArrayUtils.isEmpty(vos)) {
result.put("message", "没有符合条件的数据");
result.put("code", 1);
} else {
result.put("message", "合同查询成功");
result.put("data", vos);
result.put("code", 0);
}
} catch (BusinessException var12) {
result.put("message", "查询合同出现异常" + var12.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
return NCCRestUtils.toJSONString(result);
}
}
@POST
@Path("querybodyvo")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString queryBodyVO(Map<String, Object> paramMap) {
Map<String, Object> result = new HashMap();
result.put("success", true);
if (paramMap == null) {
result.put("message", "传入参数不能为空");
result.put("code", 0);
return NCCRestUtils.toJSONString(result);
} else {
String[] queryFields = new String[]{"pk_ct_sale", "pk_org", "ctrantypeid", "vbillcode", "ctname",
"pk_customer.code", "pk_customer.name", "personnelid", "depid", "corigcurrencyid", "fstatusflag",
"cprojectid", "billmaker", "pk_ct_sale_b.pk_srcmaterial.code", "pk_ct_sale_b.pk_srcmaterial.name",
"pk_ct_sale_b.pk_marbasclass.name", "pk_ct_sale_b.pk_marbasclass.code"};
String[] dateFields = new String[]{"subscribedate", "valdate", "invallidate", "actualvalidate",
"actualinvalidate"};
QuerySchemeBuilder builder = QuerySchemeBuilder.buildByFullClassName(AggCtSaleVO.class.getName());
try {
String[] var6 = queryFields;
int var7 = queryFields.length;
int var8;
String field;
for (var8 = 0; var8 < var7; ++var8) {
field = var6[var8];
List<String> fieldValue = (List) paramMap.get(field);
if (fieldValue != null && fieldValue.size() > 0) {
builder.append(field, EqOperator.getInstance(), fieldValue.toArray(new String[0]));
}
}
var6 = dateFields;
var7 = dateFields.length;
for (var8 = 0; var8 < var7; ++var8) {
field = var6[var8];
String fieldValue = (String) paramMap.get(field);
if (fieldValue != null && fieldValue.trim().length() > 0) {
String[] date = fieldValue.split("~");
if (date.length == 1) {
if (fieldValue.contains("~")) {
builder.append(field, GtOperator.getInstance(),
new UFDateTime[]{new UFDateTime(date[0].trim())});
} else {
builder.append(field, EqOperator.getInstance(),
new UFDateTime[]{new UFDateTime(date[0].trim())});
}
}
if (date.length == 2) {
if (!StringUtil.isEmpty(date[0].trim()) && !StringUtil.isEmpty(date[1].trim())) {
builder.append(field, BetweenOperator.getInstance(), new UFDateTime[]{
new UFDateTime(date[0].trim()), new UFDateTime(date[1].trim())});
} else if (StringUtil.isEmpty(date[0].trim())) {
builder.append(field, LtOperator.getInstance(),
new UFDateTime[]{new UFDateTime(date[1].trim())});
} else if (StringUtil.isEmpty(date[1].trim())) {
builder.append(field, GtOperator.getInstance(),
new UFDateTime[]{new UFDateTime(date[0].trim())});
}
}
}
}
SCMViewQuery<CtSalebillViewVO> queryTool = new SCMViewQuery(CtSalebillViewVO.class);
CtSalebillViewVO[] vos = (CtSalebillViewVO[]) queryTool.queryViewVOByScheme(builder.create());
if (ArrayUtils.isEmpty(vos)) {
result.put("message", "没有符合条件的数据");
result.put("code", 1);
} else {
result.put("message", "合同查询成功");
result.put("data", vos);
result.put("code", 0);
}
} catch (BusinessException var12) {
result.put("message", "查询合同出现异常" + var12.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
return NCCRestUtils.toJSONString(result);
}
}
@POST
@Path("update")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString update(List<Map<String, Object>> jsonArray) throws BusinessException {
Map<String, Object> result = new HashMap();
result.put("success", true);
ArrayList aggVOList = new ArrayList();
try {
Iterator var4 = jsonArray.iterator();
while (true) {
if (!var4.hasNext()) {
if (aggVOList.size() > 0) {
AggCtSaleVO[] modifyVOs = ((IAPISaledailyMaintain) NCLocator.getInstance()
.lookup(IAPISaledailyMaintain.class))
.update((AggCtSaleVO[]) aggVOList.toArray(new AggCtSaleVO[aggVOList.size()]));
result.put("message", "合同修改成功");
result.put("data", modifyVOs);
result.put("code", 0);
}
break;
}
Map<String, Object> map = (Map) var4.next();
if (map == null || !map.containsKey(CtEntity.ct_sale.name())) {
result.put("message", "传入参数错误,表头主键信息必输");
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
Map<String, Object> saleHead = (Map) map.get(CtEntity.ct_sale.name());
AggCtSaleVO aggSaleVO = new AggCtSaleVO();
CtSaleVO parentVO = new CtSaleVO();
Set<String> headKeySet = saleHead.keySet();
Iterator var10 = headKeySet.iterator();
while (var10.hasNext()) {
String headKey = (String) var10.next();
parentVO.setAttributeValue(headKey, saleHead.get(headKey));
}
aggSaleVO.setParentVO(parentVO);
List<Map<String, Object>> saleBody = (List) map.get(CtEntity.ct_sale_b.name());
List<CtSaleBVO> bVOList = new ArrayList();
Iterator var12 = saleBody.iterator();
while (var12.hasNext()) {
Map<String, Object> bmap = (Map) var12.next();
CtSaleBVO CtSaleBVO = new CtSaleBVO();
Iterator var15 = bmap.keySet().iterator();
while (var15.hasNext()) {
String bodyKey = (String) var15.next();
CtSaleBVO.setAttributeValue(bodyKey, bmap.get(bodyKey));
}
bVOList.add(CtSaleBVO);
}
aggSaleVO.setCtSaleBVO((ISuperVO[]) bVOList.toArray(new CtSaleBVO[bVOList.size()]));
aggVOList.add(aggSaleVO);
}
} catch (BusinessException var17) {
result.put("message", "修改合同出现异常" + var17.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
return NCCRestUtils.toJSONString(result);
}
@POST
@Path("delete")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString delete(String[] hids) {
Map<String, Object> result = new HashMap();
result.put("success", true);
if (hids != null && hids.length != 0) {
try {
SCMBillQuery<AggCtSaleVO> queryTool = new SCMBillQuery(AggCtSaleVO.class);
AggCtSaleVO[] vos = (AggCtSaleVO[]) queryTool.queryVOByIDs(hids);
if (ArrayUtils.isEmpty(vos)) {
result.put("message", "没有符合条件的数据");
result.put("code", 1);
} else {
((IAPISaledailyMaintain) NCLocator.getInstance().lookup(IAPISaledailyMaintain.class)).delete(vos);
result.put("message", "合同删除成功");
result.put("code", 0);
}
} catch (BusinessException var5) {
result.put("message", "删除合同出现异常" + var5.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
return NCCRestUtils.toJSONString(result);
} else {
return NCCRestUtils.toJSONString(CallReturnBuildUtil.buildNullParamResult());
}
}
@POST
@Path("sendapprove")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString sendApprove(Map<String, Object> paramMap) {
Map<String, Object> result = new HashMap();
result.put("success", true);
if (paramMap == null) {
result.put("message", "传入参数不能为空,请检查");
result.put("code", 1);
} else {
try {
AggCtSaleVO[] vos = this.querySaledaily(paramMap);
if (ArrayUtils.isEmpty(vos)) {
result.put("message", "没有符合条件的数据");
result.put("code", 1);
} else {
AggCtSaleVO[] sendApprove = ((IAPISaledailyMaintain) NCLocator.getInstance()
.lookup(IAPISaledailyMaintain.class)).sendApprove(vos);
result.put("message", "合同提交成功");
result.put("data", sendApprove);
result.put("code", 0);
}
} catch (BusinessException var5) {
result.put("message", "提交合同出现异常" + var5.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
}
return NCCRestUtils.toJSONString(result);
}
@POST
@Path("unsend")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString unSendApprove(Map<String, Object> paramMap) {
Map<String, Object> result = new HashMap();
result.put("success", true);
if (paramMap == null) {
result.put("message", "传入参数不能为空,请检查");
result.put("code", 1);
} else {
try {
AggCtSaleVO[] vos = this.querySaledaily(paramMap);
if (ArrayUtils.isEmpty(vos)) {
result.put("message", "没有符合条件的数据");
result.put("code", 1);
} else {
AggCtSaleVO[] unSend = ((IAPISaledailyMaintain) NCLocator.getInstance()
.lookup(IAPISaledailyMaintain.class)).unSendApprove(vos);
result.put("message", "合同收回成功");
result.put("data", unSend);
result.put("code", 0);
}
} catch (BusinessException var5) {
result.put("message", "收回合同出现异常" + var5.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
}
return NCCRestUtils.toJSONString(result);
}
@POST
@Path("approve")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString approve(Map<String, Object> paramMap) {
Map<String, Object> result = new HashMap();
result.put("success", true);
if (paramMap == null) {
result.put("message", "传入参数不能为空,请检查");
result.put("code", 1);
} else {
try {
AggCtSaleVO[] vos = this.querySaledaily(paramMap);
if (ArrayUtils.isEmpty(vos)) {
result.put("message", "没有符合条件的数据");
result.put("code", 1);
} else {
AggCtSaleVO[] aprove = ((IAPISaledailyMaintain) NCLocator.getInstance()
.lookup(IAPISaledailyMaintain.class)).approve(vos);
result.put("message", "合同审批成功");
result.put("data", aprove);
result.put("code", 0);
}
} catch (BusinessException var5) {
result.put("message", "审批合同出现异常" + var5.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
}
return NCCRestUtils.toJSONString(result);
}
@POST
@Path("unapprove")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString unApprove(Map<String, Object> paramMap) {
Map<String, Object> result = new HashMap();
result.put("success", true);
if (paramMap == null) {
result.put("message", "传入参数不能为空,请检查");
result.put("code", 1);
} else {
try {
AggCtSaleVO[] vos = this.querySaledaily(paramMap);
if (ArrayUtils.isEmpty(vos)) {
result.put("message", "没有符合条件的数据");
result.put("code", 1);
} else {
AggCtSaleVO[] aprove = ((IAPISaledailyMaintain) NCLocator.getInstance()
.lookup(IAPISaledailyMaintain.class)).unApprove(vos);
result.put("message", "合同取消审批成功");
result.put("data", aprove);
result.put("code", 0);
}
} catch (BusinessException var5) {
result.put("message", "取消审批合同出现异常" + var5.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
}
return NCCRestUtils.toJSONString(result);
}
@POST
@Path("freeze")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString freeze(Map<String, Object> paramMap) {
Map<String, Object> result = new HashMap();
result.put("success", true);
if (paramMap == null) {
result.put("message", "传入参数不能为空,请检查");
result.put("code", 1);
} else {
try {
AggCtSaleVO[] vos = this.querySaledaily(paramMap);
if (ArrayUtils.isEmpty(vos)) {
result.put("message", "没有符合条件的数据");
result.put("code", 1);
} else {
AggCtSaleVO[] freeze = ((IAPISaledailyMaintain) NCLocator.getInstance()
.lookup(IAPISaledailyMaintain.class)).freeze(vos);
result.put("message", "合同冻结成功");
result.put("data", freeze);
result.put("code", 0);
}
} catch (BusinessException var5) {
result.put("message", "冻结合同出现异常" + var5.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
}
return NCCRestUtils.toJSONString(result);
}
@POST
@Path("unfreeze")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString unfreeze(Map<String, Object> paramMap) {
Map<String, Object> result = new HashMap();
result.put("success", true);
if (paramMap == null) {
result.put("message", "传入参数不能为空,请检查");
result.put("code", 1);
} else {
try {
AggCtSaleVO[] vos = this.querySaledaily(paramMap);
if (ArrayUtils.isEmpty(vos)) {
result.put("message", "没有符合条件的数据");
result.put("code", 1);
} else {
AggCtSaleVO[] unFreeze = ((IAPISaledailyMaintain) NCLocator.getInstance()
.lookup(IAPISaledailyMaintain.class)).unFreeze(vos);
result.put("message", "合同解冻成功");
result.put("data", unFreeze);
result.put("code", 0);
}
} catch (BusinessException var5) {
result.put("message", "解冻合同出现异常" + var5.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
}
return NCCRestUtils.toJSONString(result);
}
@POST
@Path("terminate")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString terminate(Map<String, Object> paramMap) {
Map<String, Object> result = new HashMap();
result.put("success", true);
if (paramMap == null) {
result.put("message", "传入参数不能为空,请检查");
result.put("code", 1);
} else {
try {
AggCtSaleVO[] vos = this.querySaledaily(paramMap);
if (ArrayUtils.isEmpty(vos)) {
result.put("message", "没有符合条件的数据");
result.put("code", 1);
} else {
AggCtSaleVO[] terminate = ((IAPISaledailyMaintain) NCLocator.getInstance()
.lookup(IAPISaledailyMaintain.class)).terminate(vos);
result.put("message", "合同终止成功");
result.put("data", terminate);
result.put("code", 0);
}
} catch (BusinessException var5) {
result.put("message", "终止合同出现异常" + var5.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
}
return NCCRestUtils.toJSONString(result);
}
@POST
@Path("unterminate")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString unTerminate(Map<String, Object> paramMap) {
Map<String, Object> result = new HashMap();
result.put("success", true);
if (paramMap == null) {
result.put("message", "传入参数不能为空,请检查");
result.put("code", 1);
} else {
try {
AggCtSaleVO[] vos = this.querySaledaily(paramMap);
if (ArrayUtils.isEmpty(vos)) {
result.put("message", "没有符合条件的数据");
result.put("data", (Object) null);
result.put("code", 1);
} else {
AggCtSaleVO[] unTerminate = ((IAPISaledailyMaintain) NCLocator.getInstance()
.lookup(IAPISaledailyMaintain.class)).unTerminate(vos);
result.put("message", "合同取消终止成功");
result.put("data", unTerminate);
result.put("code", 0);
}
} catch (BusinessException var5) {
result.put("message", "取消终止合同出现异常" + var5.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
}
return NCCRestUtils.toJSONString(result);
}
@POST
@Path("modify")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString modify(List<Map<String, Object>> jsonArray) throws BusinessException {
Map<String, Object> result = new HashMap();
result.put("success", true);
ArrayList aggVOList = new ArrayList();
try {
Iterator var4 = jsonArray.iterator();
while (true) {
if (!var4.hasNext()) {
if (aggVOList.size() > 0) {
AggCtSaleVO[] modifyVOs = ((IAPISaledailyMaintain) NCLocator.getInstance()
.lookup(IAPISaledailyMaintain.class))
.modify((AggCtSaleVO[]) aggVOList.toArray(new AggCtSaleVO[aggVOList.size()]));
result.put("message", "合同变更成功");
result.put("data", modifyVOs);
result.put("code", 0);
}
break;
}
Map<String, Object> map = (Map) var4.next();
if (map == null || !map.containsKey(CtEntity.ct_sale.name())
|| !map.containsKey(CtEntity.ct_sale_b.name())) {
result.put("message", "传入参数错误,表头表体信息必输");
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
Map<String, Object> saleHead = (Map) map.get(CtEntity.ct_sale.name());
AggCtSaleVO aggSaleVO = new AggCtSaleVO();
CtSaleVO parentVO = new CtSaleVO();
Set<String> headKeySet = saleHead.keySet();
Iterator var10 = headKeySet.iterator();
while (var10.hasNext()) {
String headKey = (String) var10.next();
parentVO.setAttributeValue(headKey, saleHead.get(headKey));
}
aggSaleVO.setParentVO(parentVO);
List<Map<String, Object>> puBody = (List) map.get(CtEntity.ct_sale_b.name());
List<CtSaleBVO> bVOList = new ArrayList();
Iterator var12 = puBody.iterator();
Map saleChange;
Iterator var15;
String changeKey;
while (var12.hasNext()) {
saleChange = (Map) var12.next();
CtSaleBVO ctSaleBVO = new CtSaleBVO();
var15 = saleChange.keySet().iterator();
while (var15.hasNext()) {
changeKey = (String) var15.next();
ctSaleBVO.setAttributeValue(changeKey, saleChange.get(changeKey));
}
bVOList.add(ctSaleBVO);
}
aggSaleVO.setCtSaleBVO((ISuperVO[]) bVOList.toArray(new CtSaleBVO[bVOList.size()]));
CtSaleChangeVO[] changeVO = new CtSaleChangeVO[1];
saleChange = (Map) map.get(CtEntity.ct_sale_change.name());
Set<String> changeKeySet = saleChange.keySet();
var15 = changeKeySet.iterator();
while (var15.hasNext()) {
changeKey = (String) var15.next();
changeVO[0].setAttributeValue(changeKey, saleChange.get(changeKey));
}
changeVO[0].setAttributeValue("vchgdate", AppContext.getInstance().getBusiDate());
changeVO[0].setAttributeValue("vchgpsn", AppContext.getInstance().getPkUser());
aggSaleVO.setCtSaleChangeVO(changeVO);
aggVOList.add(aggSaleVO);
}
} catch (BusinessException var17) {
result.put("message", "变更合同出现异常" + var17.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
return NCCRestUtils.toJSONString(result);
}
@POST
@Path("validate")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString validate(Map<String, Object> paramMap) {
Map<String, Object> result = new HashMap();
result.put("success", true);
if (paramMap == null) {
result.put("message", "传入参数不能为空");
result.put("code", 1);
} else {
try {
AggCtSaleVO[] vos = this.querySaledaily(paramMap);
if (ArrayUtils.isEmpty(vos)) {
result.put("message", "没有符合条件的数据");
result.put("code", 1);
} else {
AggCtSaleVO[] unTerminate = ((IAPISaledailyMaintain) NCLocator.getInstance()
.lookup(IAPISaledailyMaintain.class)).validate(vos);
result.put("message", "合同生效成功");
result.put("data", unTerminate);
result.put("code", 0);
}
} catch (BusinessException var5) {
result.put("message", "合同生效出现异常" + var5.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
}
return NCCRestUtils.toJSONString(result);
}
@POST
@Path("unvalidate")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString unValidate(Map<String, Object> paramMap) {
Map<String, Object> result = new HashMap();
result.put("success", true);
if (paramMap == null) {
result.put("message", "传入参数不能为空");
result.put("code", 1);
} else {
try {
AggCtSaleVO[] vos = this.querySaledaily(paramMap);
if (ArrayUtils.isEmpty(vos)) {
result.put("message", "没有符合条件的数据");
result.put("data", (Object) null);
result.put("code", 1);
} else {
AggCtSaleVO[] unTerminate = ((IAPISaledailyMaintain) NCLocator.getInstance()
.lookup(IAPISaledailyMaintain.class)).unValidate(vos);
result.put("message", "合同取消生效成功");
result.put("data", unTerminate);
result.put("code", 0);
}
} catch (BusinessException var5) {
result.put("message", "合同取消生效出现异常" + var5.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
}
return NCCRestUtils.toJSONString(result);
}
@POST
@Path("queryrecplan")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString queryRecPlanVO(Map<String, Object> paramMap) {
Map<String, Object> result = new HashMap();
result.put("success", true);
if (paramMap == null) {
result.put("message", "传入参数不能为空");
result.put("code", 1);
} else {
String pk_ct_pu = (String) paramMap.get("pk_ct_sale");
String vbillcode = (String) paramMap.get("vbillcode");
if (StringUtils.isNotEmpty(pk_ct_pu)) {
try {
RecvPlanVO[] recPlanVOs = ((IAPISaledailyMaintain) NCLocator.getInstance()
.lookup(IAPISaledailyMaintain.class)).queryRecPlanVO(pk_ct_pu, vbillcode);
if (recPlanVOs.length > 0) {
result.put("message", "收款计划查询成功");
result.put("data", recPlanVOs);
result.put("code", 0);
}
} catch (BusinessException var6) {
result.put("message", "合同联查收款计划出现异常" + var6.getMessage());
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
} else {
result.put("message", "销售合同主键信息不能为空");
result.put("code", 1);
}
}
return NCCRestUtils.toJSONString(result);
}
@POST
@Path("querybysrcBids")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString queryBodyBySourceIds(String[] sourcebids) {
Map<String, Object> result = new HashMap();
result.put("success", true);
if (ArrayUtils.isEmpty(sourcebids)) {
result.put("message", "传入参数不能为空");
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
} else {
try {
CtSalebillViewVO[] viewVO = ((IAPISaledailyQuery) NCLocator.getInstance()
.lookup(IAPISaledailyQuery.class)).queryViewVOBySourceBIDs(sourcebids);
if (ArrayUtils.isEmpty(viewVO)) {
result.put("message", "没有符合条件的数据");
result.put("code", 1);
} else {
result.put("message", "合同查询成功");
result.put("data", viewVO);
result.put("code", 0);
}
} catch (BusinessException var4) {
result.put("message", "查询销售合同异常");
result.put("code", 1);
return NCCRestUtils.toJSONString(result);
}
return NCCRestUtils.toJSONString(result);
}
}
private AggCtSaleVO[] querySaledaily(Map<String, Object> paramMap) {
List<String> vbillcodes = (List) paramMap.get("vbillcode");
List<String> pk_ct_sales = (List) paramMap.get("pk_ct_sale");
QuerySchemeBuilder builder = QuerySchemeBuilder.buildByFullClassName(CtSaleVO.class.getName());
if (vbillcodes != null && vbillcodes.size() > 0) {
builder.append("vbillcode", EqOperator.getInstance(), vbillcodes.toArray(new String[vbillcodes.size()]));
}
if (pk_ct_sales != null && pk_ct_sales.size() > 0) {
builder.append("pk_ct_sale", EqOperator.getInstance(), pk_ct_sales.toArray(new String[pk_ct_sales.size()]));
}
IAPISaledailyQuery query = (IAPISaledailyQuery) NCLocator.getInstance().lookup(IAPISaledailyQuery.class);
AggCtSaleVO[] vos = null;
try {
vos = query.queryVOByScheme(builder.create());
} catch (BusinessException var8) {
ExceptionUtils.wrappException(var8);
}
return vos;
}
public String getModule() {
return null;
}
}
package nccloud.openapi.common.tool;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import nc.bs.framework.common.InvocationInfoProxy;
import nc.bs.framework.common.NCLocator;
import nc.bs.logging.Logger;
import nc.bs.pub.filesystem.IAttachManageConst;
import nc.bs.pub.filesystem.IFileSystemService;
import nc.itf.bd.srmbdpub.ISrmpubDBService;
import nc.vo.pub.BusinessException;
import nc.vo.pub.filesystem.NCFileNode;
import nc.vo.pub.filesystem.NCFileVO;
import nccloud.impl.platform.common.util.StringUtils;
import uap.pub.fs.client.FileStorageClient;
import uap.pub.fs.domain.basic.FileHeader;
import uap.pub.fs.domain.ext.IFileStorageExt;
public class ThirdSysFileToNcc {
/**
* 生成PK
* @return
*/
private ISrmpubDBService dbservice;
public String getPK() throws BusinessException{
if(null==dbservice){
dbservice = (ISrmpubDBService)NCLocator.getInstance().lookup(ISrmpubDBService.class);
}
String[] pks = dbservice.generateIDs(1);
return pks[0];
}
/*
* 上传文件
* */
public List<NCFileNode> UploadFileAction(String pk_filepath,List<Map<String, String>> fileList){
//时间戳
long currentTimeMillis = System.currentTimeMillis();
System.out.println(currentTimeMillis);
List<NCFileNode> fileNodes=new ArrayList<NCFileNode>();
for(int i=0;i<fileList.size();i++){
Map<String, String> fileMap = fileList.get(i);
if(StringUtils.isNotEmpty(fileMap.get("name"))&& StringUtils.isNotEmpty(fileMap.get("type"))&& StringUtils.isNotEmpty(fileMap.get("url"))){
try {
URL url = new URL(fileMap.get("url"));
URLConnection conn = url.openConnection();
InputStream inputStream = conn.getInputStream();
NCFileNode uploadFile = this.uploadFile(InvocationInfoProxy.getInstance().getUserDataSource(), pk_filepath, fileMap.get("name")+"."+fileMap.get("type"), inputStream, InvocationInfoProxy.getInstance().getUserId(),0);
if(null!=uploadFile){
fileNodes.add(uploadFile);
}
} catch (IOException e) {
e.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}
}
}
return fileNodes;
}
/**
* 上传文件
* @param dsName
* @param pPath
* @param fileName
* @param input
* @param creator
* @param fileLength
* @return
* @throws Exception
*/
public NCFileNode uploadFile(String dsName, String pPath, String fileName, InputStream input, String creator, long fileLength)
throws Exception
{
Logger.debug("------------------------sungbztest uploadFile--------------------");
FileHeader fileHeader = FileStorageClient.getInstance().uploadFile(IAttachManageConst.RIAMoudleID, fileName, input, false, new IFileStorageExt[0]);
NCFileNode newNode = null;
if (fileHeader != null) {
String pk_doc = fileHeader.getPath();
String name = fileHeader.getName();
long size = fileHeader.getFileSize().longValue();
IFileSystemService service = (IFileSystemService)NCLocator.getInstance().lookup(IFileSystemService.class);
NCFileVO attach = new NCFileVO();
attach.setPath(name);
attach.setCreator(creator);
attach.setIsdoc("z");
attach.setFileLen(size);
attach.setPk_doc(pk_doc);
newNode = service.createCloudFileNode(pPath, creator, attach);
}
return newNode;
}
}
1154

被折叠的 条评论
为什么被折叠?



