Commit c9974ab1 by 焦凯

提交代码

parent 25197c5f
......@@ -2,7 +2,7 @@ package com.beecode.inz.workflow.listener;
import org.springframework.context.ApplicationEvent;
public class RTWorkFlowEvent extends ApplicationEvent{
public class ContractWorkFlowEvent extends ApplicationEvent{
private String type;
......@@ -11,11 +11,11 @@ public class RTWorkFlowEvent extends ApplicationEvent{
*/
private static final long serialVersionUID = 1L;
public RTWorkFlowEvent(Object source) {
public ContractWorkFlowEvent(Object source) {
super(source);
}
public RTWorkFlowEvent(Object source,String type) {
public ContractWorkFlowEvent(Object source,String type) {
super(source);
this.type = type;
}
......
......@@ -60,7 +60,7 @@ public class TaskEventListenerImpl implements TaskEventListener{
@Override
public void afterTaskStartedEvent(TaskEvent event) {
Amino.getApplicationContext().publishEvent(new RTWorkFlowEvent(event,"after_started"));
Amino.getApplicationContext().publishEvent(new ContractWorkFlowEvent(event,"after_started"));
}
@Override
......@@ -71,7 +71,7 @@ public class TaskEventListenerImpl implements TaskEventListener{
@Override
public void afterTaskCompletedEvent(TaskEvent event) {
Amino.getApplicationContext().publishEvent(new RTWorkFlowEvent(event,"after_completed"));
// Amino.getApplicationContext().publishEvent(new ContractWorkFlowEvent(event,"after_completed"));
}
@Override
......
package com.xyst.dinas.contract.internal.service;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
......@@ -19,12 +21,21 @@ import org.springframework.transaction.annotation.Transactional;
import com.beecode.amino.core.Amino;
import com.beecode.bap.log.LogConstants;
import com.beecode.bap.log.service.LogService;
import com.beecode.bap.staff.Staff;
import com.beecode.bap.staff.service.StaffService;
import com.beecode.bap.workflow.constants.BizProcessConstant;
import com.beecode.bcp.core.context.AminoContextHolder;
import com.beecode.bcp.task.assignment.Actor;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject;
import com.beecode.bcp.type.json.JSONObjectUtils;
import com.beecode.inz.basis.config.constants.CommonConstants;
import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.beecode.inz.common.BaseConstants;
import com.beecode.inz.message.RemPartRelationConstants;
import com.beecode.inz.message.RemindConstants;
import com.beecode.inz.message.enumeration.ParterType;
import com.beecode.inz.message.service.RemindService;
import com.beecode.inz.workflow.service.InzWorkflowService;
import com.xyst.dinas.biz.dao.DinasOrganizationDao;
import com.xyst.dinas.biz.warn.WarnSettingEntity;
......@@ -73,6 +84,12 @@ public class ContractServiceImpl implements ContractService {
@Autowired
private LogService logService;
@Autowired
private StaffService staffService;
@Autowired
private RemindService remindService;
@Override
@Transactional
public UUID create(KObject kObject) {
......@@ -451,4 +468,61 @@ public class ContractServiceImpl implements ContractService {
return ResponseObj.error();
}
}
@Override
@Transactional
public void remindToCreatorApproved(String result,KObject contractKObj) {
try {
UUID contractId = contractKObj.getUuid(CommonConstants.ID);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
JSONObject remObject = new JSONObject();
remObject.put(RemindConstants.CREATE_TIME, format.format(new Date()));
if(result.equals("agree")){
remObject.put(RemindConstants.REMIND_CONTENT, contractKObj.getString(ContractConstant.CONTRACT_NAME)+"已审核通过。");
}else if(result.equals("reject")){
remObject.put(RemindConstants.REMIND_CONTENT, contractKObj.getString(ContractConstant.CONTRACT_NAME)+"审核不通过,请处理!");
}
remObject.put(RemindConstants.REMIND_TIME, format.format(new Date()));
remObject.put(RemindConstants.DATA, contractId);
remObject.put(RemindConstants.LOOK_NAME, "合同审核提醒");
remObject.put(RemindConstants.LOOK_TYPE, "Contract");
remObject.put("_type", ContractConstant.ENTITY_CONTRACT);
JSONObject businessInfo = new JSONObject();
// businessInfo.put("biztypeName", "company-info");
// businessInfo.put("triggerAction", "create");
businessInfo.put("bizDataId", contractId);
remObject.put("businessInfo", businessInfo);
String remindId = UUID.randomUUID().toString();
remObject.put(RemindConstants.ID, remindId);
List<KObject> sysadminStaffs = staffService.getByUsername("sysadmin");
KObject sysadminStaff = sysadminStaffs.size()>=1?sysadminStaffs.get(0):null;
KObject remindKObj =(KObject)JSONObjectUtils.toObject(remObject.toString());
remindKObj.set(RemindConstants.SENDER, sysadminStaff);
remindKObj.validate();
KObject creator = contractKObj.get(CommonConstants.CREATOR);
List<KObject> listRes = new ArrayList<KObject>();
JSONObject part = new JSONObject();
part.put(RemPartRelationConstants.PARTICIPATE_TYPE, ParterType.PERSON.getPartnerType());
part.put("_type", com.beecode.inz.message.CommonConstants.REM_PART_RELATION_ENTITTY);
part.put(RemPartRelationConstants.REMIND_ID,remindId);
part.put(RemPartRelationConstants.ID, UUID.randomUUID());
KObject user = creator.get(Staff.USER);
String userId = user.getString("id");
part.put(RemPartRelationConstants.PARTICIPATE_ID, userId);
KObject entity =(KObject) JSONObjectUtils.toObject(part.toString());
listRes.add(entity);
entity.validate();
remindService.add(remindKObj, listRes);
} catch (Exception e) {
logger.error("send remind error when contract workflow task need handle");
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
......@@ -35,6 +35,9 @@ public class ContractProcessEventListener implements InzBizProcessEventListener
//自动新增合同预警条目
if(event.getInzBizProcess().getWorkflowState() == BizProcessState.DONE_WITH_AGREE.getValue()){
contractService.afterApprovedForInsert(event.getInzBizProcess().getBizDataObject());
contractService.remindToCreatorApproved("agree", event.getInzBizProcess().getBizDataObject());
}else if(event.getInzBizProcess().getWorkflowState() == BizProcessState.DONE_WITH_REJECT.getValue()){
contractService.remindToCreatorApproved("reject", event.getInzBizProcess().getBizDataObject());
}
// }else if(event.getInzBizProcess().getTriggerAction().equals("CHANGE")){
// if(event.getInzBizProcess().getWorkflowState() == BizProcessState.DONE_WITH_AGREE.getValue()){
......
package com.xyst.dinas.contract.listener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationListener;
import com.beecode.bap.staff.Staff;
import com.beecode.bap.staff.service.StaffService;
import com.beecode.bap.workflow.constants.BizProcessConstant;
import com.beecode.bcp.task.assignment.Actor;
import com.beecode.bcp.task.event.TaskEvent;
import com.beecode.bcp.task.service.ActorService;
import com.beecode.bcp.type.KObject;
import com.beecode.bcp.type.json.JSONObjectUtils;
import com.beecode.inz.message.CommonConstants;
import com.beecode.inz.message.RemPartRelationConstants;
import com.beecode.inz.message.RemindConstants;
import com.beecode.inz.message.enumeration.ParterType;
import com.beecode.inz.message.service.RemindService;
import com.beecode.inz.workflow.listener.ContractWorkFlowEvent;
import com.xyst.dinas.contract.constant.ContractConstant;
import com.xyst.dinas.contract.internal.dao.ContractDao;
public class ContractTaskEventListenerHandle implements ApplicationListener<ContractWorkFlowEvent>{
private static final Logger logger = LoggerFactory.getLogger(ContractTaskEventListenerHandle.class);
@Autowired
private ContractDao contractDao;
@Autowired
private ActorService actorService;
@Autowired
private StaffService staffService;
@Autowired
private RemindService remindService;
@Override
public void onApplicationEvent(ContractWorkFlowEvent event) {
String type = event.getType();
TaskEvent taskEvent = (TaskEvent) event.getSource();
if(type.equals("after_started")){
generateTaskAfterStartedEvent(taskEvent);
}
}
private void generateTaskAfterStartedEvent(TaskEvent taskEvent){
try {
KObject taskKobj = taskEvent.getTaskObject();
UUID dataId = taskKobj.getUuid(BizProcessConstant.BIZ_DATA_ID);
UUID taskId =taskKobj.getUuid("id");
if(null == dataId){
return;//工作流参数中没有找到提交审核的数据的id,不知道该怎么处理,先直接返回
}
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
KObject contractKObj = contractDao.load(dataId);
JSONObject remObject = new JSONObject();
remObject.put(RemindConstants.CREATE_TIME, format.format(new Date()));
remObject.put(RemindConstants.REMIND_CONTENT, contractKObj.getString(ContractConstant.CONTRACT_NAME)+"待审批,请处理!");
remObject.put(RemindConstants.REMIND_TIME, format.format(new Date()));
remObject.put(RemindConstants.DATA, dataId);
remObject.put(RemindConstants.LOOK_NAME, "合同待审提醒");
remObject.put(RemindConstants.LOOK_TYPE, "Contract");
remObject.put("_type", ContractConstant.ENTITY_CONTRACT);
JSONObject businessInfo = new JSONObject();
// businessInfo.put("biztypeName", "company-info");
// businessInfo.put("triggerAction", "create");
businessInfo.put("bizDataId", dataId);
remObject.put("businessInfo", businessInfo);
String remindId = UUID.randomUUID().toString();
remObject.put(RemindConstants.ID, remindId);
List<KObject> sysadminStaffs = staffService.getByUsername("sysadmin");
KObject sysadminStaff = sysadminStaffs.size()>=1?sysadminStaffs.get(0):null;
KObject remindKObj =(KObject)JSONObjectUtils.toObject(remObject.toString());
remindKObj.set(RemindConstants.SENDER, sysadminStaff);
remindKObj.validate();
List<KObject> actors = actorService.getActorsByTask(taskId);
List<KObject> listRes = new ArrayList<KObject>();
for(KObject actor : actors){
JSONObject part = new JSONObject();
UUID actorId = actor.getUuid(Actor.ACTOR_ID);
part.put(RemPartRelationConstants.PARTICIPATE_TYPE, ParterType.PERSON.getPartnerType());
part.put("_type", CommonConstants.REM_PART_RELATION_ENTITTY);
part.put(RemPartRelationConstants.REMIND_ID,remindId);
part.put(RemPartRelationConstants.ID, UUID.randomUUID());
KObject staff = staffService.getById(actorId);
KObject user = staff.get(Staff.USER);
String userId = user.getString("id");
part.put(RemPartRelationConstants.PARTICIPATE_ID, userId);
KObject entity =(KObject) JSONObjectUtils.toObject(part.toString());
listRes.add(entity);
entity.validate();
}
remindService.add(remindKObj, listRes);
} catch (Exception e) {
logger.error("send remind error when contract workflow task need handle");
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
......@@ -33,6 +33,9 @@ public class ContractUpdateProcessListener implements InzBizProcessEventListener
//自动新增合同预警条目
if(event.getInzBizProcess().getWorkflowState() == BizProcessState.DONE_WITH_AGREE.getValue()){
contractService.afterApprovedForUpdate(event.getInzBizProcess().getBizDataObject());
contractService.remindToCreatorApproved("agree", event.getInzBizProcess().getBizDataObject());
}else if(event.getInzBizProcess().getWorkflowState() == BizProcessState.DONE_WITH_REJECT.getValue()){
contractService.remindToCreatorApproved("reject", event.getInzBizProcess().getBizDataObject());
}
}
......
......@@ -3,7 +3,6 @@ package com.xyst.dinas.contract.service;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.json.JSONArray;
......@@ -11,7 +10,6 @@ import org.json.JSONObject;
import org.springframework.lang.Nullable;
import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.team.pojo.ResponseObj;
public interface ContractService {
......@@ -118,5 +116,10 @@ public interface ContractService {
Object updateContractState(JSONObject jsonObject);
/**
* 审批完成后给创建人发消息的接口
* @param String result 审批结果
* @param KObject contract 对应的合同
*/
void remindToCreatorApproved(String result,KObject contract);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment