收款单新增修复销售订单已被删除的报错提示
This commit is contained in:
		
							parent
							
								
									bd4f714e3a
								
							
						
					
					
						commit
						197767b6e6
					
				|  | @ -343,7 +343,7 @@ import java.util.zip.GZIPInputStream; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|                     HYSuperDMO dmo = new HYSuperDMO(); |                     HYSuperDMO dmo = new HYSuperDMO(); | ||||||
|                     SaleOrderHVO[] hvo = (SaleOrderHVO[]) dmo.queryByWhereClause(SaleOrderHVO.class, "vbillcode='" + def2 + "'"); |                     SaleOrderHVO[] hvo = (SaleOrderHVO[]) dmo.queryByWhereClause(SaleOrderHVO.class, "csaleorderid='" + csaleorderid + "'"); | ||||||
|                     SaleOrderBVO[] bvos = (SaleOrderBVO[]) dmo.queryByWhereClause(SaleOrderBVO.class, "csaleorderid='" + hvo[0].getPrimaryKey() + "'"); |                     SaleOrderBVO[] bvos = (SaleOrderBVO[]) dmo.queryByWhereClause(SaleOrderBVO.class, "csaleorderid='" + hvo[0].getPrimaryKey() + "'"); | ||||||
|                     if (bvos != null) { |                     if (bvos != null) { | ||||||
|                         itemvo.setSrc_billid(bvos[0].getCsaleorderid()); |                         itemvo.setSrc_billid(bvos[0].getCsaleorderid()); | ||||||
|  |  | ||||||
|  | @ -1,20 +0,0 @@ | ||||||
| package nccloud.openapi; |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| public class ArriveResourcesTest extends nccloud.openapi.BaseOpenApiTest { |  | ||||||
|     public void save() { |  | ||||||
|         String url = "/nccloud/api/pu/arrive/saveFromOrder"; |  | ||||||
| 
 |  | ||||||
|         try { |  | ||||||
|             String result = requestOpenApiByJSON(url, "resources/Arrive.json"); |  | ||||||
|             System.out.println(result); |  | ||||||
|         } catch (Exception e) { |  | ||||||
|             e.printStackTrace(); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public static void main(String[] args) { |  | ||||||
|         ArriveResourcesTest test = new ArriveResourcesTest(); |  | ||||||
|         test.save(); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,406 +0,0 @@ | ||||||
| package nccloud.openapi; |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| import com.alibaba.fastjson.JSONObject; |  | ||||||
| import nc.ws.opm.pub.utils.security.SecurityUtil; |  | ||||||
| import nccloud.openapi.BaseOpenApiTest.HttpClientWapper.Response; |  | ||||||
| import org.apache.commons.httpclient.Header; |  | ||||||
| import org.apache.commons.httpclient.HttpClient; |  | ||||||
| import org.apache.commons.httpclient.NameValuePair; |  | ||||||
| import org.apache.commons.httpclient.methods.GetMethod; |  | ||||||
| import org.apache.commons.httpclient.methods.PostMethod; |  | ||||||
| import org.apache.commons.httpclient.methods.StringRequestEntity; |  | ||||||
| import org.apache.commons.httpclient.util.EncodingUtil; |  | ||||||
| import org.apache.commons.lang3.StringUtils; |  | ||||||
| import org.springframework.core.io.ClassPathResource; |  | ||||||
| import sun.misc.BASE64Decoder; |  | ||||||
| import sun.misc.BASE64Encoder; |  | ||||||
| 
 |  | ||||||
| import javax.crypto.Cipher; |  | ||||||
| import java.io.*; |  | ||||||
| import java.net.URLEncoder; |  | ||||||
| import java.nio.charset.StandardCharsets; |  | ||||||
| import java.security.*; |  | ||||||
| import java.security.spec.X509EncodedKeySpec; |  | ||||||
| import java.util.*; |  | ||||||
| import java.util.Map.Entry; |  | ||||||
| 
 |  | ||||||
| /** |  | ||||||
|  * @description: 审批流程接口测试 |  | ||||||
|  * @author:guoxqc@yonyou.com |  | ||||||
|  * @date:2020年10月23日 |  | ||||||
|  */ |  | ||||||
| public class BaseOpenApiTest { |  | ||||||
|     //	public static final String BASE_URL_DEV="http://192.168.82.5:9999"; |  | ||||||
|     public static final String BASE_URL_DEV = "http://127.0.0.1:8088"; |  | ||||||
| //     public static final String BASE_URL_DEV = "http://192.168.82.104:7788"; |  | ||||||
| //	public static final String BASE_URL_DEV="http://192.168.82.1:9081"; |  | ||||||
| //	public static final String BASE_URL_DEV="http://172.23.17.146:8001"; |  | ||||||
|     /** |  | ||||||
|      * APP ID |  | ||||||
|      */ |  | ||||||
|     public static final String CLIENT_ID; |  | ||||||
|     /** |  | ||||||
|      * APP Secret |  | ||||||
|      */ |  | ||||||
|     public static final String CLIENT_SECRET; |  | ||||||
|     /** |  | ||||||
|      * 公钥 |  | ||||||
|      */ |  | ||||||
|     public static final String PUBLIC_KEY; |  | ||||||
|     /** |  | ||||||
|      * 账套编码 |  | ||||||
|      */ |  | ||||||
|     public static final String BIZ_CENTER; |  | ||||||
|     /** |  | ||||||
|      * 用户编码 |  | ||||||
|      */ |  | ||||||
|     public static final String USER_CODE; |  | ||||||
| 
 |  | ||||||
|     static { |  | ||||||
|         ResourceBundle config = ResourceBundle.getBundle("nccloud.openapi.config"); |  | ||||||
|         CLIENT_ID = config.getString("client_id"); |  | ||||||
|         CLIENT_SECRET = config.getString("client_secret"); |  | ||||||
|         PUBLIC_KEY = config.getString("pub_key"); |  | ||||||
|         BIZ_CENTER = config.getString("biz_center"); |  | ||||||
|         USER_CODE = config.getString("user_code"); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public HttpClientWapper client = new HttpClientWapper(); |  | ||||||
| 
 |  | ||||||
|     /** |  | ||||||
|      * @param url |  | ||||||
|      * @param param |  | ||||||
|      * @return |  | ||||||
|      * @throws Exception |  | ||||||
|      */ |  | ||||||
|     public String requestOpenApi(String url, Map<String, Object> param) throws Exception { |  | ||||||
|         return requestOpenApi(url, new JSONObject(param)); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     /** |  | ||||||
|      * @param url |  | ||||||
|      * @param param |  | ||||||
|      * @return |  | ||||||
|      * @throws Exception |  | ||||||
|      */ |  | ||||||
|     public String requestOpenApi(String url, JSONObject param) throws Exception { |  | ||||||
|         return requestOpenApi(url, param.toJSONString()); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     /** |  | ||||||
|      * @param url |  | ||||||
|      * @param fileName |  | ||||||
|      * @return |  | ||||||
|      * @throws Exception |  | ||||||
|      */ |  | ||||||
|     public String requestOpenApiByJSON(String url, String fileName) throws Exception { |  | ||||||
|         ClassPathResource classPathResorce = new ClassPathResource(fileName, this.getClass()); |  | ||||||
|         StringBuffer data = new StringBuffer(); |  | ||||||
|         try { |  | ||||||
|             InputStream in = classPathResorce.getInputStream(); |  | ||||||
|             BufferedReader reader = new BufferedReader(new InputStreamReader(in, "utf-8")); |  | ||||||
|             String line = reader.readLine(); |  | ||||||
|             while (StringUtils.isNotEmpty(line)) { |  | ||||||
|                 data.append(line); |  | ||||||
|                 line = reader.readLine(); |  | ||||||
|             } |  | ||||||
|         } catch (IOException e1) { |  | ||||||
|             e1.printStackTrace(); |  | ||||||
|         } |  | ||||||
|         return requestOpenApi(url, data.toString()); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public String requestOpenApi(String url, String param) throws Exception { |  | ||||||
|         String accessToken = this.getAccessTokenByClient(); |  | ||||||
|         System.out.println(param.replace("	", "")); |  | ||||||
|         String sign = digest(CLIENT_ID + PUBLIC_KEY); |  | ||||||
|         List<Header> headers = new ArrayList<Header>(); |  | ||||||
|         headers.add(new Header("Content-Type", "application/json;charset=UTF-8")); |  | ||||||
|         headers.add(new Header("signature", sign)); |  | ||||||
|         headers.add(new Header("ucg_flag", "y")); |  | ||||||
|         headers.add(new Header("access_token", accessToken)); |  | ||||||
|         headers.add(new Header("client_id", CLIENT_ID)); |  | ||||||
|         Response response; |  | ||||||
|         try { |  | ||||||
|             response = client.post(BASE_URL_DEV + url, headers.toArray(new Header[headers.size()]), null, param); |  | ||||||
| //			System.out.println(response.getData()); |  | ||||||
|             return response.getData(); |  | ||||||
|         } catch (Exception e) { |  | ||||||
|             System.out.println(e.getMessage()); |  | ||||||
|             e.printStackTrace(); |  | ||||||
|             return e.getMessage(); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     /** |  | ||||||
|      * @param seed 种子,用于生成公钥 |  | ||||||
|      * @param src  明文 |  | ||||||
|      * @return |  | ||||||
|      * @throws Exception |  | ||||||
|      * @description RSA加密 |  | ||||||
|      */ |  | ||||||
|     public String pubEncrypt(String seed, String src) throws Exception { |  | ||||||
|         String target = null; |  | ||||||
|         ByteArrayOutputStream out = null; |  | ||||||
|         try { |  | ||||||
|             Key key = genPublicKey(PUBLIC_KEY); |  | ||||||
|             Cipher cipher = Cipher.getInstance("RSA"); |  | ||||||
|             cipher.init(1, key); |  | ||||||
|             byte[] data = src.getBytes(); |  | ||||||
|             int inputLen = data.length; |  | ||||||
|             out = new ByteArrayOutputStream(); |  | ||||||
|             int offSet = 0; |  | ||||||
|             int i = 0; |  | ||||||
|             while (inputLen - offSet > 0) { |  | ||||||
|                 byte[] cache; |  | ||||||
|                 ; |  | ||||||
|                 if (inputLen - offSet > 117) { |  | ||||||
|                     cache = cipher.doFinal(data, offSet, 117); |  | ||||||
|                 } else { |  | ||||||
|                     cache = cipher.doFinal(data, offSet, inputLen - offSet); |  | ||||||
|                 } |  | ||||||
|                 out.write(cache, 0, cache.length); |  | ||||||
|                 i++; |  | ||||||
|                 offSet = i * 117; |  | ||||||
|             } |  | ||||||
|             target = new BASE64Encoder().encodeBuffer(out.toByteArray()); |  | ||||||
|         } catch (Exception e) { |  | ||||||
|             throw new Exception("加密失败" + e.getMessage()); |  | ||||||
|         } finally { |  | ||||||
|             if (out != null) { |  | ||||||
|                 out.close(); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         return target; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     /** |  | ||||||
|      * @param str |  | ||||||
|      * @return |  | ||||||
|      * @description 信息摘要 |  | ||||||
|      */ |  | ||||||
|     public static String digest(String str) { |  | ||||||
|         String encodestr = ""; |  | ||||||
|         try { |  | ||||||
|             MessageDigest messageDigest = MessageDigest.getInstance("SHA-256"); |  | ||||||
|             messageDigest.update(str.getBytes(StandardCharsets.UTF_8)); |  | ||||||
|             encodestr = byte2Hex(messageDigest.digest()); |  | ||||||
|         } catch (NoSuchAlgorithmException e) { |  | ||||||
|             throw new RuntimeException(e); |  | ||||||
|         } |  | ||||||
|         return encodestr; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     private static String byte2Hex(byte[] bytes) { |  | ||||||
|         StringBuffer stringBuffer = new StringBuffer(); |  | ||||||
|         String temp = null; |  | ||||||
|         for (int i = 0; i < bytes.length; i++) { |  | ||||||
|             temp = Integer.toHexString(bytes[i] & 0xFF); |  | ||||||
|             if (temp.length() == 1) { |  | ||||||
|                 stringBuffer.append("0"); |  | ||||||
|             } |  | ||||||
|             stringBuffer.append(temp); |  | ||||||
|         } |  | ||||||
|         return stringBuffer.toString(); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     /** |  | ||||||
|      * @param PUBLIC_KEY |  | ||||||
|      * @return |  | ||||||
|      * @throws Exception |  | ||||||
|      * @description 根据种子生成密钥对 |  | ||||||
|      */ |  | ||||||
|     public static Key genPublicKey(String seed) throws Exception { |  | ||||||
|         Key key = null; |  | ||||||
|         try { |  | ||||||
|             byte[] keyBytes = new BASE64Decoder().decodeBuffer(seed); |  | ||||||
|             KeyFactory keyFactory = KeyFactory.getInstance("RSA"); |  | ||||||
|             X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(keyBytes); |  | ||||||
|             key = keyFactory.generatePublic(x509KeySpec); |  | ||||||
|         } catch (Exception e) { |  | ||||||
|             throw new Exception("无效的密钥  " + e.getMessage()); |  | ||||||
|         } |  | ||||||
|         return key; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     /** |  | ||||||
|      * Http请求包装类 |  | ||||||
|      * |  | ||||||
|      * @author guoxiangqiao |  | ||||||
|      * @date 2019年12月11日 |  | ||||||
|      */ |  | ||||||
|     public class HttpClientWapper { |  | ||||||
|         public static final int HTTP_STATUS_SUCCESS = 200; |  | ||||||
| 
 |  | ||||||
|         /** |  | ||||||
|          * post请求 |  | ||||||
|          * |  | ||||||
|          * @param url |  | ||||||
|          * @param headers |  | ||||||
|          * @param requestBody |  | ||||||
|          * @return |  | ||||||
|          * @throws Exception |  | ||||||
|          */ |  | ||||||
|         public Response post(String url, Header[] headers, NameValuePair[] requestBody, String requestEntityStr) throws Exception { |  | ||||||
|             HttpClient client = new HttpClient(); |  | ||||||
|             PostMethod postMethod = new PostMethod(url); |  | ||||||
|             if (headers != null) { |  | ||||||
|                 for (Header header : headers) { |  | ||||||
|                     postMethod.setRequestHeader(header); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             if (requestBody != null) { |  | ||||||
|                 postMethod.setRequestBody(requestBody); |  | ||||||
|             } |  | ||||||
|             if (StringUtils.isNotEmpty(requestEntityStr)) { |  | ||||||
|                 StringRequestEntity requestEntity = new StringRequestEntity(requestEntityStr, null, "utf-8"); |  | ||||||
|                 postMethod.setRequestEntity(requestEntity); |  | ||||||
|             } |  | ||||||
|             int httpStatus = client.executeMethod(postMethod); |  | ||||||
|             String result = this.getResponseBodyAsString(postMethod); |  | ||||||
|             return new Response(httpStatus, result); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public String getResponseBodyAsString(PostMethod postMethod) throws IOException { |  | ||||||
|             byte[] rawdata = null; |  | ||||||
|             rawdata = postMethod.getResponseBody(); |  | ||||||
|             return rawdata != null ? EncodingUtil.getString(rawdata, "utf-8") : null; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         /** |  | ||||||
|          * @param params |  | ||||||
|          * @return |  | ||||||
|          * @description Map转URL参数 |  | ||||||
|          * @author guoxqc@yonyou.com |  | ||||||
|          * @date 2020年10月22日 |  | ||||||
|          */ |  | ||||||
|         public String getURLParam(Map<String, Object> params) { |  | ||||||
|             StringBuffer paramStr = new StringBuffer(); |  | ||||||
|             if (!params.isEmpty()) { |  | ||||||
|                 for (Entry<String, Object> kv : params.entrySet()) { |  | ||||||
|                     paramStr.append(kv.getKey()); |  | ||||||
|                     paramStr.append("="); |  | ||||||
|                     paramStr.append(kv.getValue()); |  | ||||||
|                     paramStr.append("&"); |  | ||||||
|                 } |  | ||||||
|                 paramStr.deleteCharAt(paramStr.length() - 1); |  | ||||||
|             } |  | ||||||
|             return paramStr.toString(); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         /** |  | ||||||
|          * get请求 |  | ||||||
|          * |  | ||||||
|          * @param url |  | ||||||
|          * @param headers |  | ||||||
|          * @param params |  | ||||||
|          * @return |  | ||||||
|          * @throws Exception |  | ||||||
|          */ |  | ||||||
|         public Response get(String url, Header[] headers, NameValuePair[] params) throws Exception { |  | ||||||
|             HttpClient client = new HttpClient(); |  | ||||||
|             GetMethod getMethod = new GetMethod(url); |  | ||||||
|             if (params != null) { |  | ||||||
|                 getMethod.setQueryString(params); |  | ||||||
|             } |  | ||||||
|             if (headers != null) { |  | ||||||
|                 for (Header header : headers) { |  | ||||||
|                     getMethod.setRequestHeader(header); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             int httpStatus = client.executeMethod(getMethod); |  | ||||||
|             String result = getMethod.getResponseBodyAsString(); |  | ||||||
|             return new Response(httpStatus, result); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         /** |  | ||||||
|          * 获取url查询参数 |  | ||||||
|          * |  | ||||||
|          * @param params |  | ||||||
|          * @return |  | ||||||
|          */ |  | ||||||
|         public String getQueryString(NameValuePair[] params) { |  | ||||||
|             GetMethod getMethod = new GetMethod(); |  | ||||||
|             getMethod.setQueryString(params); |  | ||||||
|             return getMethod.getQueryString(); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         class Response { |  | ||||||
|             private int httpStatus; |  | ||||||
|             private String data; |  | ||||||
| 
 |  | ||||||
|             public int getHttpStatus() { |  | ||||||
|                 return httpStatus; |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             public void setHttpStatus(int httpStatus) { |  | ||||||
|                 this.httpStatus = httpStatus; |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             public String getData() { |  | ||||||
|                 return data; |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             public void setData(String data) { |  | ||||||
|                 this.data = data; |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             public Response(int httpStatus, String data) { |  | ||||||
|                 super(); |  | ||||||
|                 this.httpStatus = httpStatus; |  | ||||||
|                 this.data = data; |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             public Response() { |  | ||||||
|                 super(); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public static String getSHA256(String str, String key) throws Exception { |  | ||||||
|         byte[] salt = new byte[16]; |  | ||||||
|         SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); |  | ||||||
|         random.setSeed(key.getBytes()); |  | ||||||
|         random.nextBytes(salt); |  | ||||||
|         String salt_value = new BASE64Encoder().encodeBuffer(salt); |  | ||||||
|         return digest(str + salt_value.replaceAll("\r|\n", "")); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     /** |  | ||||||
|      * @return |  | ||||||
|      * @throws Exception |  | ||||||
|      * @description 获取AccessToken |  | ||||||
|      */ |  | ||||||
|     @SuppressWarnings("static-access") |  | ||||||
|     public String getAccessTokenByClient() throws Exception { |  | ||||||
|         String url = BASE_URL_DEV + "/nccloud/opm/accesstoken"; |  | ||||||
|         List<Header> headers = new ArrayList<Header>(); |  | ||||||
|         headers.add(new Header("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8")); |  | ||||||
|         // 获取信息摘要 |  | ||||||
|         String signature = getSHA256(CLIENT_ID + CLIENT_SECRET + PUBLIC_KEY, PUBLIC_KEY); |  | ||||||
|         // 使用PUBLIC_KEY生成公钥,对CLIENT_SECRET加密 |  | ||||||
|         SecurityUtil securityUtil = new SecurityUtil(); |  | ||||||
|         String CLIENT_SECRETEn = URLEncoder.encode(securityUtil.pubEncrypt(PUBLIC_KEY, CLIENT_SECRET), "utf-8"); |  | ||||||
|         Map<String, Object> params = new HashMap<String, Object>(); |  | ||||||
|         params.put("client_id", CLIENT_ID); |  | ||||||
|         params.put("userCode", USER_CODE); |  | ||||||
|         params.put("grant_type", "client_credentials"); |  | ||||||
|         params.put("biz_center", BIZ_CENTER); |  | ||||||
|         params.put("signature", signature); |  | ||||||
|         params.put("client_secret", CLIENT_SECRETEn); |  | ||||||
|         try { |  | ||||||
|             Response response = client.post(url, headers.toArray(new Header[headers.size()]), null, client.getURLParam(params)); |  | ||||||
|             System.out.println(response.getData()); |  | ||||||
|             JSONObject result = JSONObject.parseObject(response.getData()); |  | ||||||
|             boolean success = result.getBoolean("success"); |  | ||||||
|             if (success) { |  | ||||||
|                 return result.getJSONObject("data").getString("access_token"); |  | ||||||
|             } |  | ||||||
|         } catch (Exception e) { |  | ||||||
|             System.out.println(e.getMessage()); |  | ||||||
|             e.printStackTrace(); |  | ||||||
|         } |  | ||||||
|         return null; |  | ||||||
|     } |  | ||||||
| } |  | ||||||
		Loading…
	
		Reference in New Issue