Explorar el Código

简化

master
zhao hace 1 año
padre
commit
aa5b563cff
Se han modificado 17 ficheros con 119 adiciones y 166 borrados
  1. +3
    -4
      agentcenter-sdk/src/main/java/com/nsgk/agentcentersdk/NSMain.java
  2. +2
    -2
      agentcenter-sdk/src/main/java/com/nsgk/agentcentersdk/api/NSApi.java
  3. +3
    -3
      agentcenter-sdk/src/main/java/com/nsgk/agentcentersdk/api/NSSDKClient.java
  4. +2
    -2
      agentcenter-sdk/src/main/java/com/nsgk/agentcentersdk/api/NSSDKServer.java
  5. +2
    -2
      agentcenter-sdk/src/main/java/com/nsgk/agentcentersdk/message/NSContractionMessage.java
  6. +6
    -6
      agentcenter-sdk/src/main/java/com/nsgk/agentcentersdk/message/NSMessage.java
  7. +7
    -13
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/AgentCenterController.java
  8. +18
    -25
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/listener/ContractionListener.java
  9. +3
    -4
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/listener/TestListener.java
  10. +0
    -11
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/object/ContractionSession.java
  11. +0
    -31
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/object/Message.java
  12. +0
    -20
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/object/Result.java
  13. +35
    -5
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/object/Session.java
  14. +2
    -2
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/IAgentCenter.java
  15. +2
    -0
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/ITAgentTaskService.java
  16. +19
    -36
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/impl/AgentCenterImpl.java
  17. +15
    -0
      ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/impl/TAgentTaskServiceImpl.java

+ 3
- 4
agentcenter-sdk/src/main/java/com/nsgk/agentcentersdk/NSMain.java Ver fichero

@@ -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")


+ 2
- 2
agentcenter-sdk/src/main/java/com/nsgk/agentcentersdk/api/NSApi.java Ver fichero

@@ -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() {}
} }

+ 3
- 3
agentcenter-sdk/src/main/java/com/nsgk/agentcentersdk/api/NSSDKClient.java Ver fichero

@@ -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));


+ 2
- 2
agentcenter-sdk/src/main/java/com/nsgk/agentcentersdk/api/NSSDKServer.java Ver fichero

@@ -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;


agentcenter-sdk/src/main/java/com/nsgk/agentcentersdk/entity/NSContractionEntity.java → agentcenter-sdk/src/main/java/com/nsgk/agentcentersdk/message/NSContractionMessage.java Ver fichero

@@ -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;



agentcenter-sdk/src/main/java/com/nsgk/agentcentersdk/entity/NSEntity.java → agentcenter-sdk/src/main/java/com/nsgk/agentcentersdk/message/NSMessage.java Ver fichero

@@ -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;

+ 7
- 13
ruoyi-admin/src/main/java/com/ruoyi/web/controller/agentcenter/AgentCenterController.java Ver fichero

@@ -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)
{ {


+ 18
- 25
ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/listener/ContractionListener.java Ver fichero

@@ -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);
} }
} }

+ 3
- 4
ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/listener/TestListener.java Ver fichero

@@ -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());
} }
} }

+ 0
- 11
ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/object/ContractionSession.java Ver fichero

@@ -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<>());
}
}

+ 0
- 31
ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/object/Message.java Ver fichero

@@ -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;
}
}

+ 0
- 20
ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/object/Result.java Ver fichero

@@ -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;
}
}

+ 35
- 5
ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/object/Session.java Ver fichero

@@ -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;
}
}
} }

+ 2
- 2
ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/IAgentCenter.java Ver fichero

@@ -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);
} }

+ 2
- 0
ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/ITAgentTaskService.java Ver fichero

@@ -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);
} }

+ 19
- 36
ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/impl/AgentCenterImpl.java Ver fichero

@@ -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;
} }
} }

+ 15
- 0
ruoyi-agentcenter/src/main/java/com/ruoyi/agentcenter/service/impl/TAgentTaskServiceImpl.java Ver fichero

@@ -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);
}
} }

Cargando…
Cancelar
Guardar