| @@ -5,6 +5,7 @@ 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.NSContractionEntity; | ||||
| import com.nsgk.agentcentersdk.entity.NSEntity; | |||||
| import com.nsgk.agentcentersdk.utility.NSReflect; | import com.nsgk.agentcentersdk.utility.NSReflect; | ||||
| public final class NSMain | public final class NSMain | ||||
| @@ -40,20 +41,19 @@ public final class NSMain | |||||
| public static void Test() | public static void Test() | ||||
| { | { | ||||
| NSSDKClient client; | NSSDKClient client; | ||||
| NSContractionEntity entity; | |||||
| NSEntity entity; | |||||
| NSApiResult result; | NSApiResult result; | ||||
| NSSDK.InitClient("http://localhost", (short) 8081, "test", "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==", 0); | NSSDK.InitClient("http://localhost", (short) 8081, "test", "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==", 0); | ||||
| client = NSSDK.InstanceClient(); | client = NSSDK.InstanceClient(); | ||||
| entity = new NSContractionEntity(); | |||||
| entity.setBuildingTime("2000-12-23") | |||||
| .setName("测试合同") | |||||
| .setDeptId(187L) | |||||
| entity = new NSEntity(); | |||||
| entity.setDeptId(187L) | |||||
| .setBookId(166L) | .setBookId(166L) | ||||
| .setOrgCode("371081") | |||||
| ; | ; | ||||
| entity.Parm("buildingTime", "2000-12-25"); | entity.Parm("buildingTime", "2000-12-25"); | ||||
| entity.Parm("buildingTime222", "2000-12-11"); | |||||
| entity.Parm("name", "测试合同"); | |||||
| entity.Parm("outId", "123"); | entity.Parm("outId", "123"); | ||||
| result = client.Send(NSProtocol.NS_PROTOCOL_CONTRACTION, entity); | result = client.Send(NSProtocol.NS_PROTOCOL_CONTRACTION, entity); | ||||
| System.err.println(result); | System.err.println(result); | ||||
| @@ -4,7 +4,7 @@ import cn.hutool.core.util.URLUtil; | |||||
| 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.NSEntityBase; | |||||
| import com.nsgk.agentcentersdk.entity.NSEntity; | |||||
| 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; | ||||
| @@ -48,7 +48,7 @@ public final class NSSDKClient | |||||
| } | } | ||||
| // 发送请求 | // 发送请求 | ||||
| public <T extends NSEntityBase> NSApiResult Send(int protocol, T object) | |||||
| public <T extends NSEntity> NSApiResult Send(int protocol, T object) | |||||
| { | { | ||||
| String url; | String url; | ||||
| NSReportObject<T> reportObject; | NSReportObject<T> reportObject; | ||||
| @@ -63,6 +63,7 @@ public final class NSSDKClient | |||||
| request.setUrl(BuildUrl(url)); | request.setUrl(BuildUrl(url)); | ||||
| request.setTimeout(timeout); | request.setTimeout(timeout); | ||||
| WriteDataObject(request, reportObject); | WriteDataObject(request, reportObject); | ||||
| request.AddHeader("Content-Type", "text/plain"); | |||||
| NSNetworkResponse response = NSNetworkManager.Post(request); | NSNetworkResponse response = NSNetworkManager.Post(request); | ||||
| NSErrGlobal.ASSERT(response.IsSuccess(), NSErrno.ERRNO_SYS_HTTP); | NSErrGlobal.ASSERT(response.IsSuccess(), NSErrno.ERRNO_SYS_HTTP); | ||||
| String json = response.getData(); | String json = response.getData(); | ||||
| @@ -1,8 +1,9 @@ | |||||
| package com.nsgk.agentcentersdk.api; | package com.nsgk.agentcentersdk.api; | ||||
| import com.nsgk.agentcentersdk.core.NSConstants; | import com.nsgk.agentcentersdk.core.NSConstants; | ||||
| import com.nsgk.agentcentersdk.core.NSProtocol; | |||||
| import com.nsgk.agentcentersdk.core.NSReportObject; | import com.nsgk.agentcentersdk.core.NSReportObject; | ||||
| import com.nsgk.agentcentersdk.entity.NSEntityBase; | |||||
| import com.nsgk.agentcentersdk.entity.NSEntity; | |||||
| 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; | ||||
| @@ -10,6 +11,7 @@ import com.nsgk.agentcentersdk.utility.NSArr; | |||||
| import com.nsgk.agentcentersdk.utility.NSCrypto; | import com.nsgk.agentcentersdk.utility.NSCrypto; | ||||
| import com.nsgk.agentcentersdk.utility.NSHttp; | import com.nsgk.agentcentersdk.utility.NSHttp; | ||||
| import javax.servlet.ServletInputStream; | |||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
| // SDK服务端 | // SDK服务端 | ||||
| @@ -22,8 +24,21 @@ public final class NSSDKServer | |||||
| this.privateKey = privateKey; | this.privateKey = privateKey; | ||||
| } | } | ||||
| public static int GetProtocol(HttpServletRequest request) | |||||
| { | |||||
| try | |||||
| { | |||||
| return Integer.parseInt(request.getParameter(NSConstants.QUERY_PROTOCOL)); | |||||
| } | |||||
| catch(Exception e) | |||||
| { | |||||
| e.printStackTrace(); | |||||
| return NSProtocol.NS_PROTOCOL_INVALID; | |||||
| } | |||||
| } | |||||
| // 解析请求 | // 解析请求 | ||||
| public <T extends NSEntityBase> NSReportObject<T> Recv(HttpServletRequest request, Class<T> clazz) | |||||
| public <T extends NSEntity> NSReportObject<T> Recv(HttpServletRequest request, Class<T> clazz) | |||||
| { | { | ||||
| NSReportObject<T> res; | NSReportObject<T> res; | ||||
| String sign; | String sign; | ||||
| @@ -54,10 +69,19 @@ public final class NSSDKServer | |||||
| { | { | ||||
| return NSErrGlobal.ThrowAndReturn(NSErrno.ERRNO_SYS_INVALID_SIGN, null); | return NSErrGlobal.ThrowAndReturn(NSErrno.ERRNO_SYS_INVALID_SIGN, null); | ||||
| } | } | ||||
| if(!res.CheckTime(ServerTime(), NSConstants.MAX_TIME_DIFF * 1000)) | |||||
| { | |||||
| return NSErrGlobal.ThrowAndReturn(NSErrno.ERRNO_SYS_TIME_DIFF, null); | |||||
| } | |||||
| res.setSign(sign); | res.setSign(sign); | ||||
| return res; | return res; | ||||
| } | } | ||||
| private static long ServerTime() | |||||
| { | |||||
| return System.currentTimeMillis(); | |||||
| } | |||||
| // 响应客户端 | // 响应客户端 | ||||
| public static NSApiResult Resp(int code, String msg, Object...data) | public static NSApiResult Resp(int code, String msg, Object...data) | ||||
| { | { | ||||
| @@ -8,5 +8,7 @@ public final class NSConstants | |||||
| public static final String QUERY_IDENTIFIER = "identifier"; | public static final String QUERY_IDENTIFIER = "identifier"; | ||||
| public static final String QUERY_PROTOCOL = "protocol"; | public static final String QUERY_PROTOCOL = "protocol"; | ||||
| public static final int MAX_TIME_DIFF = 300; // 秒 | |||||
| private NSConstants() {} | private NSConstants() {} | ||||
| } | } | ||||
| @@ -92,6 +92,13 @@ public class NSReportObject<T> | |||||
| return src.equals(Sign()); | return src.equals(Sign()); | ||||
| } | } | ||||
| public boolean CheckTime(long serverTime, long limit) | |||||
| { | |||||
| if(null == timestamp || timestamp <= 0L) | |||||
| return false; | |||||
| return serverTime - timestamp <= limit; | |||||
| } | |||||
| public NSReportObject<T> SetTimestampStr(String str) | public NSReportObject<T> SetTimestampStr(String str) | ||||
| { | { | ||||
| timestamp = Long.parseLong(str); | timestamp = Long.parseLong(str); | ||||
| @@ -6,7 +6,7 @@ import lombok.experimental.Accessors; | |||||
| // 合同实体 | // 合同实体 | ||||
| @Data | @Data | ||||
| @Accessors(chain = true) | @Accessors(chain = true) | ||||
| public class NSContractionEntity extends NSEntityBase | |||||
| public class NSContractionEntity extends NSEntity | |||||
| { | { | ||||
| private static final long serialVersionUID = 1L; | private static final long serialVersionUID = 1L; | ||||
| @@ -3,8 +3,6 @@ package com.nsgk.agentcentersdk.entity; | |||||
| 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.fastjson2.JSON; | import com.alibaba.fastjson2.JSON; | ||||
| import com.nsgk.agentcentersdk.err.NSErrGlobal; | |||||
| import com.nsgk.agentcentersdk.err.NSErrno; | |||||
| 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; | ||||
| @@ -20,7 +18,7 @@ import java.util.Map; | |||||
| // 基本实体 | // 基本实体 | ||||
| @Data | @Data | ||||
| @Accessors(chain = true) | @Accessors(chain = true) | ||||
| public class NSEntityBase implements Serializable | |||||
| public class NSEntity implements Serializable | |||||
| { | { | ||||
| private static final long serialVersionUID = 1L; | private static final long serialVersionUID = 1L; | ||||
| @@ -33,7 +31,10 @@ public class NSEntityBase implements Serializable | |||||
| /** 外部ID */ | /** 外部ID */ | ||||
| protected Long outId; | protected Long outId; | ||||
| // 存储其他没有声明的属性, 用于当客户与服务端字段不一致时, 在不更新sdk的情况下, 保持兼容性 | |||||
| /** 外部ID */ | |||||
| protected String orgCode; | |||||
| // 存储其他没有声明的属性, 用于当客户端与服务端字段不一致时, 在不更新sdk的情况下, 保持兼容性 | |||||
| // 不会覆盖已设置的属性 | // 不会覆盖已设置的属性 | ||||
| protected Map<String, Object> parms; | protected Map<String, Object> parms; | ||||
| @@ -45,14 +46,14 @@ public class NSEntityBase implements Serializable | |||||
| } | } | ||||
| @SuppressWarnings("unchecked") | @SuppressWarnings("unchecked") | ||||
| public <T extends NSEntityBase> T Parm(String name, Object val) | |||||
| public <T extends NSEntity> 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 NSEntityBase> T DelParm(String...name) | |||||
| public <T extends NSEntity> T DelParm(String...name) | |||||
| { | { | ||||
| if(null != parms && NSArr.IsNotEmpty(name)) | if(null != parms && NSArr.IsNotEmpty(name)) | ||||
| { | { | ||||
| @@ -44,6 +44,7 @@ public final class NSErrGlobal | |||||
| { | { | ||||
| if(err == NSErrno.ERRNO_OK) | if(err == NSErrno.ERRNO_OK) | ||||
| return t; | return t; | ||||
| Err(err); | |||||
| throw new NSException(err); | throw new NSException(err); | ||||
| } | } | ||||
| @@ -14,6 +14,7 @@ public final class NSErrno | |||||
| public static final int ERRNO_SYS_SIGN_FAIL = 0x01005; | public static final int ERRNO_SYS_SIGN_FAIL = 0x01005; | ||||
| public static final int ERRNO_SYS_HTTP = 0x01006; | public static final int ERRNO_SYS_HTTP = 0x01006; | ||||
| public static final int ERRNO_SYS_INVALID_FIELD = 0x01007; | public static final int ERRNO_SYS_INVALID_FIELD = 0x01007; | ||||
| public static final int ERRNO_SYS_TIME_DIFF = 0x01008; | |||||
| public static final int ERRNO_CLI_PARAMETER_MISSING = 0x03001; | public static final int ERRNO_CLI_PARAMETER_MISSING = 0x03001; | ||||
| public static final int ERRNO_CLI_DATA_MISSING = 0x03002; | public static final int ERRNO_CLI_DATA_MISSING = 0x03002; | ||||
| @@ -33,7 +34,7 @@ public final class NSErrno | |||||
| case ERRNO_SYS_INVALID_PROTOCOL: return "无效协议"; | case ERRNO_SYS_INVALID_PROTOCOL: return "无效协议"; | ||||
| case ERRNO_SYS_SIGN_FAIL: return "签名失败"; | case ERRNO_SYS_SIGN_FAIL: return "签名失败"; | ||||
| case ERRNO_SYS_HTTP: return "Http请求错误"; | case ERRNO_SYS_HTTP: return "Http请求错误"; | ||||
| case ERRNO_SYS_INVALID_FIELD: return "无效字段"; | |||||
| case ERRNO_SYS_TIME_DIFF: return "数据过期"; | |||||
| case ERRNO_CLI_PARAMETER_MISSING: return "参数缺失"; | case ERRNO_CLI_PARAMETER_MISSING: return "参数缺失"; | ||||
| case ERRNO_CLI_DATA_MISSING: return "数据缺失"; | case ERRNO_CLI_DATA_MISSING: return "数据缺失"; | ||||
| @@ -9,15 +9,20 @@ import com.nsgk.agentcentersdk.entity.NSContractionEntity; | |||||
| 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.ContractionMessage; | |||||
| import com.ruoyi.agentcenter.object.ContractionSession; | |||||
| import com.ruoyi.agentcenter.object.Message; | import com.ruoyi.agentcenter.object.Message; | ||||
| import com.ruoyi.agentcenter.object.Result; | |||||
| import com.ruoyi.agentcenter.object.Session; | |||||
| 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 com.ruoyi.common.utils.EventBusEngine; | ||||
| 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; | ||||
| /** | /** | ||||
| @@ -29,6 +34,9 @@ import javax.servlet.http.HttpServletRequest; | |||||
| @RequestMapping("/agentcenter/api") | @RequestMapping("/agentcenter/api") | ||||
| public class AgentCenterController extends BaseController | public class AgentCenterController extends BaseController | ||||
| { | { | ||||
| @Autowired | |||||
| private IAgentCenter agentCenter; | |||||
| @PostMapping("/test") | @PostMapping("/test") | ||||
| public NSApiResult test(HttpServletRequest request) | public NSApiResult test(HttpServletRequest request) | ||||
| { | { | ||||
| @@ -45,18 +53,10 @@ public class AgentCenterController extends BaseController | |||||
| @PostMapping("/report") | @PostMapping("/report") | ||||
| public NSApiResult report(HttpServletRequest request) | public NSApiResult report(HttpServletRequest request) | ||||
| { | { | ||||
| NSSDKServer server; | |||||
| NSReportObject<NSContractionEntity> recv; | |||||
| NSSDK.InitServer(RuoYiConfig.Secret.privateKey); | |||||
| try | try | ||||
| { | { | ||||
| server = NSSDK.InstanceServer(); | |||||
| recv = server.Recv(request, NSContractionEntity.class); | |||||
| EventBusEngine.Post(convMsg(recv)); | |||||
| return NSSDKServer.Success("上报成功"); | |||||
| Result<?> result = agentCenter.postHandle(request); | |||||
| return response(result); | |||||
| } | } | ||||
| catch(NSException e) | catch(NSException e) | ||||
| { | { | ||||
| @@ -64,21 +64,8 @@ public class AgentCenterController extends BaseController | |||||
| } | } | ||||
| } | } | ||||
| private Message<?> convMsg(NSReportObject<?> reportObject) | |||||
| private NSApiResult response(Result<?> result) | |||||
| { | { | ||||
| Message<?> msg; | |||||
| int protocol; | |||||
| protocol = reportObject.getProtocol(); | |||||
| switch(reportObject.getProtocol()) | |||||
| { | |||||
| case NSProtocol.NS_PROTOCOL_CONTRACTION: | |||||
| msg = new ContractionMessage(protocol, reportObject.getIdentifier(), reportObject.getTimestamp(), (NSContractionEntity)reportObject.getData()); | |||||
| break; | |||||
| default: | |||||
| NSErrGlobal.Err(NSErrno.ERRNO_SYS_INVALID_PROTOCOL); | |||||
| throw new RuntimeException(String.format("未知的协议类型: 0x%x", protocol)); | |||||
| } | |||||
| return msg; | |||||
| return NSSDKServer.Resp(result.getCode(), result.getMessage(), result.getData()); | |||||
| } | } | ||||
| } | } | ||||
| @@ -0,0 +1,83 @@ | |||||
| package com.ruoyi.agentcenter.domain; | |||||
| import java.util.Date; | |||||
| import cn.hutool.core.date.DateUtil; | |||||
| import com.fasterxml.jackson.annotation.JsonFormat; | |||||
| import lombok.Data; | |||||
| import lombok.experimental.Accessors; | |||||
| import org.apache.commons.lang3.builder.ToStringBuilder; | |||||
| import org.apache.commons.lang3.builder.ToStringStyle; | |||||
| import com.ruoyi.common.annotation.Excel; | |||||
| import com.ruoyi.common.core.domain.BaseEntity; | |||||
| /** | |||||
| * 合同任务对象 t_agent_contraction | |||||
| * | |||||
| * @author zhao | |||||
| * @date 2023-07-14 | |||||
| */ | |||||
| @Data | |||||
| @Accessors(chain = true) | |||||
| public class TAgentContraction extends BaseEntity | |||||
| { | |||||
| private static final long serialVersionUID = 1L; | |||||
| /** ID */ | |||||
| private Long id; | |||||
| /** 任务id(关联任务表) */ | |||||
| @Excel(name = "任务id(关联任务表)") | |||||
| private Long taskId; | |||||
| /** 行政区划代码 */ | |||||
| @Excel(name = "行政区划代码") | |||||
| private String orgCode; | |||||
| /** 外部业务ID */ | |||||
| @Excel(name = "外部业务ID") | |||||
| private Long outId; | |||||
| /** 账套ID */ | |||||
| @Excel(name = "账套ID") | |||||
| private Long bookId; | |||||
| /** 部门id */ | |||||
| @Excel(name = "部门id") | |||||
| private Long deptId; | |||||
| /** 合同名称 */ | |||||
| @Excel(name = "合同名称") | |||||
| private String name; | |||||
| /** 签订日期 */ | |||||
| @Excel(name = "签订日期") | |||||
| private String buildingTime; | |||||
| /** 上报时间 */ | |||||
| @JsonFormat(pattern = "yyyy-MM-dd") | |||||
| @Excel(name = "上报时间", width = 30, dateFormat = "yyyy-MM-dd") | |||||
| private Date orderAt; | |||||
| /** 上报年度(截) */ | |||||
| @Excel(name = "上报年度(截)") | |||||
| private String orderYear; | |||||
| /** 上报月份(截) */ | |||||
| @Excel(name = "上报月份(截)") | |||||
| private String orderMonth; | |||||
| /** 任务状态 字典 agent_status */ | |||||
| @Excel(name = "任务状态 字典 agent_status") | |||||
| private String agentStatus; | |||||
| /** 记账状态 字典 order_status */ | |||||
| @Excel(name = "记账状态 字典 order_status") | |||||
| private String orderStatus; | |||||
| public void normalized() | |||||
| { | |||||
| orderYear = DateUtil.format(orderAt, "yyyy"); | |||||
| orderMonth = DateUtil.format(orderAt, "MM"); | |||||
| } | |||||
| } | |||||
| @@ -2,15 +2,25 @@ package com.ruoyi.agentcenter.listener; | |||||
| import com.alibaba.fastjson2.JSONObject; | import com.alibaba.fastjson2.JSONObject; | ||||
| import com.google.common.eventbus.Subscribe; | import com.google.common.eventbus.Subscribe; | ||||
| import com.ruoyi.agentcenter.object.ContractionMessage; | |||||
| import com.nsgk.agentcentersdk.entity.NSContractionEntity; | |||||
| import com.ruoyi.agentcenter.domain.TAgentContraction; | |||||
| import com.ruoyi.agentcenter.object.ContractionSession; | |||||
| import com.ruoyi.agentcenter.object.Message; | |||||
| import com.ruoyi.agentcenter.object.Result; | |||||
| import com.ruoyi.agentcenter.service.ITAgentContractionService; | |||||
| import com.ruoyi.common.utils.EventBusEngine; | import com.ruoyi.common.utils.EventBusEngine; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
| import javax.annotation.PostConstruct; | import javax.annotation.PostConstruct; | ||||
| import java.util.Date; | |||||
| @Component | @Component | ||||
| public class ContractionListener | public class ContractionListener | ||||
| { | { | ||||
| @Autowired | |||||
| private ITAgentContractionService itAgentContractionService; | |||||
| @PostConstruct | @PostConstruct | ||||
| public void init() | public void init() | ||||
| { | { | ||||
| @@ -19,8 +29,31 @@ public class ContractionListener | |||||
| @Subscribe | @Subscribe | ||||
| //@AllowConcurrentEvents | //@AllowConcurrentEvents | ||||
| public void handle(ContractionMessage msg) | |||||
| public void handle(ContractionSession session) | |||||
| { | |||||
| TAgentContraction contraction = conv(session.message); | |||||
| Result result = session.result; | |||||
| itAgentContractionService.insertTAgentContraction(contraction); | |||||
| result.setData(contraction); | |||||
| } | |||||
| private TAgentContraction conv(Message<NSContractionEntity> message) | |||||
| { | { | ||||
| System.err.println(JSONObject.toJSONString(msg)); | |||||
| TAgentContraction contraction = new TAgentContraction(); | |||||
| NSContractionEntity data = message.getData(); | |||||
| contraction.setBookId(data.getBookId()) | |||||
| .setDeptId(data.getDeptId()) | |||||
| .setOutId(data.getOutId()) | |||||
| .setOrgCode(data.getOrgCode()) | |||||
| .setName(data.getName()) | |||||
| .setBuildingTime(data.getBuildingTime()) | |||||
| .setOrderAt(new Date()) | |||||
| .setAgentStatus("1") | |||||
| .setOrderStatus("2") | |||||
| .normalized(); | |||||
| ; | |||||
| return contraction; | |||||
| } | } | ||||
| } | } | ||||
| @@ -0,0 +1,102 @@ | |||||
| package com.ruoyi.agentcenter.mapper; | |||||
| import java.util.List; | |||||
| import com.ruoyi.agentcenter.domain.TAgentContraction; | |||||
| /** | |||||
| * 合同任务Mapper接口 | |||||
| * | |||||
| * @author zhao | |||||
| * @date 2023-07-14 | |||||
| */ | |||||
| public interface TAgentContractionMapper | |||||
| { | |||||
| /** | |||||
| * 查询合同任务 | |||||
| * | |||||
| * @param id 合同任务主键 | |||||
| * @return 合同任务 | |||||
| */ | |||||
| public TAgentContraction selectTAgentContractionById(Long id); | |||||
| /** | |||||
| * 查询合同任务列表 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 合同任务集合 | |||||
| */ | |||||
| public List<TAgentContraction> selectTAgentContractionList(TAgentContraction tAgentContraction); | |||||
| /** | |||||
| * 新增合同任务 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 结果 | |||||
| */ | |||||
| public int insertTAgentContraction(TAgentContraction tAgentContraction); | |||||
| /** | |||||
| * 批量新增合同任务 | |||||
| * | |||||
| * @param list 合同任务 | |||||
| * @return 结果 | |||||
| */ | |||||
| public int insertTAgentContractionBatch(List<TAgentContraction> list); | |||||
| /** | |||||
| * 批量修改 合同任务 | |||||
| * | |||||
| * @param list 合同任务 | |||||
| * @return 结果 | |||||
| */ | |||||
| public int updateTAgentContractionBatch(List<TAgentContraction> list); | |||||
| /** | |||||
| * 修改合同任务 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 结果 | |||||
| */ | |||||
| public int updateTAgentContraction(TAgentContraction tAgentContraction); | |||||
| /** | |||||
| * 删除合同任务 | |||||
| * | |||||
| * @param id 合同任务主键 | |||||
| * @return 结果 | |||||
| */ | |||||
| public int deleteTAgentContractionById(Long id); | |||||
| /** | |||||
| * 批量删除合同任务 | |||||
| * | |||||
| * @param ids 需要删除的数据主键集合 | |||||
| * @return 结果 | |||||
| */ | |||||
| public int deleteTAgentContractionByIds(Long[] ids); | |||||
| // Harm | |||||
| /** | |||||
| * 条件单条查询合同任务 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 合同任务条目 | |||||
| */ | |||||
| public TAgentContraction selectTAgentContraction(TAgentContraction tAgentContraction); | |||||
| /** | |||||
| * 条件查询合同任务数量 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 合同任务数量 | |||||
| */ | |||||
| public Long selectTAgentContractionCount(TAgentContraction tAgentContraction); | |||||
| /** | |||||
| * 条件查询合同任务是否存在 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 合同任务是否存在 | |||||
| */ | |||||
| public int selectTAgentContractionExists(TAgentContraction tAgentContraction); | |||||
| } | |||||
| @@ -1,11 +0,0 @@ | |||||
| package com.ruoyi.agentcenter.object; | |||||
| import com.nsgk.agentcentersdk.entity.NSContractionEntity; | |||||
| public class ContractionMessage extends Message<NSContractionEntity> | |||||
| { | |||||
| public ContractionMessage(int protocol, String identifier, Long timestamp, NSContractionEntity data) | |||||
| { | |||||
| super(protocol, identifier, timestamp, data); | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,11 @@ | |||||
| 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<>()); | |||||
| } | |||||
| } | |||||
| @@ -6,7 +6,7 @@ import lombok.experimental.Accessors; | |||||
| @Data | @Data | ||||
| @Accessors(chain = true) | @Accessors(chain = true) | ||||
| public abstract class Message<T> | |||||
| public class Message<T> | |||||
| { | { | ||||
| private final int protocol; // 协议 | private final int protocol; // 协议 | ||||
| private final String identifier; // 识别ID | private final String identifier; // 识别ID | ||||
| @@ -0,0 +1,14 @@ | |||||
| package com.ruoyi.agentcenter.object; | |||||
| 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; | |||||
| } | |||||
| @@ -0,0 +1,18 @@ | |||||
| package com.ruoyi.agentcenter.object; | |||||
| public class Session<T, R> | |||||
| { | |||||
| public final Message<T> message; | |||||
| public final Result<R> result; | |||||
| protected Session() | |||||
| { | |||||
| throw new RuntimeException("Session<T, R>不能默认实例化"); | |||||
| } | |||||
| protected Session(Message<T> message, Result<R> result) | |||||
| { | |||||
| this.message = message; | |||||
| this.result = result; | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,10 @@ | |||||
| package com.ruoyi.agentcenter.service; | |||||
| import com.ruoyi.agentcenter.object.Result; | |||||
| import javax.servlet.http.HttpServletRequest; | |||||
| public interface IAgentCenter | |||||
| { | |||||
| public Result<?> postHandle(HttpServletRequest request); | |||||
| } | |||||
| @@ -0,0 +1,102 @@ | |||||
| package com.ruoyi.agentcenter.service; | |||||
| import java.util.List; | |||||
| import com.ruoyi.agentcenter.domain.TAgentContraction; | |||||
| /** | |||||
| * 合同任务Service接口 | |||||
| * | |||||
| * @author zhao | |||||
| * @date 2023-07-14 | |||||
| */ | |||||
| public interface ITAgentContractionService | |||||
| { | |||||
| /** | |||||
| * 查询合同任务 | |||||
| * | |||||
| * @param id 合同任务主键 | |||||
| * @return 合同任务 | |||||
| */ | |||||
| public TAgentContraction selectTAgentContractionById(Long id); | |||||
| /** | |||||
| * 查询合同任务列表 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 合同任务集合 | |||||
| */ | |||||
| public List<TAgentContraction> selectTAgentContractionList(TAgentContraction tAgentContraction); | |||||
| /** | |||||
| * 新增合同任务 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 结果 | |||||
| */ | |||||
| public int insertTAgentContraction(TAgentContraction tAgentContraction); | |||||
| /** | |||||
| * 批量新增合同任务 | |||||
| * | |||||
| * @param list 合同任务 | |||||
| * @return 结果 | |||||
| */ | |||||
| public int insertTAgentContractionBatch(List<TAgentContraction> list); | |||||
| /** | |||||
| * 修改合同任务 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 结果 | |||||
| */ | |||||
| public int updateTAgentContraction(TAgentContraction tAgentContraction); | |||||
| /** | |||||
| * 批量修改 合同任务 | |||||
| * | |||||
| * @param list 合同任务 | |||||
| * @return 结果 | |||||
| */ | |||||
| public int updateTAgentContractionBatch(List<TAgentContraction> list); | |||||
| /** | |||||
| * 批量删除合同任务 | |||||
| * | |||||
| * @param ids 需要删除的合同任务主键集合 | |||||
| * @return 结果 | |||||
| */ | |||||
| public int deleteTAgentContractionByIds(Long[] ids); | |||||
| /** | |||||
| * 删除合同任务信息 | |||||
| * | |||||
| * @param id 合同任务主键 | |||||
| * @return 结果 | |||||
| */ | |||||
| public int deleteTAgentContractionById(Long id); | |||||
| // Harm | |||||
| /** | |||||
| * 条件单条查询合同任务 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 合同任务条目 | |||||
| */ | |||||
| public TAgentContraction selectTAgentContraction(TAgentContraction tAgentContraction); | |||||
| /** | |||||
| * 条件查询合同任务数量 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 合同任务数量 | |||||
| */ | |||||
| public Long selectTAgentContractionCount(TAgentContraction tAgentContraction); | |||||
| /** | |||||
| * 条件查询合同任务是否存在 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 合同任务是否存在 | |||||
| */ | |||||
| public boolean selectTAgentContractionExists(TAgentContraction tAgentContraction); | |||||
| } | |||||
| @@ -0,0 +1,86 @@ | |||||
| package com.ruoyi.agentcenter.service.impl; | |||||
| import com.nsgk.agentcentersdk.api.NSSDK; | |||||
| import com.nsgk.agentcentersdk.api.NSSDKServer; | |||||
| import com.nsgk.agentcentersdk.core.NSProtocol; | |||||
| import com.nsgk.agentcentersdk.core.NSReportObject; | |||||
| import com.nsgk.agentcentersdk.entity.NSContractionEntity; | |||||
| import com.nsgk.agentcentersdk.entity.NSEntity; | |||||
| import com.nsgk.agentcentersdk.err.NSErrGlobal; | |||||
| import com.nsgk.agentcentersdk.err.NSErrno; | |||||
| 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.service.IAgentCenter; | |||||
| import com.ruoyi.common.config.RuoYiConfig; | |||||
| import com.ruoyi.common.utils.EventBusEngine; | |||||
| import org.springframework.stereotype.Service; | |||||
| import javax.servlet.http.HttpServletRequest; | |||||
| @Service | |||||
| public class AgentCenterImpl implements IAgentCenter | |||||
| { | |||||
| public int getProtocol(HttpServletRequest request) | |||||
| { | |||||
| int protocol = NSSDKServer.GetProtocol(request); | |||||
| if(!NSProtocol.IsValid(protocol)) | |||||
| { | |||||
| NSErrGlobal.Err(NSErrno.ERRNO_SYS_INVALID_PROTOCOL); | |||||
| throw new NSException(NSErrno.ERRNO_SYS_INVALID_PROTOCOL, String.format("未知的协议类型: 0x%x", protocol)); | |||||
| } | |||||
| return protocol; | |||||
| } | |||||
| public Message<?> getMessage(HttpServletRequest request) | |||||
| { | |||||
| NSSDKServer server; | |||||
| NSReportObject<?> reportObject; | |||||
| Message<?> message; | |||||
| NSSDK.InitServer(RuoYiConfig.Secret.privateKey); | |||||
| server = NSSDK.InstanceServer(); | |||||
| int protocol = getProtocol(request); | |||||
| Class<? extends NSEntity> clazz; | |||||
| switch(protocol) | |||||
| { | |||||
| case NSProtocol.NS_PROTOCOL_CONTRACTION: | |||||
| clazz = NSContractionEntity.class; | |||||
| break; | |||||
| default: | |||||
| return null; | |||||
| } | |||||
| 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; | |||||
| protocol = message.getProtocol(); | |||||
| switch(protocol) | |||||
| { | |||||
| case NSProtocol.NS_PROTOCOL_CONTRACTION: | |||||
| session = new ContractionSession((Message<NSContractionEntity>) message); | |||||
| break; | |||||
| default: | |||||
| return null; | |||||
| } | |||||
| return session; | |||||
| } | |||||
| @Override | |||||
| public Result<?> postHandle(HttpServletRequest request) | |||||
| { | |||||
| Message<?> message = getMessage(request); | |||||
| Session<?, ?> session = createSession(message); | |||||
| EventBusEngine.Post(session); | |||||
| return session.result; | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,164 @@ | |||||
| package com.ruoyi.agentcenter.service.impl; | |||||
| import java.util.List; | |||||
| import com.ruoyi.common.utils.DateUtils; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.stereotype.Service; | |||||
| import org.springframework.transaction.annotation.Transactional; | |||||
| import org.apache.commons.collections4.ListUtils; | |||||
| import com.ruoyi.agentcenter.mapper.TAgentContractionMapper; | |||||
| import com.ruoyi.agentcenter.domain.TAgentContraction; | |||||
| import com.ruoyi.agentcenter.service.ITAgentContractionService; | |||||
| /** | |||||
| * 合同任务Service业务层处理 | |||||
| * | |||||
| * @author zhao | |||||
| * @date 2023-07-14 | |||||
| */ | |||||
| @Service | |||||
| public class TAgentContractionServiceImpl implements ITAgentContractionService | |||||
| { | |||||
| @Autowired | |||||
| private TAgentContractionMapper tAgentContractionMapper; | |||||
| /** | |||||
| * 查询合同任务 | |||||
| * | |||||
| * @param id 合同任务主键 | |||||
| * @return 合同任务 | |||||
| */ | |||||
| @Override | |||||
| public TAgentContraction selectTAgentContractionById(Long id) | |||||
| { | |||||
| return tAgentContractionMapper.selectTAgentContractionById(id); | |||||
| } | |||||
| /** | |||||
| * 查询合同任务列表 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 合同任务 | |||||
| */ | |||||
| @Override | |||||
| public List<TAgentContraction> selectTAgentContractionList(TAgentContraction tAgentContraction) | |||||
| { | |||||
| return tAgentContractionMapper.selectTAgentContractionList(tAgentContraction); | |||||
| } | |||||
| /** | |||||
| * 新增合同任务 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 结果 | |||||
| */ | |||||
| @Override | |||||
| public int insertTAgentContraction(TAgentContraction tAgentContraction) | |||||
| { | |||||
| tAgentContraction.setCreateTime(DateUtils.getNowDate()); | |||||
| return tAgentContractionMapper.insertTAgentContraction(tAgentContraction); | |||||
| } | |||||
| /** | |||||
| * 批量新增合同任务 | |||||
| * | |||||
| * @param list 合同任务 | |||||
| * @return 结果 | |||||
| */ | |||||
| @Override | |||||
| @Transactional | |||||
| public int insertTAgentContractionBatch(List<TAgentContraction> list){ | |||||
| List<List<TAgentContraction>> splists = ListUtils.partition(list, 50); | |||||
| splists.forEach(splist->{ | |||||
| tAgentContractionMapper.insertTAgentContractionBatch(splist); | |||||
| }); | |||||
| return 1; | |||||
| } | |||||
| /** | |||||
| * 修改合同任务 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 结果 | |||||
| */ | |||||
| @Override | |||||
| public int updateTAgentContraction(TAgentContraction tAgentContraction) | |||||
| { | |||||
| tAgentContraction.setUpdateTime(DateUtils.getNowDate()); | |||||
| return tAgentContractionMapper.updateTAgentContraction(tAgentContraction); | |||||
| } | |||||
| /** | |||||
| * 批量修改 合同任务 | |||||
| * | |||||
| * @param list 合同任务 | |||||
| * @return 结果 | |||||
| */ | |||||
| @Override | |||||
| @Transactional | |||||
| public int updateTAgentContractionBatch(List<TAgentContraction> list) { | |||||
| List<List<TAgentContraction>> splists = ListUtils.partition(list, 50); | |||||
| splists.forEach(splist->{ | |||||
| tAgentContractionMapper.updateTAgentContractionBatch(splist); | |||||
| }); | |||||
| return 1; | |||||
| } | |||||
| /** | |||||
| * 批量删除合同任务 | |||||
| * | |||||
| * @param ids 需要删除的合同任务主键 | |||||
| * @return 结果 | |||||
| */ | |||||
| @Override | |||||
| public int deleteTAgentContractionByIds(Long[] ids) | |||||
| { | |||||
| return tAgentContractionMapper.deleteTAgentContractionByIds(ids); | |||||
| } | |||||
| /** | |||||
| * 删除合同任务信息 | |||||
| * | |||||
| * @param id 合同任务主键 | |||||
| * @return 结果 | |||||
| */ | |||||
| @Override | |||||
| public int deleteTAgentContractionById(Long id) | |||||
| { | |||||
| return tAgentContractionMapper.deleteTAgentContractionById(id); | |||||
| } | |||||
| // Harm | |||||
| /** | |||||
| * 单条条件查询合同任务 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 合同任务条目 | |||||
| */ | |||||
| @Override | |||||
| public TAgentContraction selectTAgentContraction(TAgentContraction tAgentContraction) { | |||||
| return tAgentContractionMapper.selectTAgentContraction(tAgentContraction); | |||||
| } | |||||
| /** | |||||
| * 条件查询合同任务数量 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 合同任务数量 | |||||
| */ | |||||
| @Override | |||||
| public Long selectTAgentContractionCount(TAgentContraction tAgentContraction) { | |||||
| return tAgentContractionMapper.selectTAgentContractionCount(tAgentContraction); | |||||
| } | |||||
| /** | |||||
| * 条件查询合同任务是否存在 | |||||
| * | |||||
| * @param tAgentContraction 合同任务 | |||||
| * @return 合同任务是否存在 | |||||
| */ | |||||
| @Override | |||||
| public boolean selectTAgentContractionExists(TAgentContraction tAgentContraction) { | |||||
| return tAgentContractionMapper.selectTAgentContractionExists(tAgentContraction) > 0; | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,274 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" ?> | |||||
| <!DOCTYPE mapper | |||||
| PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||||
| "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |||||
| <mapper namespace="com.ruoyi.agentcenter.mapper.TAgentContractionMapper"> | |||||
| <resultMap type="TAgentContraction" id="TAgentContractionResult"> | |||||
| <result property="id" column="id" /> | |||||
| <result property="taskId" column="task_id" /> | |||||
| <result property="orgCode" column="org_code" /> | |||||
| <result property="outId" column="out_id" /> | |||||
| <result property="bookId" column="book_id" /> | |||||
| <result property="deptId" column="dept_id" /> | |||||
| <result property="name" column="name" /> | |||||
| <result property="buildingTime" column="building_time" /> | |||||
| <result property="remark" column="remark" /> | |||||
| <result property="orderAt" column="order_at" /> | |||||
| <result property="orderYear" column="order_year" /> | |||||
| <result property="orderMonth" column="order_month" /> | |||||
| <result property="agentStatus" column="agent_status" /> | |||||
| <result property="orderStatus" column="order_status" /> | |||||
| <result property="createBy" column="create_by" /> | |||||
| <result property="createTime" column="create_time" /> | |||||
| <result property="updateBy" column="update_by" /> | |||||
| <result property="updateTime" column="update_time" /> | |||||
| </resultMap> | |||||
| <sql id="selectTAgentContractionVo"> | |||||
| select id, task_id, org_code, out_id, book_id, dept_id, name, building_time, remark, order_at, order_year, order_month, agent_status, order_status, create_by, create_time, update_by, update_time from t_agent_contraction | |||||
| </sql> | |||||
| <!--条件查询--> | |||||
| <select id="selectTAgentContractionList" parameterType="TAgentContraction" resultMap="TAgentContractionResult"> | |||||
| <include refid="selectTAgentContractionVo"/> | |||||
| <where> | |||||
| <if test="taskId != null "> and task_id = #{taskId}</if> | |||||
| <if test="orgCode != null and orgCode != ''"> and org_code = #{orgCode}</if> | |||||
| <if test="outId != null "> and out_id = #{outId}</if> | |||||
| <if test="bookId != null "> and book_id = #{bookId}</if> | |||||
| <if test="deptId != null "> and dept_id = #{deptId}</if> | |||||
| <if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if> | |||||
| <if test="buildingTime != null and buildingTime != ''"> and building_time = #{buildingTime}</if> | |||||
| <if test="orderAt != null "> and order_at = #{orderAt}</if> | |||||
| <if test="orderYear != null and orderYear != ''"> and order_year = #{orderYear}</if> | |||||
| <if test="orderMonth != null and orderMonth != ''"> and order_month = #{orderMonth}</if> | |||||
| <if test="agentStatus != null and agentStatus != ''"> and agent_status = #{agentStatus}</if> | |||||
| <if test="orderStatus != null and orderStatus != ''"> and order_status = #{orderStatus}</if> | |||||
| </where> | |||||
| </select> | |||||
| <!--主键查询--> | |||||
| <select id="selectTAgentContractionById" parameterType="Long" resultMap="TAgentContractionResult"> | |||||
| <include refid="selectTAgentContractionVo"/> | |||||
| where id = #{id} | |||||
| </select> | |||||
| <!--新增--> | |||||
| <insert id="insertTAgentContraction" parameterType="TAgentContraction" useGeneratedKeys="true" keyProperty="id"> | |||||
| insert into t_agent_contraction | |||||
| <trim prefix="(" suffix=")" suffixOverrides=","> | |||||
| <if test="taskId != null">task_id,</if> | |||||
| <if test="orgCode != null and orgCode != ''">org_code,</if> | |||||
| <if test="outId != null">out_id,</if> | |||||
| <if test="bookId != null">book_id,</if> | |||||
| <if test="deptId != null">dept_id,</if> | |||||
| <if test="name != null and name != ''">name,</if> | |||||
| <if test="buildingTime != null and buildingTime != ''">building_time,</if> | |||||
| <if test="remark != null">remark,</if> | |||||
| <if test="orderAt != null">order_at,</if> | |||||
| <if test="orderYear != null and orderYear != ''">order_year,</if> | |||||
| <if test="orderMonth != null and orderMonth != ''">order_month,</if> | |||||
| <if test="agentStatus != null and agentStatus != ''">agent_status,</if> | |||||
| <if test="orderStatus != null and orderStatus != ''">order_status,</if> | |||||
| <if test="createBy != null">create_by,</if> | |||||
| <if test="createTime != null">create_time,</if> | |||||
| <if test="updateBy != null">update_by,</if> | |||||
| <if test="updateTime != null">update_time,</if> | |||||
| </trim> | |||||
| <trim prefix="values (" suffix=")" suffixOverrides=","> | |||||
| <if test="taskId != null">#{taskId},</if> | |||||
| <if test="orgCode != null and orgCode != ''">#{orgCode},</if> | |||||
| <if test="outId != null">#{outId},</if> | |||||
| <if test="bookId != null">#{bookId},</if> | |||||
| <if test="deptId != null">#{deptId},</if> | |||||
| <if test="name != null and name != ''">#{name},</if> | |||||
| <if test="buildingTime != null and buildingTime != ''">#{buildingTime},</if> | |||||
| <if test="remark != null">#{remark},</if> | |||||
| <if test="orderAt != null">#{orderAt},</if> | |||||
| <if test="orderYear != null and orderYear != ''">#{orderYear},</if> | |||||
| <if test="orderMonth != null and orderMonth != ''">#{orderMonth},</if> | |||||
| <if test="agentStatus != null and agentStatus != ''">#{agentStatus},</if> | |||||
| <if test="orderStatus != null and orderStatus != ''">#{orderStatus},</if> | |||||
| <if test="createBy != null">#{createBy},</if> | |||||
| <if test="createTime != null">#{createTime},</if> | |||||
| <if test="updateBy != null">#{updateBy},</if> | |||||
| <if test="updateTime != null">#{updateTime},</if> | |||||
| </trim> | |||||
| </insert> | |||||
| <!--批量新增--> | |||||
| <insert id="insertTAgentContractionBatch" parameterType="list" useGeneratedKeys="true" keyProperty="id"> | |||||
| insert into t_agent_contraction | |||||
| <trim prefix="(" suffix=")" suffixOverrides=","> | |||||
| task_id, | |||||
| org_code, | |||||
| out_id, | |||||
| book_id, | |||||
| dept_id, | |||||
| name, | |||||
| building_time, | |||||
| remark, | |||||
| order_at, | |||||
| order_year, | |||||
| order_month, | |||||
| agent_status, | |||||
| order_status, | |||||
| create_by, | |||||
| create_time, | |||||
| update_by, | |||||
| update_time, | |||||
| </trim> | |||||
| values | |||||
| <foreach item="item" collection="list" separator="," > | |||||
| <trim prefix="(" suffix=")" suffixOverrides=","> | |||||
| #{item.taskId}, | |||||
| #{item.orgCode}, | |||||
| #{item.outId}, | |||||
| #{item.bookId}, | |||||
| #{item.deptId}, | |||||
| #{item.name}, | |||||
| #{item.buildingTime}, | |||||
| #{item.remark}, | |||||
| #{item.orderAt}, | |||||
| #{item.orderYear}, | |||||
| #{item.orderMonth}, | |||||
| #{item.agentStatus}, | |||||
| #{item.orderStatus}, | |||||
| #{item.createBy}, | |||||
| #{item.createTime}, | |||||
| #{item.updateBy}, | |||||
| #{item.updateTime}, | |||||
| </trim> | |||||
| </foreach> | |||||
| </insert> | |||||
| <!--更新--> | |||||
| <update id="updateTAgentContraction" parameterType="TAgentContraction"> | |||||
| update t_agent_contraction | |||||
| <trim prefix="SET" suffixOverrides=","> | |||||
| <if test="taskId != null">task_id = #{taskId},</if> | |||||
| <if test="orgCode != null and orgCode != ''">org_code = #{orgCode},</if> | |||||
| <if test="outId != null">out_id = #{outId},</if> | |||||
| <if test="bookId != null">book_id = #{bookId},</if> | |||||
| <if test="deptId != null">dept_id = #{deptId},</if> | |||||
| <if test="name != null and name != ''">name = #{name},</if> | |||||
| <if test="buildingTime != null and buildingTime != ''">building_time = #{buildingTime},</if> | |||||
| <if test="remark != null">remark = #{remark},</if> | |||||
| <if test="orderAt != null">order_at = #{orderAt},</if> | |||||
| <if test="orderYear != null and orderYear != ''">order_year = #{orderYear},</if> | |||||
| <if test="orderMonth != null and orderMonth != ''">order_month = #{orderMonth},</if> | |||||
| <if test="agentStatus != null and agentStatus != ''">agent_status = #{agentStatus},</if> | |||||
| <if test="orderStatus != null and orderStatus != ''">order_status = #{orderStatus},</if> | |||||
| <if test="createBy != null">create_by = #{createBy},</if> | |||||
| <if test="createTime != null">create_time = #{createTime},</if> | |||||
| <if test="updateBy != null">update_by = #{updateBy},</if> | |||||
| <if test="updateTime != null">update_time = #{updateTime},</if> | |||||
| <if test="params != null and params.__UPDATE != null"><foreach collection="params.__UPDATE" item="val" index="col">`${col}` = #{val},</foreach></if> | |||||
| </trim> | |||||
| where id = #{id} | |||||
| </update> | |||||
| <!--批量更新--> | |||||
| <update id="updateTAgentContractionBatch" parameterType="list" > | |||||
| <foreach collection="list" item="item" index="index" open="" close="" separator=";"> | |||||
| update t_agent_contraction | |||||
| <set> | |||||
| <if test="item.taskId != null">task_id = #{item.taskId},</if> | |||||
| <if test="item.orgCode != null and item.orgCode != ''">org_code = #{item.orgCode},</if> | |||||
| <if test="item.outId != null">out_id = #{item.outId},</if> | |||||
| <if test="item.bookId != null">book_id = #{item.bookId},</if> | |||||
| <if test="item.deptId != null">dept_id = #{item.deptId},</if> | |||||
| <if test="item.name != null and item.name != ''">name = #{item.name},</if> | |||||
| <if test="item.buildingTime != null and item.buildingTime != ''">building_time = #{item.buildingTime},</if> | |||||
| <if test="item.remark != null">remark = #{item.remark},</if> | |||||
| <if test="item.orderAt != null">order_at = #{item.orderAt},</if> | |||||
| <if test="item.orderYear != null and item.orderYear != ''">order_year = #{item.orderYear},</if> | |||||
| <if test="item.orderMonth != null and item.orderMonth != ''">order_month = #{item.orderMonth},</if> | |||||
| <if test="item.agentStatus != null and item.agentStatus != ''">agent_status = #{item.agentStatus},</if> | |||||
| <if test="item.orderStatus != null and item.orderStatus != ''">order_status = #{item.orderStatus},</if> | |||||
| <if test="item.createBy != null">create_by = #{item.createBy},</if> | |||||
| <if test="item.createTime != null">create_time = #{item.createTime},</if> | |||||
| <if test="item.updateBy != null">update_by = #{item.updateBy},</if> | |||||
| <if test="item.updateTime != null">update_time = #{item.updateTime},</if> | |||||
| <if test="item.params != null and item.params.__UPDATE != null"><foreach collection="item.params.__UPDATE" item="val" index="col">`${col}` = #{val},</foreach></if> | |||||
| </set> | |||||
| where id = #{item.id} | |||||
| </foreach> | |||||
| </update> | |||||
| <!--主键删除--> | |||||
| <delete id="deleteTAgentContractionById" parameterType="Long"> | |||||
| delete from t_agent_contraction where id = #{id} | |||||
| </delete> | |||||
| <!--主键批量删除--> | |||||
| <delete id="deleteTAgentContractionByIds" parameterType="String"> | |||||
| delete from t_agent_contraction where id in | |||||
| <foreach item="id" collection="array" open="(" separator="," close=")"> | |||||
| #{id} | |||||
| </foreach> | |||||
| </delete> | |||||
| <!-- Harm --> | |||||
| <!--单条条件查询--> | |||||
| <select id="selectTAgentContraction" parameterType="TAgentContraction" resultMap="TAgentContractionResult"> | |||||
| <include refid="selectTAgentContractionVo"/> | |||||
| <where> | |||||
| <if test="taskId != null "> and task_id = #{taskId}</if> | |||||
| <if test="orgCode != null and orgCode != ''"> and org_code = #{orgCode}</if> | |||||
| <if test="outId != null "> and out_id = #{outId}</if> | |||||
| <if test="bookId != null "> and book_id = #{bookId}</if> | |||||
| <if test="deptId != null "> and dept_id = #{deptId}</if> | |||||
| <if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if> | |||||
| <if test="buildingTime != null and buildingTime != ''"> and building_time = #{buildingTime}</if> | |||||
| <if test="orderAt != null "> and order_at = #{orderAt}</if> | |||||
| <if test="orderYear != null and orderYear != ''"> and order_year = #{orderYear}</if> | |||||
| <if test="orderMonth != null and orderMonth != ''"> and order_month = #{orderMonth}</if> | |||||
| <if test="agentStatus != null and agentStatus != ''"> and agent_status = #{agentStatus}</if> | |||||
| <if test="orderStatus != null and orderStatus != ''"> and order_status = #{orderStatus}</if> | |||||
| </where> | |||||
| limit 1 | |||||
| </select> | |||||
| <!--条件查询数量--> | |||||
| <select id="selectTAgentContractionCount" parameterType="TAgentContraction" resultType="Long"> | |||||
| select count(*) from t_agent_contraction | |||||
| <where> | |||||
| <if test="taskId != null "> and task_id = #{taskId}</if> | |||||
| <if test="orgCode != null and orgCode != ''"> and org_code = #{orgCode}</if> | |||||
| <if test="outId != null "> and out_id = #{outId}</if> | |||||
| <if test="bookId != null "> and book_id = #{bookId}</if> | |||||
| <if test="deptId != null "> and dept_id = #{deptId}</if> | |||||
| <if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if> | |||||
| <if test="buildingTime != null and buildingTime != ''"> and building_time = #{buildingTime}</if> | |||||
| <if test="orderAt != null "> and order_at = #{orderAt}</if> | |||||
| <if test="orderYear != null and orderYear != ''"> and order_year = #{orderYear}</if> | |||||
| <if test="orderMonth != null and orderMonth != ''"> and order_month = #{orderMonth}</if> | |||||
| <if test="agentStatus != null and agentStatus != ''"> and agent_status = #{agentStatus}</if> | |||||
| <if test="orderStatus != null and orderStatus != ''"> and order_status = #{orderStatus}</if> | |||||
| </where> | |||||
| </select> | |||||
| <!--条件查询是否存在--> | |||||
| <select id="selectTAgentContractionExists" parameterType="TAgentContraction" resultType="int"> | |||||
| select exists ( | |||||
| select 1 from t_agent_contraction | |||||
| <where> | |||||
| <if test="taskId != null "> and task_id = #{taskId}</if> | |||||
| <if test="orgCode != null and orgCode != ''"> and org_code = #{orgCode}</if> | |||||
| <if test="outId != null "> and out_id = #{outId}</if> | |||||
| <if test="bookId != null "> and book_id = #{bookId}</if> | |||||
| <if test="deptId != null "> and dept_id = #{deptId}</if> | |||||
| <if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if> | |||||
| <if test="buildingTime != null and buildingTime != ''"> and building_time = #{buildingTime}</if> | |||||
| <if test="orderAt != null "> and order_at = #{orderAt}</if> | |||||
| <if test="orderYear != null and orderYear != ''"> and order_year = #{orderYear}</if> | |||||
| <if test="orderMonth != null and orderMonth != ''"> and order_month = #{orderMonth}</if> | |||||
| <if test="agentStatus != null and agentStatus != ''"> and agent_status = #{agentStatus}</if> | |||||
| <if test="orderStatus != null and orderStatus != ''"> and order_status = #{orderStatus}</if> | |||||
| </where> | |||||
| limit 1 | |||||
| ) | |||||
| </select> | |||||
| </mapper> | |||||
| @@ -19,7 +19,7 @@ public final class EventBusEngine | |||||
| private static final List<Object> _listenerList = new ArrayList<>(); | private static final List<Object> _listenerList = new ArrayList<>(); | ||||
| @Autowired | @Autowired | ||||
| public void setAsyncEventBus(@Qualifier("asyncEventBus" ) EventBus eventBus) | |||||
| public void setEventBus(@Qualifier( "syncEventBus" ) EventBus eventBus) | |||||
| { | { | ||||
| EventBusEngine._eventBus = eventBus; | EventBusEngine._eventBus = eventBus; | ||||
| logger.info("EventBusEngine::initialization -> " + eventBus); | logger.info("EventBusEngine::initialization -> " + eventBus); | ||||