| @@ -4,8 +4,7 @@ import com.nsgk.agentcentersdk.api.NSApiResult; | |||||
| import com.nsgk.agentcentersdk.api.NSSDK; | import com.nsgk.agentcentersdk.api.NSSDK; | ||||
| import com.nsgk.agentcentersdk.api.NSSDKClient; | import com.nsgk.agentcentersdk.api.NSSDKClient; | ||||
| import com.nsgk.agentcentersdk.core.NSProtocol; | import com.nsgk.agentcentersdk.core.NSProtocol; | ||||
| import com.nsgk.agentcentersdk.entity.NSContractionEntity; | |||||
| import com.nsgk.agentcentersdk.entity.NSEntity; | |||||
| import com.nsgk.agentcentersdk.message.NSMessage; | |||||
| import com.nsgk.agentcentersdk.utility.NSReflect; | import com.nsgk.agentcentersdk.utility.NSReflect; | ||||
| public final class NSMain | public final class NSMain | ||||
| @@ -41,13 +40,13 @@ public final class NSMain | |||||
| public static void Test() | public static void Test() | ||||
| { | { | ||||
| NSSDKClient client; | NSSDKClient client; | ||||
| NSEntity entity; | |||||
| NSMessage entity; | |||||
| NSApiResult result; | NSApiResult result; | ||||
| NSSDK.InitClient("http://localhost", (short) 8081, "371002100005", "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==", 0); | NSSDK.InitClient("http://localhost", (short) 8081, "371002100005", "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==", 0); | ||||
| client = NSSDK.InstanceClient(); | client = NSSDK.InstanceClient(); | ||||
| entity = new NSEntity(); | |||||
| entity = new NSMessage(); | |||||
| entity.setDeptId(187L) | entity.setDeptId(187L) | ||||
| .setBookId(166L) | .setBookId(166L) | ||||
| .setOrgCode("371002100005") | .setOrgCode("371002100005") | ||||
| @@ -3,8 +3,8 @@ package com.nsgk.agentcentersdk.api; | |||||
| // 接口 | // 接口 | ||||
| public final class NSApi | public final class NSApi | ||||
| { | { | ||||
| public static final String NS_API_TEST = "/agentcenter/api/test"; | |||||
| public static final String NS_API_REPORT = "/agentcenter/api/report"; | |||||
| public static final String NS_API_TEST = "/agentcenter/api/test"; | |||||
| public static final String NS_API_INTERFACE = "/agentcenter/api/interface"; | |||||
| private NSApi() {} | private NSApi() {} | ||||
| } | } | ||||
| @@ -6,7 +6,7 @@ import com.alibaba.fastjson.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; | ||||
| import com.nsgk.agentcentersdk.entity.NSEntity; | |||||
| import com.nsgk.agentcentersdk.message.NSMessage; | |||||
| import com.nsgk.agentcentersdk.err.NSAssert; | import com.nsgk.agentcentersdk.err.NSAssert; | ||||
| import com.nsgk.agentcentersdk.err.NSErrGlobal; | import com.nsgk.agentcentersdk.err.NSErrGlobal; | ||||
| import com.nsgk.agentcentersdk.err.NSErrno; | import com.nsgk.agentcentersdk.err.NSErrno; | ||||
| @@ -50,7 +50,7 @@ public final class NSSDKClient | |||||
| } | } | ||||
| // 发送请求 | // 发送请求 | ||||
| public <T extends NSEntity> NSApiResult Send(int protocol, T object) | |||||
| public <T extends NSMessage> NSApiResult Send(int protocol, T object) | |||||
| { | { | ||||
| String url; | String url; | ||||
| NSReportObject<T> reportObject; | NSReportObject<T> reportObject; | ||||
| @@ -59,7 +59,7 @@ public final class NSSDKClient | |||||
| NSAssert.NotNull(object, NSErrno.ERRNO_CLI_DATA_MISSING); | NSAssert.NotNull(object, NSErrno.ERRNO_CLI_DATA_MISSING); | ||||
| NSAssert.NotEmpty(identifier, NSErrno.ERRNO_CLI_PARAMETER_MISSING); | NSAssert.NotEmpty(identifier, NSErrno.ERRNO_CLI_PARAMETER_MISSING); | ||||
| NSErrGlobal.ASSERT(NSProtocol.IsValid(protocol), NSErrno.ERRNO_SYS_INVALID_PROTOCOL); | NSErrGlobal.ASSERT(NSProtocol.IsValid(protocol), NSErrno.ERRNO_SYS_INVALID_PROTOCOL); | ||||
| url = NSApi.NS_API_REPORT; | |||||
| url = NSApi.NS_API_INTERFACE; | |||||
| reportObject = new NSReportObject<>(identifier, protocol, object); | reportObject = new NSReportObject<>(identifier, protocol, object); | ||||
| request = new NSNetworkRequest(); | request = new NSNetworkRequest(); | ||||
| request.setUrl(BuildUrl(url)); | request.setUrl(BuildUrl(url)); | ||||
| @@ -4,7 +4,7 @@ import com.alibaba.fastjson.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; | ||||
| import com.nsgk.agentcentersdk.entity.NSEntity; | |||||
| import com.nsgk.agentcentersdk.message.NSMessage; | |||||
| import com.nsgk.agentcentersdk.err.NSAssert; | import com.nsgk.agentcentersdk.err.NSAssert; | ||||
| import com.nsgk.agentcentersdk.err.NSErrGlobal; | import com.nsgk.agentcentersdk.err.NSErrGlobal; | ||||
| import com.nsgk.agentcentersdk.err.NSErrno; | import com.nsgk.agentcentersdk.err.NSErrno; | ||||
| @@ -38,7 +38,7 @@ public final class NSSDKServer | |||||
| } | } | ||||
| // 解析请求 | // 解析请求 | ||||
| public <T extends NSEntity> NSReportObject<T> Recv(HttpServletRequest request, Class<T> clazz) | |||||
| public <T extends NSMessage> NSReportObject<T> Recv(HttpServletRequest request, Class<T> clazz) | |||||
| { | { | ||||
| NSReportObject<T> res; | NSReportObject<T> res; | ||||
| String sign; | String sign; | ||||
| @@ -1,4 +1,4 @@ | |||||
| package com.nsgk.agentcentersdk.entity; | |||||
| package com.nsgk.agentcentersdk.message; | |||||
| import lombok.Data; | import lombok.Data; | ||||
| import lombok.experimental.Accessors; | import lombok.experimental.Accessors; | ||||
| @@ -6,7 +6,7 @@ import lombok.experimental.Accessors; | |||||
| // 合同实体 | // 合同实体 | ||||
| @Data | @Data | ||||
| @Accessors(chain = true) | @Accessors(chain = true) | ||||
| public class NSContractionEntity extends NSEntity | |||||
| public class NSContractionMessage extends NSMessage | |||||
| { | { | ||||
| private static final long serialVersionUID = 1L; | private static final long serialVersionUID = 1L; | ||||
| @@ -1,4 +1,4 @@ | |||||
| package com.nsgk.agentcentersdk.entity; | |||||
| 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; | ||||
| @@ -18,7 +18,7 @@ import java.util.Map; | |||||
| // 基本实体 | // 基本实体 | ||||
| @Data | @Data | ||||
| @Accessors(chain = true) | @Accessors(chain = true) | ||||
| public class NSEntity implements Serializable | |||||
| public class NSMessage implements Serializable | |||||
| { | { | ||||
| private static final long serialVersionUID = 1L; | private static final long serialVersionUID = 1L; | ||||
| @@ -49,14 +49,14 @@ public class NSEntity implements Serializable | |||||
| } | } | ||||
| @SuppressWarnings("unchecked") | @SuppressWarnings("unchecked") | ||||
| public <T extends NSEntity> T Parm(String name, Object val) | |||||
| public <T extends NSMessage> T Parm(String name, Object val) | |||||
| { | { | ||||
| PARMS().put(name, val); | PARMS().put(name, val); | ||||
| return (T)this; | return (T)this; | ||||
| } | } | ||||
| @SuppressWarnings("unchecked") | @SuppressWarnings("unchecked") | ||||
| public <T extends NSEntity> T DelParm(String...name) | |||||
| public <T extends NSMessage> T DelParm(String...name) | |||||
| { | { | ||||
| if(null != parms && NSArr.IsNotEmpty(name)) | if(null != parms && NSArr.IsNotEmpty(name)) | ||||
| { | { | ||||
| @@ -132,14 +132,14 @@ public class NSEntity implements Serializable | |||||
| } | } | ||||
| @SuppressWarnings("unchecked") | @SuppressWarnings("unchecked") | ||||
| public <T extends NSEntity> T Add(String name, Object val) | |||||
| public <T extends NSMessage> T Add(String name, Object val) | |||||
| { | { | ||||
| Set(name, val); | Set(name, val); | ||||
| return (T)this; | return (T)this; | ||||
| } | } | ||||
| @SuppressWarnings("unchecked") | @SuppressWarnings("unchecked") | ||||
| public <T extends NSEntity> T Add_s(String name, Object val) | |||||
| public <T extends NSMessage> T Add_s(String name, Object val) | |||||
| { | { | ||||
| Set_s(name, val); | Set_s(name, val); | ||||
| return (T)this; | return (T)this; | ||||
| @@ -3,26 +3,19 @@ package com.ruoyi.web.controller.agentcenter; | |||||
| import com.nsgk.agentcentersdk.api.NSApiResult; | import com.nsgk.agentcentersdk.api.NSApiResult; | ||||
| import com.nsgk.agentcentersdk.api.NSSDK; | import com.nsgk.agentcentersdk.api.NSSDK; | ||||
| import com.nsgk.agentcentersdk.api.NSSDKServer; | import com.nsgk.agentcentersdk.api.NSSDKServer; | ||||
| import com.nsgk.agentcentersdk.core.NSProtocol; | |||||
| import com.nsgk.agentcentersdk.core.NSReportObject; | import com.nsgk.agentcentersdk.core.NSReportObject; | ||||
| import com.nsgk.agentcentersdk.entity.NSContractionEntity; | |||||
| import com.nsgk.agentcentersdk.err.NSErrGlobal; | |||||
| import com.nsgk.agentcentersdk.message.NSContractionMessage; | |||||
| import com.nsgk.agentcentersdk.err.NSErrno; | import com.nsgk.agentcentersdk.err.NSErrno; | ||||
| import com.nsgk.agentcentersdk.err.NSException; | import com.nsgk.agentcentersdk.err.NSException; | ||||
| import com.ruoyi.agentcenter.object.ContractionSession; | |||||
| import com.ruoyi.agentcenter.object.Message; | |||||
| import com.ruoyi.agentcenter.object.Result; | |||||
| import com.ruoyi.agentcenter.object.Session; | import com.ruoyi.agentcenter.object.Session; | ||||
| import com.ruoyi.agentcenter.service.IAgentCenter; | import com.ruoyi.agentcenter.service.IAgentCenter; | ||||
| import com.ruoyi.common.config.RuoYiConfig; | import com.ruoyi.common.config.RuoYiConfig; | ||||
| import com.ruoyi.common.core.controller.BaseController; | import com.ruoyi.common.core.controller.BaseController; | ||||
| import com.ruoyi.common.utils.EventBusEngine; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.web.bind.annotation.PostMapping; | import org.springframework.web.bind.annotation.PostMapping; | ||||
| import org.springframework.web.bind.annotation.RequestMapping; | import org.springframework.web.bind.annotation.RequestMapping; | ||||
| import org.springframework.web.bind.annotation.RestController; | import org.springframework.web.bind.annotation.RestController; | ||||
| import javax.servlet.ServletInputStream; | |||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
| /** | /** | ||||
| @@ -41,26 +34,27 @@ public class AgentCenterController extends BaseController | |||||
| public NSApiResult test(HttpServletRequest request) | public NSApiResult test(HttpServletRequest request) | ||||
| { | { | ||||
| NSSDKServer server; | NSSDKServer server; | ||||
| NSReportObject<NSContractionEntity> recv; | |||||
| NSReportObject<NSContractionMessage> recv; | |||||
| NSSDK.InitServer(RuoYiConfig.Secret.privateKey); | NSSDK.InitServer(RuoYiConfig.Secret.privateKey); | ||||
| server = NSSDK.InstanceServer(); | server = NSSDK.InstanceServer(); | ||||
| recv = server.Recv(request, NSContractionEntity.class); | |||||
| recv = server.Recv(request, NSContractionMessage.class); | |||||
| return server.Resp(0, "测试成功", recv.getDataStr()); | return server.Resp(0, "测试成功", recv.getDataStr()); | ||||
| } | } | ||||
| @PostMapping("/report") | |||||
| @PostMapping("/interface") | |||||
| public NSApiResult report(HttpServletRequest request) | public NSApiResult report(HttpServletRequest request) | ||||
| { | { | ||||
| NSSDKServer server; | NSSDKServer server; | ||||
| Session<?> session; | |||||
| NSSDK.InitServer(RuoYiConfig.Secret.privateKey); | NSSDK.InitServer(RuoYiConfig.Secret.privateKey); | ||||
| server = NSSDK.InstanceServer(); | server = NSSDK.InstanceServer(); | ||||
| try | try | ||||
| { | { | ||||
| Result<?> result = agentCenter.postHandle(server, request); | |||||
| return server.Resp(result.getCode(), result.getMessage(), result.getData()); | |||||
| session = agentCenter.postHandle(server, request); | |||||
| return server.Resp(session.result.getCode(), session.result.getMessage(), session.result.getData()); | |||||
| } | } | ||||
| catch(NSException e) | catch(NSException e) | ||||
| { | { | ||||
| @@ -2,15 +2,12 @@ package com.ruoyi.agentcenter.listener; | |||||
| import cn.hutool.core.lang.Assert; | import cn.hutool.core.lang.Assert; | ||||
| import com.nsgk.agentcentersdk.core.NSProtocol; | import com.nsgk.agentcentersdk.core.NSProtocol; | ||||
| import com.nsgk.agentcentersdk.entity.NSContractionEntity; | |||||
| import com.nsgk.agentcentersdk.message.NSContractionMessage; | |||||
| import com.ruoyi.agentcenter.domain.TAgentContraction; | import com.ruoyi.agentcenter.domain.TAgentContraction; | ||||
| import com.ruoyi.agentcenter.domain.TAgentTask; | import com.ruoyi.agentcenter.domain.TAgentTask; | ||||
| import com.ruoyi.agentcenter.object.ContractionSession; | |||||
| import com.ruoyi.agentcenter.object.Message; | |||||
| import com.ruoyi.agentcenter.object.Result; | |||||
| import com.ruoyi.agentcenter.object.Session; | |||||
| import com.ruoyi.agentcenter.service.ITAgentContractionService; | import com.ruoyi.agentcenter.service.ITAgentContractionService; | ||||
| import com.ruoyi.agentcenter.service.ITAgentTaskService; | import com.ruoyi.agentcenter.service.ITAgentTaskService; | ||||
| import com.ruoyi.common.core.domain.entity.SysDept; | |||||
| import com.ruoyi.common.utils.handler.CallbackHandler; | import com.ruoyi.common.utils.handler.CallbackHandler; | ||||
| import com.ruoyi.common.utils.handler.HandlerEngine; | import com.ruoyi.common.utils.handler.HandlerEngine; | ||||
| import com.ruoyi.common.utils.sql.SqlUtil; | import com.ruoyi.common.utils.sql.SqlUtil; | ||||
| @@ -38,34 +35,32 @@ public class ContractionListener | |||||
| } | } | ||||
| @CallbackHandler(protocol = "" + NSProtocol.NS_PROTOCOL_CONTRACTION) | @CallbackHandler(protocol = "" + NSProtocol.NS_PROTOCOL_CONTRACTION) | ||||
| public void reportContraction(ContractionSession session) | |||||
| public void reportContraction(Session<NSContractionMessage> session) | |||||
| { | { | ||||
| TAgentContraction contraction = conv(session.message); | |||||
| Result result = session.result; | |||||
| TAgentContraction contraction = conv(session.data); | |||||
| SqlUtil.transaction(() -> { | SqlUtil.transaction(() -> { | ||||
| TAgentTask task = syncTask(session.message.getData(), contraction); | |||||
| TAgentTask task = syncTask(session.data, contraction); | |||||
| contraction.setTaskId(task.getId()); | contraction.setTaskId(task.getId()); | ||||
| if(null == contraction.getId()) | if(null == contraction.getId()) | ||||
| { | { | ||||
| itAgentContractionService.insertTAgentContraction(contraction); | itAgentContractionService.insertTAgentContraction(contraction); | ||||
| result.setMessage("新增合同报账成功"); | |||||
| session.result.setMessage("新增合同报账成功"); | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| itAgentContractionService.updateTAgentContraction(contraction); | itAgentContractionService.updateTAgentContraction(contraction); | ||||
| result.setMessage("更新合同报账成功"); | |||||
| session.result.setMessage("更新合同报账成功"); | |||||
| } | } | ||||
| }); | }); | ||||
| result.setData(contraction); | |||||
| session.result.setData(contraction); | |||||
| } | } | ||||
| @CallbackHandler(protocol = "" + NSProtocol.NS_PROTOCOL_UPDATE_CONTRACTION) | @CallbackHandler(protocol = "" + NSProtocol.NS_PROTOCOL_UPDATE_CONTRACTION) | ||||
| public void updateContraction(ContractionSession session) | |||||
| public void updateContraction(Session<NSContractionMessage> session) | |||||
| { | { | ||||
| NSContractionEntity inContraction = session.message.getData(); | |||||
| Result result = session.result; | |||||
| NSContractionMessage inContraction = session.data; | |||||
| TAgentContraction contraction = itAgentContractionService.selectTAgentContraction(new TAgentContraction().setOrgCode(inContraction.getOrgCode()).setOutId(inContraction.getOutId())); | TAgentContraction contraction = itAgentContractionService.selectTAgentContraction(new TAgentContraction().setOrgCode(inContraction.getOrgCode()).setOutId(inContraction.getOutId())); | ||||
| Assert.notNull(contraction, "报账合同不存在"); | Assert.notNull(contraction, "报账合同不存在"); | ||||
| Assert.isTrue(TAgentTask.AGENT_STATUS_PROCESSING.equals(contraction.getAgentStatus()), "报账合同任务未分配"); | Assert.isTrue(TAgentTask.AGENT_STATUS_PROCESSING.equals(contraction.getAgentStatus()), "报账合同任务未分配"); | ||||
| @@ -77,13 +72,11 @@ public class ContractionListener | |||||
| syncFinishTask(contraction); | syncFinishTask(contraction); | ||||
| }); | }); | ||||
| result.setData(contraction); | |||||
| session.result.setData(contraction); | |||||
| } | } | ||||
| private TAgentContraction conv(Message<NSContractionEntity> message) | |||||
| private TAgentContraction conv(NSContractionMessage data) | |||||
| { | { | ||||
| NSContractionEntity data = message.getData(); | |||||
| TAgentContraction contractionCond = new TAgentContraction(); | TAgentContraction contractionCond = new TAgentContraction(); | ||||
| contractionCond.setOrgCode(data.getOrgCode()) | contractionCond.setOrgCode(data.getOrgCode()) | ||||
| .setOutId(data.getOutId()); | .setOutId(data.getOutId()); | ||||
| @@ -118,7 +111,7 @@ public class ContractionListener | |||||
| return contraction; | return contraction; | ||||
| } | } | ||||
| private TAgentTask syncTask(NSContractionEntity entity, TAgentContraction contraction) | |||||
| private TAgentTask syncTask(NSContractionMessage entity, TAgentContraction contraction) | |||||
| { | { | ||||
| String orgCode = contraction.getOrgCode(); | String orgCode = contraction.getOrgCode(); | ||||
| @@ -140,12 +133,12 @@ public class ContractionListener | |||||
| { | { | ||||
| String orgCode = contraction.getOrgCode(); | String orgCode = contraction.getOrgCode(); | ||||
| TAgentTask tAgentTask = itAgentTaskService.getTAgentTask(orgCode, contraction.getOrderYear(), contraction.getOrderMonth()); | |||||
| Assert.notNull(tAgentTask, "{}下{}年{}月无任务", orgCode, contraction.getOrderYear(), contraction.getOrderMonth()); | |||||
| TAgentTask task = new TAgentTask(); | TAgentTask task = new TAgentTask(); | ||||
| task.setOrgCode(orgCode) | |||||
| .setOrderYear(contraction.getOrderYear()) | |||||
| .setOrderMonth(contraction.getOrderMonth()) | |||||
| ; | |||||
| task.setFinishCount(1); | task.setFinishCount(1); | ||||
| task.setId(tAgentTask.getId()); | |||||
| itAgentTaskService.updateTAgentTaskCount(task); | |||||
| itAgentTaskService.syncTAgentTaskCount(task); | |||||
| } | } | ||||
| } | } | ||||
| @@ -1,8 +1,7 @@ | |||||
| package com.ruoyi.agentcenter.listener; | package com.ruoyi.agentcenter.listener; | ||||
| import com.google.common.eventbus.Subscribe; | import com.google.common.eventbus.Subscribe; | ||||
| import com.ruoyi.agentcenter.object.Message; | |||||
| import com.ruoyi.common.utils.EventBusEngine; | |||||
| import com.ruoyi.agentcenter.object.Session; | |||||
| import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
| import javax.annotation.PostConstruct; | import javax.annotation.PostConstruct; | ||||
| @@ -18,8 +17,8 @@ public class TestListener | |||||
| @Subscribe | @Subscribe | ||||
| //@AllowConcurrentEvents | //@AllowConcurrentEvents | ||||
| public void handle(Message msg) | |||||
| public void handle(Session session) | |||||
| { | { | ||||
| System.err.println("LLL " + msg.getData() + " " + Thread.currentThread().getId()); | |||||
| System.err.println("LLL " + session + " " + Thread.currentThread().getId()); | |||||
| } | } | ||||
| } | } | ||||
| @@ -1,11 +0,0 @@ | |||||
| package com.ruoyi.agentcenter.object; | |||||
| import com.nsgk.agentcentersdk.entity.NSContractionEntity; | |||||
| public class ContractionSession extends Session<NSContractionEntity, Result<?>> | |||||
| { | |||||
| public ContractionSession(Message<NSContractionEntity> message) | |||||
| { | |||||
| super(message, new Result<>()); | |||||
| } | |||||
| } | |||||
| @@ -1,31 +0,0 @@ | |||||
| package com.ruoyi.agentcenter.object; | |||||
| import com.nsgk.agentcentersdk.core.NSProtocol; | |||||
| import lombok.Data; | |||||
| import lombok.experimental.Accessors; | |||||
| @Data | |||||
| @Accessors(chain = true) | |||||
| public class Message<T> | |||||
| { | |||||
| private final int protocol; // 协议 | |||||
| private final String identifier; // 识别ID | |||||
| private final Long timestamp; // 客户端时间戳 | |||||
| private final T data; | |||||
| public Message() | |||||
| { | |||||
| this.protocol = NSProtocol.NS_PROTOCOL_INVALID; | |||||
| this.identifier = ""; | |||||
| this.timestamp = 0L; | |||||
| this.data = null; | |||||
| } | |||||
| public Message(int protocol, String identifier, Long timestamp, T data) | |||||
| { | |||||
| this.protocol = protocol; | |||||
| this.identifier = identifier; | |||||
| this.timestamp = timestamp; | |||||
| this.data = data; | |||||
| } | |||||
| } | |||||
| @@ -1,20 +0,0 @@ | |||||
| package com.ruoyi.agentcenter.object; | |||||
| import com.nsgk.agentcentersdk.err.NSErrno; | |||||
| import lombok.Data; | |||||
| import lombok.experimental.Accessors; | |||||
| @Data | |||||
| @Accessors(chain = true) | |||||
| public class Result<R> | |||||
| { | |||||
| private boolean success; | |||||
| private int code; | |||||
| private String message; | |||||
| private R data; | |||||
| public boolean IsSuccess() | |||||
| { | |||||
| return code == NSErrno.ERRNO_OK; | |||||
| } | |||||
| } | |||||
| @@ -1,18 +1,48 @@ | |||||
| package com.ruoyi.agentcenter.object; | package com.ruoyi.agentcenter.object; | ||||
| public class Session<T, R> | |||||
| import com.nsgk.agentcentersdk.err.NSErrno; | |||||
| import lombok.Data; | |||||
| import lombok.experimental.Accessors; | |||||
| public class Session<T> | |||||
| { | { | ||||
| public final Message<T> message; | |||||
| public final Result<R> result; | |||||
| public final int protocol; // 协议 | |||||
| public final String identifier; // 识别ID | |||||
| public final long timestamp; // 客户端时间戳 | |||||
| public final T data; // 客户端数据 | |||||
| public final Result result; // 处理结果(服务端响应) | |||||
| protected Session() | protected Session() | ||||
| { | { | ||||
| throw new RuntimeException("Session<T, R>不能默认实例化"); | throw new RuntimeException("Session<T, R>不能默认实例化"); | ||||
| } | } | ||||
| protected Session(Message<T> message, Result<R> result) | |||||
| public Session(int protocol, String identifier, long timestamp, T data, Result result) | |||||
| { | { | ||||
| this.message = message; | |||||
| this.protocol = protocol; | |||||
| this.identifier = identifier; | |||||
| this.timestamp = timestamp; | |||||
| this.data = data; | |||||
| this.result = result; | this.result = result; | ||||
| } | } | ||||
| public Session(int protocol, String identifier, long timestamp, T data) | |||||
| { | |||||
| this(protocol, identifier, timestamp, data, new Result()); | |||||
| } | |||||
| @Data | |||||
| @Accessors(chain = true) | |||||
| public static class Result | |||||
| { | |||||
| private int code; | |||||
| private String message; | |||||
| private Object data; | |||||
| public boolean IsSuccess() | |||||
| { | |||||
| return code == NSErrno.ERRNO_OK; | |||||
| } | |||||
| } | |||||
| } | } | ||||
| @@ -1,11 +1,11 @@ | |||||
| package com.ruoyi.agentcenter.service; | package com.ruoyi.agentcenter.service; | ||||
| import com.nsgk.agentcentersdk.api.NSSDKServer; | import com.nsgk.agentcentersdk.api.NSSDKServer; | ||||
| import com.ruoyi.agentcenter.object.Result; | |||||
| import com.ruoyi.agentcenter.object.Session; | |||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
| public interface IAgentCenter | public interface IAgentCenter | ||||
| { | { | ||||
| public Result<?> postHandle(NSSDKServer server, HttpServletRequest request); | |||||
| public Session<?> postHandle(NSSDKServer server, HttpServletRequest request); | |||||
| } | } | ||||
| @@ -109,4 +109,6 @@ public interface ITAgentTaskService | |||||
| public TAgentTask getTAgentTask(String orgCode, String year, String month, Consumer<TAgentTask> ifNotExists); | public TAgentTask getTAgentTask(String orgCode, String year, String month, Consumer<TAgentTask> ifNotExists); | ||||
| public TAgentTask getTAgentTask(String orgCode, String year, String month); | public TAgentTask getTAgentTask(String orgCode, String year, String month); | ||||
| public int syncTAgentTaskCount(TAgentTask tAgentTask); | |||||
| } | } | ||||
| @@ -4,14 +4,11 @@ import cn.hutool.core.lang.Assert; | |||||
| import com.nsgk.agentcentersdk.api.NSSDKServer; | import com.nsgk.agentcentersdk.api.NSSDKServer; | ||||
| import com.nsgk.agentcentersdk.core.NSProtocol; | import com.nsgk.agentcentersdk.core.NSProtocol; | ||||
| import com.nsgk.agentcentersdk.core.NSReportObject; | import com.nsgk.agentcentersdk.core.NSReportObject; | ||||
| import com.nsgk.agentcentersdk.entity.NSContractionEntity; | |||||
| import com.nsgk.agentcentersdk.entity.NSEntity; | |||||
| import com.nsgk.agentcentersdk.message.NSContractionMessage; | |||||
| import com.nsgk.agentcentersdk.message.NSMessage; | |||||
| 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.err.NSException; | import com.nsgk.agentcentersdk.err.NSException; | ||||
| import com.ruoyi.agentcenter.object.ContractionSession; | |||||
| import com.ruoyi.agentcenter.object.Message; | |||||
| import com.ruoyi.agentcenter.object.Result; | |||||
| import com.ruoyi.agentcenter.object.Session; | import com.ruoyi.agentcenter.object.Session; | ||||
| import com.ruoyi.agentcenter.service.IAgentCenter; | import com.ruoyi.agentcenter.service.IAgentCenter; | ||||
| import com.ruoyi.common.core.domain.entity.SysDept; | import com.ruoyi.common.core.domain.entity.SysDept; | ||||
| @@ -39,49 +36,34 @@ public class AgentCenterImpl implements IAgentCenter | |||||
| return protocol; | return protocol; | ||||
| } | } | ||||
| public Message<?> getMessage(NSSDKServer server, HttpServletRequest request) | |||||
| public Session<?> createSession(NSSDKServer server, HttpServletRequest request) | |||||
| { | { | ||||
| NSReportObject<?> reportObject; | NSReportObject<?> reportObject; | ||||
| Message<?> message; | |||||
| Session<?> session; | |||||
| Class<? extends NSMessage> clazz; | |||||
| int protocol; | |||||
| int protocol = getProtocol(request); | |||||
| Class<? extends NSEntity> clazz; | |||||
| protocol = getProtocol(request); | |||||
| switch(protocol) | switch(protocol) | ||||
| { | { | ||||
| case NSProtocol.NS_PROTOCOL_CONTRACTION: | case NSProtocol.NS_PROTOCOL_CONTRACTION: | ||||
| case NSProtocol.NS_PROTOCOL_UPDATE_CONTRACTION: | case NSProtocol.NS_PROTOCOL_UPDATE_CONTRACTION: | ||||
| clazz = NSContractionEntity.class; | |||||
| clazz = NSContractionMessage.class; | |||||
| break; | break; | ||||
| default: | default: | ||||
| return null; | return null; | ||||
| } | } | ||||
| reportObject = server.Recv(request, clazz); | reportObject = server.Recv(request, clazz); | ||||
| message = new Message<>(protocol, reportObject.getIdentifier(), reportObject.getTimestamp(), reportObject.getData()); | |||||
| return message; | |||||
| } | |||||
| public Session<?, ?> createSession(Message<?> message) | |||||
| { | |||||
| Session<?, ?> session; | |||||
| int protocol; | |||||
| session = new Session<>(protocol, reportObject.getIdentifier(), reportObject.getTimestamp(), reportObject.getData()); | |||||
| protocol = message.getProtocol(); | |||||
| switch(protocol) | |||||
| { | |||||
| case NSProtocol.NS_PROTOCOL_CONTRACTION: | |||||
| case NSProtocol.NS_PROTOCOL_UPDATE_CONTRACTION: | |||||
| session = new ContractionSession((Message<NSContractionEntity>) message); | |||||
| break; | |||||
| default: | |||||
| return null; | |||||
| } | |||||
| return session; | return session; | ||||
| } | } | ||||
| private void check(Message<?> message, HttpServletRequest request) | |||||
| private void check(Session<?> session, HttpServletRequest request) | |||||
| { | { | ||||
| Assert.notNull(message, "无效消息"); | |||||
| String identifier = message.getIdentifier(); | |||||
| Assert.notNull(session, "无效消息"); | |||||
| String identifier = session.identifier; | |||||
| Assert.notBlank(identifier, "无效客户端标识"); | Assert.notBlank(identifier, "无效客户端标识"); | ||||
| SysDept dept = sysDeptMapper.selectSysDeptByOrgCode(identifier); | SysDept dept = sysDeptMapper.selectSysDeptByOrgCode(identifier); | ||||
| Assert.notNull(dept, "不支持的地区: {}", identifier); | Assert.notNull(dept, "不支持的地区: {}", identifier); | ||||
| @@ -106,12 +88,13 @@ public class AgentCenterImpl implements IAgentCenter | |||||
| } | } | ||||
| @Override | @Override | ||||
| public Result<?> postHandle(NSSDKServer server, HttpServletRequest request) | |||||
| public Session<?> postHandle(NSSDKServer server, HttpServletRequest request) | |||||
| { | { | ||||
| Message<?> message = getMessage(server, request); | |||||
| check(message, request); | |||||
| Session<?, ?> session = createSession(message); | |||||
| HandlerEngine.Call("" + message.getProtocol(), session); | |||||
| return session.result; | |||||
| Session<?> session; | |||||
| session = createSession(server, request); | |||||
| check(session, request); | |||||
| HandlerEngine.Call("" + session.protocol, session); | |||||
| return session; | |||||
| } | } | ||||
| } | } | ||||
| @@ -258,4 +258,19 @@ public class TAgentTaskServiceImpl implements ITAgentTaskService | |||||
| return tAgentTaskMapper.selectTAgentTask(task); | return tAgentTaskMapper.selectTAgentTask(task); | ||||
| } | } | ||||
| @Override | |||||
| public int syncTAgentTaskCount(TAgentTask queryTask) | |||||
| { | |||||
| TAgentTask dbTask = getTAgentTask(queryTask.getOrgCode(), queryTask.getOrderYear(), queryTask.getOrderMonth()); | |||||
| Assert.notNull(dbTask, "{}下{}年{}月无任务", queryTask.getOrgCode(), queryTask.getOrderYear(), queryTask.getOrderMonth()); | |||||
| TAgentTask updateTask = new TAgentTask(); | |||||
| updateTask.setId(dbTask.getId()); | |||||
| updateTask.setFinishCount(queryTask.getFinishCount()) | |||||
| .setContracCount(queryTask.getContracCount()) | |||||
| .setAssetCount(queryTask.getAssetCount()) | |||||
| .setVoucherCount(queryTask.getVoucherCount()) | |||||
| ; | |||||
| return updateTAgentTaskCount(updateTask); | |||||
| } | |||||
| } | } | ||||