ソースを参照

提交INSS调用接口实现

master
梁超 4ヶ月前
コミット
dda652e0e9

+ 246
- 0
gly-base-core/src/main/java/cn/com/taiji/core/manager/tools/HexUtils.java ファイルの表示

@@ -0,0 +1,246 @@
package cn.com.taiji.core.manager.tools;

import java.io.UnsupportedEncodingException;

public class HexUtils {

/**
* 用于建立十六进制字符的输出的大写字符数组
*/
private static final char[] DIGITS_UPPER = { '0', '1', '2', '3', '4', '5',
'6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };

/**
* 将一个ASCII字符串转成HEX字符串,限定长度
*
* @param strAsci
* @param nLen
* 长度限定,不足的补字符0
* @return
* @throws UnsupportedEncodingException
*/
public static String AsciToHexString(String strAsci, int nLen) {
String s = String.valueOf(strAsci);
byte[] bytes = null;
try {
bytes = s.getBytes("GBK");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}// e4baac413132333435000000
String strResult = HexToString(bytes);
int strLen = strResult.length();
if (strLen >= nLen) {
strResult = strResult.substring(0, nLen);
} else {
int nAddLen = nLen - strLen;
for (int i = 0; i < nAddLen; i++)
strResult += "0";
}

return strResult;
}

/**
* 将十六进制字符串转换为ASCII字符串
*
* @param hexStr 十六进制字符串
* @param charset 字符集,例如 "GBK" 或 "UTF-8"
* @return 转换后的ASCII字符串
* @throws UnsupportedEncodingException 如果不支持指定的字符集
*/
public static String HexToAsciString(String hexStr, String charset) throws UnsupportedEncodingException {
// 处理空字符串
if (hexStr == null || hexStr.isEmpty()) {
return "";
}

// 将十六进制字符串转换为字节数组
int len = hexStr.length();
byte[] bytes = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
bytes[i / 2] = (byte) ((Character.digit(hexStr.charAt(i), 16) << 4)
+ Character.digit(hexStr.charAt(i + 1), 16));
}

// 将字节数组转换为原始的ASCII字符串
return new String(bytes, charset);
}

/**
* 将十六进制字符串转换为整数
*
* @param hexStr 十六进制字符串
* @return 转换后的整数
*/
public static Integer HexStringToInteger(String hexStr) {
if (hexStr == null || hexStr.isEmpty()) {
return 0;
}
return Integer.parseInt(hexStr, 16); // 将十六进制字符串转换为整数
}
/**
* 将十六进制字符串转换为整数
*
* @param hexStr 十六进制字符串
* @return 转换后的整数
*/
public static Double HexStringToDouble(String hexStr) {
if (hexStr == null || hexStr.isEmpty()) {
return (double) 0;
}
return Double.parseDouble(hexStr); // 将十六进制字符串转换为整数
}

/**
* int传hex,高位补零
*
* @param str
* @param nLen
* @return
*/
public static String IntegerToHexString(Integer num, int nLen) {
if (null == num) {
String str = "";
for (int i = 0; i < nLen; i++) {
str += "0";
}
return str;
}
return HighAddZero(Integer.toHexString(num), nLen);
}
/**
* double传hex,高位补零
*
* @param num
* @param nLen
* @return
*/
public static String DoubleToHexString(Double num, int nLen) {
if (null == num) {
String str = "";
for (int i = 0; i < nLen; i++) {
str += "0";
}
return str;
}
return HighAddZero(Double.toHexString(num), nLen);
}

/**
* 高位补零
*
* @param str
* @param nLen
* @return
*/
public static String HighAddZero(String str, int nLen) {
int length = str.length();
int nAddLen = nLen - length;
if (length > nLen) {
str = str.substring(0, nLen);
} else {
for (int i = 0; i < nAddLen; i++) {
str = "0" + str;
}
}
return str;
}

public static String HexToString(byte[] inHex) {
byte i;
StringBuilder strResult = new StringBuilder();
strResult.append("");
for (i = 0; i < inHex.length; i++) {
strResult.append(String
.valueOf(DIGITS_UPPER[(0xF0 & inHex[i]) >>> 4]));
strResult.append(String.valueOf(DIGITS_UPPER[inHex[i] & 0x0F]));
}
return strResult.toString();
}

/**
* 16进制字符串转成ASCII字符串
*
* @param strHex
* 16进制字符串
* @return
*/
public static String HexToAsciiString(String strHex) {
byte[] bytes = StringToBytes(strHex);
int i = 0;
for (i = 0; i < bytes.length; i++) {
if (bytes[i] == 0)
break;
}
String strAsci = "";
try {
strAsci = new String(bytes, 0, i, "GBK");
} catch (UnsupportedEncodingException e) {
strAsci = "";
}
return strAsci;
}

/**
* 将字符串转成byte[]
*
* @param str
* @return
*/
private static byte[] StringToBytes(String str) {
int nLen = str.length();
byte bytes[] = new byte[str.length() / 2];
for (int i = 0; i < nLen / 2; i++) {
bytes[i] = StringToByte(str.substring(i * 2, i * 2 + 2));
}
return bytes;
}

/**
* 2个字符十六进制字符串转成byte
*
* @param str
* @return
*/
private static byte StringToByte(String str) {
return (byte) Integer.parseInt(str, 16);
}


public static void main(String[] args) throws UnsupportedEncodingException {
String hexString = "573FFF5B07055BBF4EB9F35A45454545370000000000000100002E120E0402001A0000054C53564646363652000000000000000034313630393800000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF";
hexString = "B9F35A45454545390000000000000100002E120E0402001A0000054C53564646363652000000000000000034313630393800000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF";
String vehiclePlateStr = hexString.substring(0, 24);
String vehiclePlateColorStr = hexString.substring(24, 28);
String collectionTypeStr = hexString.substring(28, 30);
String userTypeStr = hexString.substring(30, 32);
String carLongStr = hexString.substring(32, 36);
String carWidthStr = hexString.substring(36, 38);
String carHeightStr = hexString.substring(38, 40);
String wheelsCountStr = hexString.substring(40, 42);
String axleCountStr = hexString.substring(42, 44);
String axleDistanceStr = hexString.substring(44, 48);
String approvedCountStr = hexString.substring(48, 54);
String vinStr = hexString.substring(54, 86);
String engineNumberStr = hexString.substring(86, 118);

String vehiclePlate = HexToAsciString(vehiclePlateStr, "GBK");
Integer vehiclePlateColor = HexStringToInteger(vehiclePlateColorStr);
Integer collectionType = HexStringToInteger(collectionTypeStr);
Integer userType = HexStringToInteger(userTypeStr);
Integer carLong = HexStringToInteger(carLongStr) * 100;
Integer carWidth = HexStringToInteger(carWidthStr) * 100;
Integer carHeight = HexStringToInteger(carHeightStr) * 100;
Integer wheelsCount = HexStringToInteger(wheelsCountStr);
Integer axleCount = HexStringToInteger(axleCountStr);
Integer axleDistance = HexStringToInteger(axleDistanceStr) * 100;
Integer approvedCount = HexStringToInteger(approvedCountStr);
String engineNumber = HexUtils.HexToAsciString(engineNumberStr, "GBK");



System.out.println(vehiclePlate);
System.out.println(vehiclePlateColor);
}
}

+ 0
- 136
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/SM3Utils.java ファイルの表示

@@ -1,136 +0,0 @@
package cn.com.taiji.core.model.comm.protocol;

import org.bouncycastle.crypto.digests.SM3Digest;
import org.bouncycastle.crypto.macs.HMac;
import org.bouncycastle.crypto.params.KeyParameter;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.pqc.math.linearalgebra.ByteUtils;

import java.io.UnsupportedEncodingException;
import java.security.Security;
import java.util.Arrays;

public class SM3Utils {
private static final String ENCODING = "UTF-8";

static {
Security.addProvider(new BouncyCastleProvider());
}

/**
* sm3算法加密
*
* @param paramStr 待加密字符串
* @return 返回加密后,固定长度=32的16进制字符串
* @explain
*/
public static String encrypt(String paramStr) {
// 将返回的hash值转换成16进制字符串
String resultHexString = "";
try {
// 将字符串转换成byte数组
byte[] srcData = paramStr.getBytes(ENCODING);
// 调用hash()
byte[] resultHash = hash(srcData);
// 将返回的hash值转换成16进制字符串
// 将返回的hash值转化为string类型的字符串
resultHexString = ByteUtils.toHexString(resultHash);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return resultHexString;
}

/**
* 返回长度=32的byte数组
*
* @param srcData
* @return
* @explain 生成对应的hash值
*/
public static byte[] hash(byte[] srcData) {
SM3Digest digest = new SM3Digest();
digest.update(srcData, 0, srcData.length);
byte[] hash = new byte[digest.getDigestSize()];
digest.doFinal(hash, 0);
return hash;
}

/**
* sm3算法加密
*
* @param paramStr 待加密字符串
* @param key 密钥
* @return 返回加密后,固定长度=32的16进制字符串
* @explain
*/
public static String encryptPlus(String paramStr, String key) {
// 将返回的hash值转换成16进制字符串
String resultHexString = "";
try {
// 将字符串转换成byte数组
byte[] srcData = paramStr.getBytes(ENCODING);
// 调用hash()
byte[] resultHash = hmac(key.getBytes(ENCODING), srcData);
// 将返回的hash值转换成16进制字符串
resultHexString = ByteUtils.toHexString(resultHash);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return resultHexString;
}

/**
* 通过密钥进行加密
*
* @param key 密钥
* @param srcData 被加密的byte数组
* @return
* @explain 指定密钥进行加密
*/
public static byte[] hmac(byte[] key, byte[] srcData) {
KeyParameter keyParameter = new KeyParameter(key);
SM3Digest digest = new SM3Digest();
HMac mac = new HMac(digest);
mac.init(keyParameter);
mac.update(srcData, 0, srcData.length);
byte[] result = new byte[mac.getMacSize()];
mac.doFinal(result, 0);
return result;
}

/**
* 判断源数据与加密数据是否一致
*
* @param srcStr 原字符串
* @param sm3HexString 16进制字符串
* @return 校验结果
* @explain 通过验证原数组和生成的hash数组是否为同一数组,验证2者是否为同一数据
*/
public static boolean verify(String srcStr, String sm3HexString) {
boolean flag = false;
try {
byte[] srcData = srcStr.getBytes(ENCODING);
byte[] sm3Hash = ByteUtils.fromHexString(sm3HexString);
byte[] newHash = hash(srcData);
if (Arrays.equals(newHash, sm3Hash)) {
flag = true;
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return flag;
}

public static void main(String[] args) {
String str = "123";
//秘钥
String key = "WVdSdGFXNHdNREZmTWpBeU16QTRNRE09";
String hexPls = SM3Utils.encryptPlus(str, key).toUpperCase();
String hex = SM3Utils.encrypt(str);
System.out.println("参数:" + str);
System.out.println("密文:" + hexPls);
System.out.println("密文:" + hex);
}

}

+ 1
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/SignJsonRequest.java ファイルの表示

@@ -1,6 +1,7 @@
package cn.com.taiji.core.model.comm.protocol;

import cn.com.taiji.common.model.BaseModel;
import cn.com.taiji.core.manager.tools.encryption.SM3Utils;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;

+ 37
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/inss/VfjGetVehInfoClearResponse.java ファイルの表示

@@ -1,14 +1,51 @@
package cn.com.taiji.core.model.comm.protocol.inss;

import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.core.manager.tools.HexUtils;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.UnsupportedEncodingException;

@Getter
@Setter
public class VfjGetVehInfoClearResponse extends AbstractSignTypeResponse {

@JsonProperty(value = "ClearData")
private String clearData;
private String vehiclePlate;
private String vin;
private String engineNumber;
private Integer vehiclePlateColor;
private Integer collectionType;
private Integer userType;
private Integer carLong;
private Integer carWidth;
private Integer carHeight;
private Integer wheelsCount;
private Integer axleCount;
private Integer axleDistance;
private Integer approvedCount;

public VfjGetVehInfoClearResponse decryptVehicleInfo() throws UnsupportedEncodingException {
String hexString = this.clearData;
this.setVehiclePlate(HexUtils.HexToAsciString(hexString.substring(0, 24), "GBK"));
this.setVehiclePlateColor(HexUtils.HexStringToInteger(hexString.substring(24, 28)));
this.setCollectionType(HexUtils.HexStringToInteger(hexString.substring(28, 30)));
this.setUserType(HexUtils.HexStringToInteger(hexString.substring(30, 32)));
this.setCarLong(HexUtils.HexStringToInteger(hexString.substring(32, 36)) * 100);
this.setCarWidth(HexUtils.HexStringToInteger(hexString.substring(36, 38)) * 100);
this.setCarHeight(HexUtils.HexStringToInteger(hexString.substring(38, 40)) * 100);
this.setWheelsCount(HexUtils.HexStringToInteger(hexString.substring(40, 42)));
this.setAxleCount(HexUtils.HexStringToInteger(hexString.substring(42, 44)));
this.setAxleDistance(HexUtils.HexStringToInteger(hexString.substring(44, 48)) * 100);
this.setApprovedCount(HexUtils.HexStringToInteger(hexString.substring(48, 54)));
this.setVin(HexUtils.HexToAsciString(hexString.substring(54, 86), "GBK"));
this.setEngineNumber(HexUtils.HexToAsciString(hexString.substring(86, 118), "GBK"));
return this;
}


}

+ 19
- 0
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/handler/VfjServiceHandler.java ファイルの表示

@@ -16,6 +16,7 @@ public class VfjServiceHandler extends AbstractInssServiceHandler<InssServiceCmd
public VfjServiceHandler() {
super(InssServiceType.VFJ);
}

@Autowired
private VfjBatchApplyManager vfjBatchApplyManager;
@Autowired
@@ -54,6 +55,18 @@ public class VfjServiceHandler extends AbstractInssServiceHandler<InssServiceCmd
private VfjInit4PurchaseCappManager vfjInit4PurchaseCappManager;
@Autowired
private VfjConfrim4PurchaseCappManager vfjConfrim4PurchaseCappManager;
@Autowired
private VfjUpdateFile0019Manager vfjUpdateFile0019Manager;
@Autowired
private VfjUpdateFile001AManager vfjUpdateFile001AManager;
@Autowired
private VfjUpdateFile000EManager vfjUpdateFile000EManager;
@Autowired
private VfjUpdateFile000FManager vfjUpdateFile000FManager;
@Autowired
private VfjApp4PinBlockManager vfjApp4PinBlockManager;
@Autowired
private VfjConfirm4PinBlockManager vfjConfirm4PinBlockManager;

@Override
protected <T extends AbstractSignTypeRequest<?>> AbstractSignTypeResponse handleInternal(T request, SignJsonRequest jsonReq, AbstractHttpRequestInfo reqInfo) throws ServiceHandleException {
@@ -98,11 +111,17 @@ public class VfjServiceHandler extends AbstractInssServiceHandler<InssServiceCmd
case CONFRIM4PURCHASECAPP:
return vfjConfrim4PurchaseCappManager.serviceHandle(cmd, (VfjConfrim4PurchaseCappRequest) request);
case UPDATEFILE0019:
return vfjUpdateFile0019Manager.serviceHandle(cmd, (VfjUpdateFile0019Request) request);
case UPDATEFILE001A:
return vfjUpdateFile001AManager.serviceHandle(cmd, (VfjUpdateFile001ARequest) request);
case UPDATEFILE000E:
return vfjUpdateFile000EManager.serviceHandle(cmd, (VfjUpdateFile000ERequest) request);
case UPDATEFILE000F:
return vfjUpdateFile000FManager.serviceHandle(cmd, (VfjUpdateFile000FRequest) request);
case APP4PINBLOCK:
return vfjApp4PinBlockManager.serviceHandle(cmd, (VfjApp4PinBlockRequest) request);
case CONFIRM4PINBLOCK:
return vfjConfirm4PinBlockManager.serviceHandle(cmd, (VfjConfirm4PinBlockRequest) request);
case QRYCARDBATCH:
case QRYCARDS:
case QRYSMOBUBATCH:

+ 6
- 10
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/vfj/AbstractHandleManager.java ファイルの表示

@@ -1,16 +1,13 @@
package cn.com.taiji.inss.manager.vfj;

import cn.com.taiji.common.manager.AbstractManager;
import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.common.manager.net.http.HttpClientHelper;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.common.model.BaseModel;
import cn.com.taiji.common.pub.EncodeTool;
import cn.com.taiji.common.pub.json.JsonTools;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse;
import cn.com.taiji.core.model.comm.protocol.SignServiceCommand;
import cn.com.taiji.core.model.comm.protocol.inss.InssServiceCmd;
import cn.com.taiji.core.model.comm.protocol.inss.VfjBatchApplyRequest;
import cn.com.taiji.core.model.comm.protocol.inss.VfjStartUpRequest;
import cn.com.taiji.core.model.comm.protocol.inss.VfjStartUpResponse;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
@@ -40,7 +37,7 @@ public abstract class AbstractHandleManager extends AbstractManager {

private final SM2 sm2 = new SM2(vfjConfig.getClientPrivateKey(), vfjConfig.getServerPublicKey());

public String getSessionId(InssServiceCmd cmd) throws ServiceHandleException {
private String getSessionId(InssServiceCmd cmd) throws ServiceHandleException {
if (cmd == InssServiceCmd.REGISTRY)
return "0000000000000000";
if (cmd == InssServiceCmd.STARTUP)
@@ -71,7 +68,7 @@ public abstract class AbstractHandleManager extends AbstractManager {
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("接口错误:" + vfjResponse.getMsg());
}
} catch (IOException e) {
logger.info("{}", e);
logger.error(e.getMessage(), e);
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("接口错误:网络异常!");
}
}
@@ -81,15 +78,14 @@ public abstract class AbstractHandleManager extends AbstractManager {
try {
return JsonTools.json2Object(responseStr, resClass);
} catch (IOException e) {
logger.error(e.getMessage(), e);
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("接口错误:VFJ接口返回值格式错误!");
}
}

private String getTermTrace() {
// long termTrace = redisWrapManager.increment(VFJ_TERM_TRACE,1);
// return termTrace;
return "";
long termTrace = redisWrapManager.increment(VFJ_TERM_TRACE, 1);
if (termTrace > 99999999) redisWrapManager.set(VFJ_TERM_TRACE, "1", 1, TimeUnit.DAYS);
return ("00000000" + termTrace).substring(0, 8);
}


}

+ 12
- 0
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/vfj/VfjApp4PinBlockManager.java ファイルの表示

@@ -0,0 +1,12 @@
package cn.com.taiji.inss.manager.vfj;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.model.comm.protocol.inss.*;
import org.springframework.stereotype.Service;

@Service
public class VfjApp4PinBlockManager extends AbstractHandleManager{
public VfjApp4PinBlockResponse serviceHandle(InssServiceCmd cmd, VfjApp4PinBlockRequest request) throws ServiceHandleException {
return excute(cmd, request, VfjApp4PinBlockResponse.class);
}
}

+ 12
- 0
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/vfj/VfjConfirm4PinBlockManager.java ファイルの表示

@@ -0,0 +1,12 @@
package cn.com.taiji.inss.manager.vfj;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.model.comm.protocol.inss.*;
import org.springframework.stereotype.Service;

@Service
public class VfjConfirm4PinBlockManager extends AbstractHandleManager{
public VfjConfirm4PinBlockResponse serviceHandle(InssServiceCmd cmd, VfjConfirm4PinBlockRequest request) throws ServiceHandleException {
return excute(cmd, request, VfjConfirm4PinBlockResponse.class);
}
}

+ 10
- 2
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/vfj/VfjGetVehInfoClearManager.java ファイルの表示

@@ -2,11 +2,19 @@ package cn.com.taiji.inss.manager.vfj;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.model.comm.protocol.inss.*;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import org.springframework.stereotype.Service;

import java.io.UnsupportedEncodingException;

@Service
public class VfjGetVehInfoClearManager extends AbstractHandleManager{
public class VfjGetVehInfoClearManager extends AbstractHandleManager {
public VfjGetVehInfoClearResponse serviceHandle(InssServiceCmd cmd, VfjGetVehInfoClearRequest request) throws ServiceHandleException {
return excute(cmd, request, VfjGetVehInfoClearResponse.class);
try {
return excute(cmd, request, VfjGetVehInfoClearResponse.class).decryptVehicleInfo();
} catch (UnsupportedEncodingException e) {
logger.error(e.getMessage(), e);
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("接口错误:返回值解析错误" + e.getMessage());
}
}
}

+ 12
- 0
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/vfj/VfjUpdateFile000EManager.java ファイルの表示

@@ -0,0 +1,12 @@
package cn.com.taiji.inss.manager.vfj;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.model.comm.protocol.inss.*;
import org.springframework.stereotype.Service;

@Service
public class VfjUpdateFile000EManager extends AbstractHandleManager{
public VfjUpdateFile000EResponse serviceHandle(InssServiceCmd cmd, VfjUpdateFile000ERequest request) throws ServiceHandleException {
return excute(cmd, request, VfjUpdateFile000EResponse.class);
}
}

+ 12
- 0
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/vfj/VfjUpdateFile000FManager.java ファイルの表示

@@ -0,0 +1,12 @@
package cn.com.taiji.inss.manager.vfj;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.model.comm.protocol.inss.*;
import org.springframework.stereotype.Service;

@Service
public class VfjUpdateFile000FManager extends AbstractHandleManager{
public VfjUpdateFile000FResponse serviceHandle(InssServiceCmd cmd, VfjUpdateFile000FRequest request) throws ServiceHandleException {
return excute(cmd, request, VfjUpdateFile000FResponse.class);
}
}

+ 12
- 0
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/vfj/VfjUpdateFile0019Manager.java ファイルの表示

@@ -0,0 +1,12 @@
package cn.com.taiji.inss.manager.vfj;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.model.comm.protocol.inss.*;
import org.springframework.stereotype.Service;

@Service
public class VfjUpdateFile0019Manager extends AbstractHandleManager{
public VfjUpdateFile0019Response serviceHandle(InssServiceCmd cmd, VfjUpdateFile0019Request request) throws ServiceHandleException {
return excute(cmd, request, VfjUpdateFile0019Response.class);
}
}

+ 12
- 0
zhywpt-service-inss/src/main/java/cn/com/taiji/inss/manager/vfj/VfjUpdateFile001AManager.java ファイルの表示

@@ -0,0 +1,12 @@
package cn.com.taiji.inss.manager.vfj;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.model.comm.protocol.inss.*;
import org.springframework.stereotype.Service;

@Service
public class VfjUpdateFile001AManager extends AbstractHandleManager{
public VfjUpdateFile001AResponse serviceHandle(InssServiceCmd cmd, VfjUpdateFile001ARequest request) throws ServiceHandleException {
return excute(cmd, request, VfjUpdateFile001AResponse.class);
}
}

読み込み中…
キャンセル
保存