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