| @@ -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); | |||||
| } | |||||
| } | } | ||||