| @@ -44,7 +44,7 @@ public final class NSMain | |||
| NSEntity entity; | |||
| NSApiResult result; | |||
| NSSDK.InitClient("http://localhost", (short) 8081, "test", "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==", 0); | |||
| NSSDK.InitClient("http://localhost", (short) 8081, "371002100005", "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==", 0); | |||
| client = NSSDK.InstanceClient(); | |||
| entity = new NSEntity(); | |||
| @@ -52,12 +52,12 @@ public final class NSMain | |||
| .setBookId(166L) | |||
| .setOrgCode("371002100005") | |||
| .setBookName("张村账套") | |||
| .setOrgCode("3710021000050001") | |||
| /*.setOrgCode("3710021000050001") | |||
| .setBookName("张村1组账套") | |||
| .setOrgCode("371002100") | |||
| .setBookName("张村镇账套") | |||
| .setOrgCode("371002") | |||
| .setBookName("环翠区账套") | |||
| .setBookName("环翠区账套")*/ | |||
| ; | |||
| entity.Parm("buildingTime", "2000-12-25"); | |||
| entity.Parm("name", "测试合同"); | |||
| @@ -20,6 +20,10 @@ import com.ruoyi.common.core.domain.BaseEntity; | |||
| @Accessors(chain = true) | |||
| public class TAgentTask extends BaseEntity | |||
| { | |||
| public static final String AGENT_STATUS_READY = "1"; | |||
| public static final String AGENT_STATUS_PROCESSING = "2"; | |||
| public static final String AGENT_STATUS_FINISHED = "3"; | |||
| private static final long serialVersionUID = 1L; | |||
| /** id */ | |||
| @@ -63,7 +63,7 @@ public class ContractionListener | |||
| .setName(data.getName()) | |||
| .setBuildingTime(data.getBuildingTime()) | |||
| .setOrderAt(new Date()) | |||
| .setAgentStatus("1") | |||
| .setAgentStatus(TAgentTask.AGENT_STATUS_READY) | |||
| .setOrderStatus("2") | |||
| .normalized(); | |||
| ; | |||
| @@ -73,37 +73,14 @@ public class ContractionListener | |||
| private TAgentTask syncTask(NSContractionEntity entity, TAgentContraction contraction) | |||
| { | |||
| String orgCode = contraction.getOrgCode(); | |||
| TAgentTask task = new TAgentTask(); | |||
| task.setOrgCode(orgCode) | |||
| .setOrderYear(contraction.getOrderYear()) | |||
| .setOrderMonth(contraction.getOrderMonth()) | |||
| ; | |||
| TAgentTask tAgentTask = itAgentTaskService.selectTAgentTask(task); | |||
| if(null == tAgentTask) | |||
| { | |||
| SysDept deptCond = new SysDept(); | |||
| deptCond.setOrgCode(orgCode); | |||
| SysDept dept = iSysDeptService.selectSysDept(deptCond); | |||
| Assert.notNull(dept, "部门不存在: {}", orgCode); | |||
| task.setBookId(contraction.getBookId()) | |||
| .setBookName(entity.getBookName()) | |||
| .setContracCount(0) | |||
| .setVoucherCount(0) | |||
| .setAssetCount(0) | |||
| .setAllCount(0) | |||
| .setFinishCount(0) | |||
| .setAgentCenter(dept.getAgentCenter()) | |||
| .setAgentStatus("1") | |||
| ; | |||
| itAgentTaskService.fillTAgentTaskOrg(task); | |||
| task.setCreateBy("admin"); | |||
| itAgentTaskService.insertTAgentTask(task); | |||
| tAgentTask = task; | |||
| } | |||
| TAgentTask tAgentTask = itAgentTaskService.getTAgentTask(orgCode, contraction.getOrderYear(), contraction.getOrderMonth(), (x) -> { | |||
| x.setBookId(contraction.getBookId()) | |||
| .setBookName(entity.getBookName()) | |||
| ; | |||
| }); | |||
| task = new TAgentTask(); | |||
| TAgentTask task = new TAgentTask(); | |||
| task.setContracCount(1); | |||
| task.setId(tAgentTask.getId()); | |||
| itAgentTaskService.updateTAgentTaskCount(task); | |||
| @@ -1,6 +1,8 @@ | |||
| package com.ruoyi.agentcenter.service; | |||
| import java.util.List; | |||
| import java.util.function.Consumer; | |||
| import com.ruoyi.agentcenter.domain.TAgentTask; | |||
| /** | |||
| @@ -103,4 +105,6 @@ public interface ITAgentTaskService | |||
| public int updateTAgentTaskCount(TAgentTask tAgentTask); | |||
| public void fillTAgentTaskOrg(TAgentTask tAgentTask); | |||
| public TAgentTask getTAgentTask(String orgCode, String year, String month, Consumer<TAgentTask> ifNotExists); | |||
| } | |||
| @@ -1,5 +1,7 @@ | |||
| package com.ruoyi.agentcenter.service.impl; | |||
| import cn.hutool.core.lang.Assert; | |||
| import cn.hutool.core.util.URLUtil; | |||
| import com.nsgk.agentcentersdk.api.NSSDK; | |||
| import com.nsgk.agentcentersdk.api.NSSDKServer; | |||
| import com.nsgk.agentcentersdk.core.NSProtocol; | |||
| @@ -15,16 +17,22 @@ 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.core.domain.entity.SysDept; | |||
| import com.ruoyi.common.utils.EventBusEngine; | |||
| import com.ruoyi.common.utils.handler.HandlerEngine; | |||
| import com.ruoyi.system.mapper.SysDeptMapper; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import javax.servlet.http.HttpServletRequest; | |||
| import java.net.URL; | |||
| import java.util.Date; | |||
| @Service | |||
| public class AgentCenterImpl implements IAgentCenter | |||
| { | |||
| @Autowired | |||
| private SysDeptMapper sysDeptMapper; | |||
| public int getProtocol(HttpServletRequest request) | |||
| { | |||
| @@ -77,10 +85,38 @@ public class AgentCenterImpl implements IAgentCenter | |||
| return session; | |||
| } | |||
| private void check(Message<?> message, HttpServletRequest request) | |||
| { | |||
| Assert.notNull(message, "无效消息"); | |||
| String identifier = message.getIdentifier(); | |||
| Assert.notBlank(identifier, "无效客户端标识"); | |||
| SysDept dept = sysDeptMapper.selectSysDeptByOrgCode(identifier); | |||
| Assert.notNull(dept, "不支持的地区: {}", identifier); | |||
| String remoteUrl = dept.getRemoteUrl(); | |||
| Assert.notBlank(remoteUrl, "该地区无项目: {}", identifier); | |||
| /*try | |||
| { | |||
| URL url = new URL(remoteUrl); | |||
| String host = url.getHost(); | |||
| String clientHost = request.getRemoteAddr(); | |||
| Assert.isTrue(clientHost.equals(host), "该客户端部署在不支持的地址: {}", clientHost); | |||
| int port = url.getPort(); | |||
| int clientPort = request.getRemotePort(); | |||
| Assert.isTrue(clientPort == port, "该客户端部署在不支持的地址: {}", clientPort); | |||
| } | |||
| catch(Exception e) | |||
| { | |||
| e.printStackTrace(); | |||
| throw new RuntimeException(e); | |||
| }*/ | |||
| } | |||
| @Override | |||
| public Result<?> postHandle(HttpServletRequest request) | |||
| { | |||
| Message<?> message = getMessage(request); | |||
| check(message, request); | |||
| Session<?, ?> session = createSession(message); | |||
| HandlerEngine.Post(session); | |||
| return session.result; | |||
| @@ -1,6 +1,7 @@ | |||
| package com.ruoyi.agentcenter.service.impl; | |||
| import java.util.List; | |||
| import java.util.function.Consumer; | |||
| import cn.hutool.core.lang.Assert; | |||
| import com.ruoyi.common.core.domain.entity.SysDept; | |||
| @@ -209,4 +210,37 @@ public class TAgentTaskServiceImpl implements ITAgentTaskService | |||
| .setOrgName(org.getDeptName()) | |||
| ; | |||
| } | |||
| @Override | |||
| public TAgentTask getTAgentTask(String orgCode, String year, String month, Consumer<TAgentTask> ifNotExists) | |||
| { | |||
| TAgentTask task = new TAgentTask(); | |||
| task.setOrgCode(orgCode) | |||
| .setOrderYear(year) | |||
| .setOrderMonth(month) | |||
| ; | |||
| TAgentTask tAgentTask = tAgentTaskMapper.selectTAgentTask(task); | |||
| if(null == tAgentTask) | |||
| { | |||
| SysDept deptCond = new SysDept(); | |||
| deptCond.setOrgCode(orgCode); | |||
| SysDept dept = sysDeptMapper.selectSysDept(deptCond); | |||
| Assert.notNull(dept, "部门不存在: {}", orgCode); | |||
| task.setContracCount(0) | |||
| .setVoucherCount(0) | |||
| .setAssetCount(0) | |||
| .setAllCount(0) | |||
| .setFinishCount(0) | |||
| .setAgentCenter(dept.getAgentCenter()) | |||
| .setAgentStatus(TAgentTask.AGENT_STATUS_READY) | |||
| ; | |||
| fillTAgentTaskOrg(task); | |||
| task.setCreateBy("admin"); | |||
| ifNotExists.accept(task); // 补充 | |||
| insertTAgentTask(task); | |||
| tAgentTask = task; | |||
| } | |||
| return tAgentTask; | |||
| } | |||
| } | |||
| @@ -122,4 +122,5 @@ public interface SysDeptMapper | |||
| * @return 部门条目 | |||
| */ | |||
| public SysDept selectSysDept(SysDept sysDept); | |||
| public SysDept selectSysDeptByOrgCode(String orgCode); | |||
| } | |||
| @@ -178,4 +178,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||
| </where> | |||
| limit 1 | |||
| </select> | |||
| <select id="selectSysDeptByOrgCode" parameterType="String" resultMap="SysDeptResult"> | |||
| <include refid="selectDeptVo"/> | |||
| WHERE | |||
| org_code = #{orgCode} | |||
| AND d.del_flag = '0' | |||
| AND `status` = '0' | |||
| limit 1 | |||
| </select> | |||
| </mapper> | |||