@@ -6,6 +6,7 @@ public final class NSProtocol | |||||
public static final int NS_PROTOCOL_INVALID = 0; | public static final int NS_PROTOCOL_INVALID = 0; | ||||
public static final int NS_PROTOCOL_TEST = 0x00001; | public static final int NS_PROTOCOL_TEST = 0x00001; | ||||
public static final int NS_PROTOCOL_CONTRACTION = 0x10001; | public static final int NS_PROTOCOL_CONTRACTION = 0x10001; | ||||
public static final int NS_PROTOCOL_UPDATE_CONTRACTION = 0x10002; | |||||
public static int FromString(String str) | public static int FromString(String str) | ||||
{ | { | ||||
@@ -15,4 +15,7 @@ public class NSContractionEntity extends NSEntity | |||||
/** 签订日期 */ | /** 签订日期 */ | ||||
private String buildingTime; | private String buildingTime; | ||||
/** 状态 */ | |||||
private String orderStatus; | |||||
} | } |
@@ -38,7 +38,7 @@ public class ContractionListener | |||||
} | } | ||||
@CallbackHandler(protocol = "" + NSProtocol.NS_PROTOCOL_CONTRACTION) | @CallbackHandler(protocol = "" + NSProtocol.NS_PROTOCOL_CONTRACTION) | ||||
public void handle(ContractionSession session) | |||||
public void reportContraction(ContractionSession session) | |||||
{ | { | ||||
TAgentContraction contraction = conv(session.message); | TAgentContraction contraction = conv(session.message); | ||||
Result result = session.result; | Result result = session.result; | ||||
@@ -46,7 +46,35 @@ public class ContractionListener | |||||
SqlUtil.transaction(() -> { | SqlUtil.transaction(() -> { | ||||
TAgentTask task = syncTask(session.message.getData(), contraction); | TAgentTask task = syncTask(session.message.getData(), contraction); | ||||
contraction.setTaskId(task.getId()); | contraction.setTaskId(task.getId()); | ||||
itAgentContractionService.insertTAgentContraction(contraction); | |||||
if(null == contraction.getId()) | |||||
{ | |||||
itAgentContractionService.insertTAgentContraction(contraction); | |||||
result.setMessage("新增合同报账成功"); | |||||
} | |||||
else | |||||
{ | |||||
itAgentContractionService.updateTAgentContraction(contraction); | |||||
result.setMessage("更新合同报账成功"); | |||||
} | |||||
}); | |||||
result.setData(contraction); | |||||
} | |||||
@CallbackHandler(protocol = "" + NSProtocol.NS_PROTOCOL_UPDATE_CONTRACTION) | |||||
public void updateContraction(ContractionSession session) | |||||
{ | |||||
NSContractionEntity inContraction = session.message.getData(); | |||||
Result result = session.result; | |||||
TAgentContraction contraction = itAgentContractionService.selectTAgentContraction(new TAgentContraction().setOrgCode(inContraction.getOrgCode()).setOutId(inContraction.getOutId())); | |||||
Assert.notNull(contraction, "报账合同不存在"); | |||||
Assert.isTrue(TAgentTask.AGENT_STATUS_PROCESSING.equals(contraction.getAgentStatus()), "报账合同任务未分配"); | |||||
Assert.isTrue("2".equals(contraction.getOrderStatus()), "报账合同状态不是待记账状态"); | |||||
SqlUtil.transaction(() -> { | |||||
contraction.setOrderStatus(inContraction.getOrderStatus()); | |||||
itAgentContractionService.updateTAgentContraction(contraction); | |||||
syncFinishTask(contraction); | |||||
}); | }); | ||||
result.setData(contraction); | result.setData(contraction); | ||||
@@ -54,20 +82,39 @@ public class ContractionListener | |||||
private TAgentContraction conv(Message<NSContractionEntity> message) | private TAgentContraction conv(Message<NSContractionEntity> message) | ||||
{ | { | ||||
TAgentContraction contraction = new TAgentContraction(); | |||||
NSContractionEntity data = message.getData(); | 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(TAgentTask.AGENT_STATUS_READY) | |||||
.setOrderStatus("2") | |||||
.normalized() | |||||
; | |||||
contraction.setCreateBy("admin"); | |||||
TAgentContraction contractionCond = new TAgentContraction(); | |||||
contractionCond.setOrgCode(data.getOrgCode()) | |||||
.setOutId(data.getOutId()); | |||||
TAgentContraction contraction = itAgentContractionService.selectTAgentContraction(contractionCond); | |||||
if(null != contraction) | |||||
{ | |||||
Assert.isTrue("2".equals(contraction.getOrderStatus()), "非待记账状态的合同保障不能修改"); | |||||
contraction.setBookId(data.getBookId()) | |||||
.setDeptId(data.getDeptId()) | |||||
.setName(data.getName()) | |||||
.setBuildingTime(data.getBuildingTime()) | |||||
; | |||||
contraction.setUpdateBy("admin"); | |||||
} | |||||
else | |||||
{ | |||||
contraction = new TAgentContraction(); | |||||
contraction.setBookId(data.getBookId()) | |||||
.setDeptId(data.getDeptId()) | |||||
.setOutId(data.getOutId()) | |||||
.setName(data.getName()) | |||||
.setOrgCode(data.getOrgCode()) | |||||
.setBuildingTime(data.getBuildingTime()) | |||||
.setOrderAt(new Date()) | |||||
.setAgentStatus(TAgentTask.AGENT_STATUS_READY) | |||||
.setOrderStatus("2") | |||||
.normalized() | |||||
; | |||||
contraction.setCreateBy("admin"); | |||||
} | |||||
return contraction; | return contraction; | ||||
} | } | ||||
@@ -86,6 +133,19 @@ public class ContractionListener | |||||
task.setId(tAgentTask.getId()); | task.setId(tAgentTask.getId()); | ||||
itAgentTaskService.updateTAgentTaskCount(task); | itAgentTaskService.updateTAgentTaskCount(task); | ||||
return task; | |||||
return tAgentTask; | |||||
} | |||||
private void syncFinishTask(TAgentContraction contraction) | |||||
{ | |||||
String orgCode = contraction.getOrgCode(); | |||||
TAgentTask tAgentTask = itAgentTaskService.getTAgentTask(orgCode, contraction.getOrderYear(), contraction.getOrderMonth()); | |||||
Assert.notNull(tAgentTask, "{}下{}年{}月无任务", orgCode, contraction.getOrderYear(), contraction.getOrderMonth()); | |||||
TAgentTask task = new TAgentTask(); | |||||
task.setFinishCount(1); | |||||
task.setId(tAgentTask.getId()); | |||||
itAgentTaskService.updateTAgentTaskCount(task); | |||||
} | } | ||||
} | } |
@@ -107,4 +107,6 @@ public interface ITAgentTaskService | |||||
public void fillTAgentTaskOrg(TAgentTask tAgentTask); | public void fillTAgentTaskOrg(TAgentTask tAgentTask); | ||||
public TAgentTask getTAgentTask(String orgCode, String year, String month, Consumer<TAgentTask> ifNotExists); | public TAgentTask getTAgentTask(String orgCode, String year, String month, Consumer<TAgentTask> ifNotExists); | ||||
public TAgentTask getTAgentTask(String orgCode, String year, String month); | |||||
} | } |
@@ -49,6 +49,7 @@ public class AgentCenterImpl implements IAgentCenter | |||||
switch(protocol) | switch(protocol) | ||||
{ | { | ||||
case NSProtocol.NS_PROTOCOL_CONTRACTION: | case NSProtocol.NS_PROTOCOL_CONTRACTION: | ||||
case NSProtocol.NS_PROTOCOL_UPDATE_CONTRACTION: | |||||
clazz = NSContractionEntity.class; | clazz = NSContractionEntity.class; | ||||
break; | break; | ||||
default: | default: | ||||
@@ -68,6 +69,7 @@ public class AgentCenterImpl implements IAgentCenter | |||||
switch(protocol) | switch(protocol) | ||||
{ | { | ||||
case NSProtocol.NS_PROTOCOL_CONTRACTION: | case NSProtocol.NS_PROTOCOL_CONTRACTION: | ||||
case NSProtocol.NS_PROTOCOL_UPDATE_CONTRACTION: | |||||
session = new ContractionSession((Message<NSContractionEntity>) message); | session = new ContractionSession((Message<NSContractionEntity>) message); | ||||
break; | break; | ||||
default: | default: | ||||
@@ -109,7 +111,7 @@ public class AgentCenterImpl implements IAgentCenter | |||||
Message<?> message = getMessage(server, request); | Message<?> message = getMessage(server, request); | ||||
check(message, request); | check(message, request); | ||||
Session<?, ?> session = createSession(message); | Session<?, ?> session = createSession(message); | ||||
HandlerEngine.Post(session); | |||||
HandlerEngine.Call("" + message.getProtocol(), session); | |||||
return session.result; | return session.result; | ||||
} | } | ||||
} | } |
@@ -214,19 +214,19 @@ public class TAgentTaskServiceImpl implements ITAgentTaskService | |||||
@Override | @Override | ||||
public TAgentTask getTAgentTask(String orgCode, String year, String month, Consumer<TAgentTask> ifNotExists) | 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); | |||||
TAgentTask tAgentTask = getTAgentTask(orgCode, year, month); | |||||
if(null == tAgentTask) | if(null == tAgentTask) | ||||
{ | { | ||||
tAgentTask = new TAgentTask(); | |||||
SysDept deptCond = new SysDept(); | SysDept deptCond = new SysDept(); | ||||
deptCond.setOrgCode(orgCode); | deptCond.setOrgCode(orgCode); | ||||
SysDept dept = sysDeptMapper.selectSysDept(deptCond); | SysDept dept = sysDeptMapper.selectSysDept(deptCond); | ||||
Assert.notNull(dept, "部门不存在: {}", orgCode); | Assert.notNull(dept, "部门不存在: {}", orgCode); | ||||
task.setContracCount(0) | |||||
tAgentTask.setOrgCode(orgCode) | |||||
.setOrderYear(year) | |||||
.setOrderMonth(month) | |||||
.setContracCount(0) | |||||
.setVoucherCount(0) | .setVoucherCount(0) | ||||
.setAssetCount(0) | .setAssetCount(0) | ||||
.setAllCount(0) | .setAllCount(0) | ||||
@@ -235,12 +235,27 @@ public class TAgentTaskServiceImpl implements ITAgentTaskService | |||||
.setAgentCenter(dept.getAgentCenter()) | .setAgentCenter(dept.getAgentCenter()) | ||||
.setAgentStatus(TAgentTask.AGENT_STATUS_READY) | .setAgentStatus(TAgentTask.AGENT_STATUS_READY) | ||||
; | ; | ||||
fillTAgentTaskOrg(task); | |||||
task.setCreateBy("admin"); | |||||
ifNotExists.accept(task); // 补充 | |||||
insertTAgentTask(task); | |||||
tAgentTask = task; | |||||
fillTAgentTaskOrg(tAgentTask); | |||||
tAgentTask.setCreateBy("admin"); | |||||
ifNotExists.accept(tAgentTask); // 补充 | |||||
insertTAgentTask(tAgentTask); | |||||
} | } | ||||
return tAgentTask; | return tAgentTask; | ||||
} | } | ||||
@Override | |||||
public TAgentTask getTAgentTask(String orgCode, String year, String month) | |||||
{ | |||||
Assert.notBlank(orgCode, "查询任务: orgCode为空"); | |||||
Assert.notBlank(year, "查询任务: orderYear为空"); | |||||
Assert.notBlank(month, "查询任务: orderMonth为空"); | |||||
TAgentTask task = new TAgentTask(); | |||||
task.setOrgCode(orgCode) | |||||
.setOrderYear(year) | |||||
.setOrderMonth(month) | |||||
; | |||||
return tAgentTaskMapper.selectTAgentTask(task); | |||||
} | |||||
} | } |