用友NCC 如何通过OpenApi 上传附件
请求参数中添加附件 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版本及以后版本// 服务地址ipString 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);// 获取tokenString 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 客开新增附件 startif (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;}
}