| @@ -16,7 +16,7 @@ | |||||
| <properties> | <properties> | ||||
| <lombok.version>1.16.18</lombok.version> | <lombok.version>1.16.18</lombok.version> | ||||
| <hutool.version>5.5.4</hutool.version> | <hutool.version>5.5.4</hutool.version> | ||||
| <fastjson.version>1.2.74</fastjson.version> | |||||
| <fastjson.version>2.0.34</fastjson.version> | |||||
| <java.version>1.8</java.version> | <java.version>1.8</java.version> | ||||
| <project.sourceEncoding>UTF-8</project.sourceEncoding> | <project.sourceEncoding>UTF-8</project.sourceEncoding> | ||||
| </properties> | </properties> | ||||
| @@ -53,8 +53,8 @@ | |||||
| <!-- 阿里JSON解析器 --> | <!-- 阿里JSON解析器 --> | ||||
| <dependency> | <dependency> | ||||
| <groupId>com.alibaba</groupId> | |||||
| <artifactId>fastjson</artifactId> | |||||
| <groupId>com.alibaba.fastjson2</groupId> | |||||
| <artifactId>fastjson2</artifactId> | |||||
| <version>${fastjson.version}</version> | <version>${fastjson.version}</version> | ||||
| </dependency> | </dependency> | ||||
| </dependencies> | </dependencies> | ||||
| @@ -70,8 +70,8 @@ | |||||
| <artifactId>hutool-all</artifactId> | <artifactId>hutool-all</artifactId> | ||||
| </dependency> | </dependency> | ||||
| <dependency> | <dependency> | ||||
| <groupId>com.alibaba</groupId> | |||||
| <artifactId>fastjson</artifactId> | |||||
| <groupId>com.alibaba.fastjson2</groupId> | |||||
| <artifactId>fastjson2</artifactId> | |||||
| </dependency> | </dependency> | ||||
| <dependency> | <dependency> | ||||
| <groupId>javax.servlet</groupId> | <groupId>javax.servlet</groupId> | ||||
| @@ -1,7 +1,7 @@ | |||||
| package com.nsgk.agentcentersdk.api; | package com.nsgk.agentcentersdk.api; | ||||
| import com.alibaba.fastjson.JSON; | |||||
| import com.alibaba.fastjson.JSONObject; | |||||
| import com.alibaba.fastjson2.JSON; | |||||
| import com.alibaba.fastjson2.JSONObject; | |||||
| import com.nsgk.agentcentersdk.err.NSErrno; | import com.nsgk.agentcentersdk.err.NSErrno; | ||||
| import lombok.Data; | import lombok.Data; | ||||
| @@ -1,8 +1,8 @@ | |||||
| package com.nsgk.agentcentersdk.api; | package com.nsgk.agentcentersdk.api; | ||||
| import cn.hutool.core.util.URLUtil; | import cn.hutool.core.util.URLUtil; | ||||
| import com.alibaba.fastjson.JSON; | |||||
| import com.alibaba.fastjson.JSONObject; | |||||
| import com.alibaba.fastjson2.JSON; | |||||
| import com.alibaba.fastjson2.JSONObject; | |||||
| import com.nsgk.agentcentersdk.core.NSConstants; | import com.nsgk.agentcentersdk.core.NSConstants; | ||||
| import com.nsgk.agentcentersdk.core.NSProtocol; | import com.nsgk.agentcentersdk.core.NSProtocol; | ||||
| import com.nsgk.agentcentersdk.core.NSReportObject; | import com.nsgk.agentcentersdk.core.NSReportObject; | ||||
| @@ -1,6 +1,6 @@ | |||||
| package com.nsgk.agentcentersdk.api; | package com.nsgk.agentcentersdk.api; | ||||
| import com.alibaba.fastjson.JSON; | |||||
| import com.alibaba.fastjson2.JSON; | |||||
| import com.nsgk.agentcentersdk.core.NSConstants; | import com.nsgk.agentcentersdk.core.NSConstants; | ||||
| import com.nsgk.agentcentersdk.core.NSProtocol; | import com.nsgk.agentcentersdk.core.NSProtocol; | ||||
| import com.nsgk.agentcentersdk.core.NSReportObject; | import com.nsgk.agentcentersdk.core.NSReportObject; | ||||
| @@ -4,9 +4,9 @@ package com.nsgk.agentcentersdk.core; | |||||
| public final class NSProtocol | public final class NSProtocol | ||||
| { | { | ||||
| public static final int NS_PROTOCOL_INVALID = 0; | public static final int NS_PROTOCOL_INVALID = 0; | ||||
| public static final int NS_PROTOCOL_TEST = 0x00001; | |||||
| public static final int NS_PROTOCOL_CONTRACTION = 0x10001; | |||||
| public static final int NS_PROTOCOL_UPDATE_CONTRACTION = 0x10002; | |||||
| public static final int NS_PROTOCOL_TEST = 0x0001; | |||||
| public static final int NS_PROTOCOL_CONTRACTION = 0x0101; | |||||
| public static final int NS_PROTOCOL_UPDATE_CONTRACTION = 0x0102; | |||||
| public static int FromString(String str) | public static int FromString(String str) | ||||
| { | { | ||||
| @@ -1,7 +1,7 @@ | |||||
| package com.nsgk.agentcentersdk.core; | package com.nsgk.agentcentersdk.core; | ||||
| import cn.hutool.core.bean.BeanUtil; | import cn.hutool.core.bean.BeanUtil; | ||||
| import com.alibaba.fastjson.JSON; | |||||
| import com.alibaba.fastjson2.JSON; | |||||
| import com.nsgk.agentcentersdk.err.NSErrGlobal; | import com.nsgk.agentcentersdk.err.NSErrGlobal; | ||||
| import com.nsgk.agentcentersdk.err.NSErrno; | import com.nsgk.agentcentersdk.err.NSErrno; | ||||
| import com.nsgk.agentcentersdk.utility.NSSignTool; | import com.nsgk.agentcentersdk.utility.NSSignTool; | ||||
| @@ -2,7 +2,7 @@ package com.nsgk.agentcentersdk.message; | |||||
| import cn.hutool.core.bean.BeanUtil; | import cn.hutool.core.bean.BeanUtil; | ||||
| import cn.hutool.core.collection.CollectionUtil; | import cn.hutool.core.collection.CollectionUtil; | ||||
| import com.alibaba.fastjson.JSON; | |||||
| import com.alibaba.fastjson2.JSON; | |||||
| import com.nsgk.agentcentersdk.utility.NSArr; | import com.nsgk.agentcentersdk.utility.NSArr; | ||||
| import com.nsgk.agentcentersdk.utility.NSReflect; | import com.nsgk.agentcentersdk.utility.NSReflect; | ||||
| import com.nsgk.agentcentersdk.utility.NSStr; | import com.nsgk.agentcentersdk.utility.NSStr; | ||||
| @@ -41,6 +41,16 @@ public class NSMessage implements Serializable | |||||
| // 不会覆盖已设置的属性 | // 不会覆盖已设置的属性 | ||||
| protected Map<String, Object> parms; | protected Map<String, Object> parms; | ||||
| public boolean IsValid() | |||||
| { | |||||
| return null != bookId | |||||
| && null != deptId | |||||
| && null != outId | |||||
| && NSStr.IsNotEmpty(orgCode) | |||||
| && NSStr.IsNotEmpty(bookName) | |||||
| ; | |||||
| } | |||||
| protected Map<String, Object> PARMS() | protected Map<String, Object> PARMS() | ||||
| { | { | ||||
| if(null == parms) | if(null == parms) | ||||
| @@ -1,14 +1,34 @@ | |||||
| package com.nsgk.agentcentersdk.network; | package com.nsgk.agentcentersdk.network; | ||||
| import com.nsgk.agentcentersdk.core.NSReportObject; | |||||
| import com.nsgk.agentcentersdk.utility.NSCrypto; | |||||
| import com.nsgk.agentcentersdk.utility.NSArr; | |||||
| import lombok.Data; | import lombok.Data; | ||||
| import lombok.experimental.Accessors; | import lombok.experimental.Accessors; | ||||
| import java.util.LinkedHashMap; | |||||
| import java.util.Map; | |||||
| // Http请求 | // Http请求 | ||||
| @Data | @Data | ||||
| @Accessors(chain = true) | @Accessors(chain = true) | ||||
| public class NSNetworkRequest extends NSNetworkTransport | public class NSNetworkRequest extends NSNetworkTransport | ||||
| { | { | ||||
| private int timeout = 0; | |||||
| private final Map<String, Object> query = new LinkedHashMap<>(); | |||||
| private int timeout = 0; | |||||
| public NSNetworkRequest ClearQueries() | |||||
| { | |||||
| query.clear(); | |||||
| return this; | |||||
| } | |||||
| public NSNetworkRequest AddQuery(String name, Object value) | |||||
| { | |||||
| query.put(name, value); | |||||
| return this; | |||||
| } | |||||
| public Object Query(String name, Object...value) | |||||
| { | |||||
| return query.getOrDefault(name, NSArr.DefParm(value)); | |||||
| } | |||||
| } | } | ||||
| @@ -15,7 +15,6 @@ public abstract class NSNetworkTransport | |||||
| { | { | ||||
| private String url; | private String url; | ||||
| private final Map<String, String> headers = new LinkedHashMap<>(); | private final Map<String, String> headers = new LinkedHashMap<>(); | ||||
| private final Map<String, Object> query = new LinkedHashMap<>(); | |||||
| private String data; | private String data; | ||||
| public NSNetworkTransport() {} | public NSNetworkTransport() {} | ||||
| @@ -41,21 +40,4 @@ public abstract class NSNetworkTransport | |||||
| { | { | ||||
| return headers.getOrDefault(name, NSArr.DefParm(value)); | return headers.getOrDefault(name, NSArr.DefParm(value)); | ||||
| } | } | ||||
| public NSNetworkTransport ClearQueries() | |||||
| { | |||||
| query.clear(); | |||||
| return this; | |||||
| } | |||||
| public NSNetworkTransport AddQuery(String name, Object value) | |||||
| { | |||||
| query.put(name, value); | |||||
| return this; | |||||
| } | |||||
| public Object Query(String name, Object...value) | |||||
| { | |||||
| return query.getOrDefault(name, NSArr.DefParm(value)); | |||||
| } | |||||
| } | } | ||||
| @@ -38,12 +38,23 @@ public class ContractionListener | |||||
| public void reportContraction(Session<NSContractionMessage> session) | public void reportContraction(Session<NSContractionMessage> session) | ||||
| { | { | ||||
| TAgentContraction contraction = conv(session.data); | TAgentContraction contraction = conv(session.data); | ||||
| String orgCode = contraction.getOrgCode(); | |||||
| SqlUtil.transaction(() -> { | SqlUtil.transaction(() -> { | ||||
| TAgentTask task = syncTask(session.data, contraction); | |||||
| contraction.setTaskId(task.getId()); | |||||
| if(null == contraction.getId()) | if(null == contraction.getId()) | ||||
| { | { | ||||
| TAgentTask tAgentTask = itAgentTaskService.getTAgentTask(orgCode, contraction.getOrderYear(), contraction.getOrderMonth(), (x) -> { | |||||
| x.setBookId(contraction.getBookId()) | |||||
| .setBookName(session.data.getBookName()) | |||||
| ; | |||||
| }); | |||||
| TAgentTask task = new TAgentTask(); | |||||
| task.setContracCount(1); | |||||
| task.setId(tAgentTask.getId()); | |||||
| itAgentTaskService.updateTAgentTaskCount(task); | |||||
| contraction.setTaskId(tAgentTask.getId()); | |||||
| itAgentContractionService.insertTAgentContraction(contraction); | itAgentContractionService.insertTAgentContraction(contraction); | ||||
| session.result.setMessage("新增合同报账成功"); | session.result.setMessage("新增合同报账成功"); | ||||
| } | } | ||||
| @@ -111,24 +122,6 @@ public class ContractionListener | |||||
| return contraction; | return contraction; | ||||
| } | } | ||||
| private TAgentTask syncTask(NSContractionMessage entity, TAgentContraction contraction) | |||||
| { | |||||
| String orgCode = contraction.getOrgCode(); | |||||
| TAgentTask tAgentTask = itAgentTaskService.getTAgentTask(orgCode, contraction.getOrderYear(), contraction.getOrderMonth(), (x) -> { | |||||
| x.setBookId(contraction.getBookId()) | |||||
| .setBookName(entity.getBookName()) | |||||
| ; | |||||
| }); | |||||
| TAgentTask task = new TAgentTask(); | |||||
| task.setContracCount(1); | |||||
| task.setId(tAgentTask.getId()); | |||||
| itAgentTaskService.updateTAgentTaskCount(task); | |||||
| return tAgentTask; | |||||
| } | |||||
| private void syncFinishTask(TAgentContraction contraction) | private void syncFinishTask(TAgentContraction contraction) | ||||
| { | { | ||||
| String orgCode = contraction.getOrgCode(); | String orgCode = contraction.getOrgCode(); | ||||
| @@ -7,7 +7,7 @@ import lombok.experimental.Accessors; | |||||
| public class Session<T> | public class Session<T> | ||||
| { | { | ||||
| public final int protocol; // 协议 | public final int protocol; // 协议 | ||||
| public final String identifier; // 识别ID | |||||
| public final String identifier; // 识别ID, 或为orgCode, 不等于 NSMessage::orgCode | |||||
| public final long timestamp; // 客户端时间戳 | public final long timestamp; // 客户端时间戳 | ||||
| public final T data; // 客户端数据 | public final T data; // 客户端数据 | ||||
| @@ -38,7 +38,7 @@ public class AgentCenterImpl implements IAgentCenter | |||||
| public Session<?> createSession(NSSDKServer server, HttpServletRequest request) | public Session<?> createSession(NSSDKServer server, HttpServletRequest request) | ||||
| { | { | ||||
| NSReportObject<?> reportObject; | |||||
| NSReportObject<? extends NSMessage> reportObject; | |||||
| Session<?> session; | Session<?> session; | ||||
| Class<? extends NSMessage> clazz; | Class<? extends NSMessage> clazz; | ||||
| int protocol; | int protocol; | ||||
| @@ -54,6 +54,10 @@ public class AgentCenterImpl implements IAgentCenter | |||||
| return null; | return null; | ||||
| } | } | ||||
| reportObject = server.Recv(request, clazz); | reportObject = server.Recv(request, clazz); | ||||
| if(!reportObject.IsValid() || !reportObject.getData().IsValid()) | |||||
| { | |||||
| return NSErrGlobal.ThrowAndReturn(NSErrno.ERRNO_CLI_DATA_MISSING, null); | |||||
| } | |||||
| session = new Session<>(protocol, reportObject.getIdentifier(), reportObject.getTimestamp(), reportObject.getData()); | session = new Session<>(protocol, reportObject.getIdentifier(), reportObject.getTimestamp(), reportObject.getData()); | ||||