| @@ -44,7 +44,7 @@ public final class NSMain | |||||
| NSEntity 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, "371002100005", "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==", 0); | |||||
| client = NSSDK.InstanceClient(); | client = NSSDK.InstanceClient(); | ||||
| entity = new NSEntity(); | entity = new NSEntity(); | ||||
| @@ -52,12 +52,12 @@ public final class NSMain | |||||
| .setBookId(166L) | .setBookId(166L) | ||||
| .setOrgCode("371002100005") | .setOrgCode("371002100005") | ||||
| .setBookName("张村账套") | .setBookName("张村账套") | ||||
| .setOrgCode("3710021000050001") | |||||
| /*.setOrgCode("3710021000050001") | |||||
| .setBookName("张村1组账套") | .setBookName("张村1组账套") | ||||
| .setOrgCode("371002100") | .setOrgCode("371002100") | ||||
| .setBookName("张村镇账套") | .setBookName("张村镇账套") | ||||
| .setOrgCode("371002") | .setOrgCode("371002") | ||||
| .setBookName("环翠区账套") | |||||
| .setBookName("环翠区账套")*/ | |||||
| ; | ; | ||||
| entity.Parm("buildingTime", "2000-12-25"); | entity.Parm("buildingTime", "2000-12-25"); | ||||
| entity.Parm("name", "测试合同"); | entity.Parm("name", "测试合同"); | ||||
| @@ -20,6 +20,10 @@ import com.ruoyi.common.core.domain.BaseEntity; | |||||
| @Accessors(chain = true) | @Accessors(chain = true) | ||||
| public class TAgentTask extends BaseEntity | 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; | private static final long serialVersionUID = 1L; | ||||
| /** id */ | /** id */ | ||||
| @@ -63,7 +63,7 @@ public class ContractionListener | |||||
| .setName(data.getName()) | .setName(data.getName()) | ||||
| .setBuildingTime(data.getBuildingTime()) | .setBuildingTime(data.getBuildingTime()) | ||||
| .setOrderAt(new Date()) | .setOrderAt(new Date()) | ||||
| .setAgentStatus("1") | |||||
| .setAgentStatus(TAgentTask.AGENT_STATUS_READY) | |||||
| .setOrderStatus("2") | .setOrderStatus("2") | ||||
| .normalized(); | .normalized(); | ||||
| ; | ; | ||||
| @@ -73,37 +73,14 @@ public class ContractionListener | |||||
| private TAgentTask syncTask(NSContractionEntity entity, TAgentContraction contraction) | private TAgentTask syncTask(NSContractionEntity entity, TAgentContraction contraction) | ||||
| { | { | ||||
| String orgCode = contraction.getOrgCode(); | 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.setContracCount(1); | ||||
| task.setId(tAgentTask.getId()); | task.setId(tAgentTask.getId()); | ||||
| itAgentTaskService.updateTAgentTaskCount(task); | itAgentTaskService.updateTAgentTaskCount(task); | ||||
| @@ -1,6 +1,8 @@ | |||||
| package com.ruoyi.agentcenter.service; | package com.ruoyi.agentcenter.service; | ||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.function.Consumer; | |||||
| import com.ruoyi.agentcenter.domain.TAgentTask; | import com.ruoyi.agentcenter.domain.TAgentTask; | ||||
| /** | /** | ||||
| @@ -103,4 +105,6 @@ public interface ITAgentTaskService | |||||
| public int updateTAgentTaskCount(TAgentTask tAgentTask); | public int updateTAgentTaskCount(TAgentTask tAgentTask); | ||||
| public void fillTAgentTaskOrg(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; | 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.NSSDK; | ||||
| import com.nsgk.agentcentersdk.api.NSSDKServer; | import com.nsgk.agentcentersdk.api.NSSDKServer; | ||||
| import com.nsgk.agentcentersdk.core.NSProtocol; | 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.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.domain.entity.SysDept; | |||||
| import com.ruoyi.common.utils.EventBusEngine; | import com.ruoyi.common.utils.EventBusEngine; | ||||
| import com.ruoyi.common.utils.handler.HandlerEngine; | 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 org.springframework.stereotype.Service; | ||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
| import java.net.URL; | |||||
| import java.util.Date; | import java.util.Date; | ||||
| @Service | @Service | ||||
| public class AgentCenterImpl implements IAgentCenter | public class AgentCenterImpl implements IAgentCenter | ||||
| { | { | ||||
| @Autowired | |||||
| private SysDeptMapper sysDeptMapper; | |||||
| public int getProtocol(HttpServletRequest request) | public int getProtocol(HttpServletRequest request) | ||||
| { | { | ||||
| @@ -77,10 +85,38 @@ public class AgentCenterImpl implements IAgentCenter | |||||
| return session; | 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 | @Override | ||||
| public Result<?> postHandle(HttpServletRequest request) | public Result<?> postHandle(HttpServletRequest request) | ||||
| { | { | ||||
| Message<?> message = getMessage(request); | Message<?> message = getMessage(request); | ||||
| check(message, request); | |||||
| Session<?, ?> session = createSession(message); | Session<?, ?> session = createSession(message); | ||||
| HandlerEngine.Post(session); | HandlerEngine.Post(session); | ||||
| return session.result; | return session.result; | ||||
| @@ -1,6 +1,7 @@ | |||||
| package com.ruoyi.agentcenter.service.impl; | package com.ruoyi.agentcenter.service.impl; | ||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.function.Consumer; | |||||
| import cn.hutool.core.lang.Assert; | import cn.hutool.core.lang.Assert; | ||||
| import com.ruoyi.common.core.domain.entity.SysDept; | import com.ruoyi.common.core.domain.entity.SysDept; | ||||
| @@ -209,4 +210,37 @@ public class TAgentTaskServiceImpl implements ITAgentTaskService | |||||
| .setOrgName(org.getDeptName()) | .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 部门条目 | * @return 部门条目 | ||||
| */ | */ | ||||
| public SysDept selectSysDept(SysDept sysDept); | public SysDept selectSysDept(SysDept sysDept); | ||||
| public SysDept selectSysDeptByOrgCode(String orgCode); | |||||
| } | } | ||||
| @@ -178,4 +178,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||||
| </where> | </where> | ||||
| limit 1 | limit 1 | ||||
| </select> | </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> | </mapper> | ||||