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