Commit 0ba0024d by guojuxing

添加不需要同步到tapd的触发器

parent e577769f
......@@ -313,16 +313,6 @@ public class UdeskMessageApiServiceImpl implements UdeskMessageApiService {
@Override
public ServiceResponse<String> saveUdeskMessageNoTapd(UdeskMessageDTO messageDTO) {
TabUdeskMessage tabUdeskMessage = new TabUdeskMessage();
tabUdeskMessage.setEvent(messageDTO.getEvent());
tabUdeskMessage.setMsgBody(messageDTO.getMsgBody());
tabUdeskMessage.setSource(messageDTO.getSource());
tabUdeskMessage.setStatus(UdeskConstant.UNDELETED);
tabUdeskMessage.setTopic(messageDTO.getTopic());
int messageId = udeskMessageService.save(tabUdeskMessage);
//设置主键,用于update
tabUdeskMessage.setId(messageId);
logger.info("消息为{}已经保存成功", messageDTO);
//创建工单消息
if (UdeskConstant.TICKET_CREATE.equals(messageDTO.getEvent())) {
//udesk工单ID
......@@ -333,70 +323,8 @@ public class UdeskMessageApiServiceImpl implements UdeskMessageApiService {
if (detail.getCode() == UdeskConstant.UDESK_SUCCESS_CODE) {
//usesk工单信息
TicketDTO ticket = detail.getTicket();
//udesk自定义字段信息
Map<String, String> customFields = ticket.getCustom_fields();
//udesk工单表实体
TabUdeskTicket tabUdeskTicket = new TabUdeskTicket();
if (customFields != null) {
//udesk客服名称--tapd创建人
String staffValue = customFields.get(UdeskConstant.UDESK_FIELD_STAFF);
tabUdeskTicket
.setServiceStaff(udeskTapdRelMap.get(UdeskConstant.UDESK_FIELD_STAFF + ":" + staffValue));
//tapd项目ID
String workspaceValue = customFields.get(UdeskConstant.UDESK_FIELD_WORKSPACE);
tabUdeskTicket.setWorkspaceId(
udeskTapdRelMap.get(UdeskConstant.UDESK_FIELD_WORKSPACE + ":" + workspaceValue));
//TPAD当前处理人
String transactorValue = customFields.get(UdeskConstant.UDESK_FIELD_TRANSACTOR);
if (StringUtils.isNotBlank(transactorValue)) {
String[] transactors = transactorValue.split(",");
StringBuilder builder = new StringBuilder();
for (String transactor : transactors) {
builder.append(udeskTapdRelMap.get(UdeskConstant.UDESK_FIELD_TRANSACTOR + ":" + transactor))
.append(";");
}
tabUdeskTicket.setCurrentOwner(builder.toString());
}
//填充部分自定义字段值
this.setUdeskCostomFields(tabUdeskTicket, new TapdBugBaseDTO(), customFields);
}
//受理客服id
tabUdeskTicket.setAssigneeId(ticket.getAssignee_id());
//受理客服姓名
tabUdeskTicket.setAssigneeName(ticket.getAssignee_name());
//创建人id
tabUdeskTicket.setCreatorId(ticket.getCreator_id());
//工单编号
tabUdeskTicket.setFieldNum(ticket.getField_num());
//工单id
tabUdeskTicket.setId(ticket.getId());
//客户所属公司id
Integer organizationId = ticket.getOrganization_id();
if (organizationId != null) {
this.setOrganizationIdAndName(tabUdeskTicket, organizationId);
}
//填充工单优先级中文名称
this.setPriority(ticket, tabUdeskTicket, new TapdBugBaseDTO());
tabUdeskTicket.setStatus(UdeskConstant.UNDELETED);
//状态英文名称
tabUdeskTicket.setStatusEn(ticket.getStatus_en());
//tapd状态值
tabUdeskTicket.setStatusTapd(udeskTapdRelMap.get(ticket.getStatus_en()));
//标题
tabUdeskTicket.setSubject(ticket.getSubject());
//客户id
tabUdeskTicket.setUserId(ticket.getUser_id());
//客户姓名
tabUdeskTicket.setUserName(ticket.getUser_name());
try {
udeskTicketService.save(tabUdeskTicket);
//只修改gic状态,不生成本地工单数据,因为和同步到tapd触发器会冲突
updateGicTicketStatus(Integer.parseInt(id), ticket.getStatus_en());
logger.info("工单id为{}已经保存成功", ticket.getId());
} catch (DataIntegrityViolationException | ConstraintViolationException e) {
logger.info("工单id为{}已经保存失败,重复插入", ticket.getId(), e);
return null;
}
} else {
String exceptionRecord = "工单id为" + id + "请求udesk工单详情异常,返回为" + detailStr;
logger.info(exceptionRecord);
......@@ -411,47 +339,12 @@ public class UdeskMessageApiServiceImpl implements UdeskMessageApiService {
if (detail.getCode() == UdeskConstant.UDESK_SUCCESS_CODE) {
//udesk接口查询的工单信息
TicketDTO ticket = detail.getTicket();
//数据库查询的工单记录信息
TabUdeskTicket tabUdeskTicket = udeskTicketService.getById(Integer.parseInt(id));
if (tabUdeskTicket == null) {
UdeskMessageDTO createMessage = new UdeskMessageDTO();
//事件类型 创建/更新
createMessage.setEvent(UdeskConstant.TICKET_CREATE);
//工单ID
createMessage.setMsgBody(id);
createMessage.setSource(UdeskConstant.UDESK_UPDATE_CREATE);
//消息主题
createMessage.setTopic(UdeskConstant.UDESK_TICKET_TOPIC);
ServiceResponse<String> saveResult = this.saveUdeskMessage(createMessage);
String bugId = saveResult.getResult();
//删除消息status = 0
this.updateTabUdeskMessage(tabUdeskMessage, id, bugId);
return ServiceResponse.success(bugId);
}
//工单状态英文名称
String statusEn = ticket.getStatus_en();
//如果udesk工单状态不等于本地数据库对应的工单状态
if (StringUtils.isNotBlank(statusEn) && !statusEn.equals(tabUdeskTicket.getStatusEn())) {
//获取字典的状态值
String tapdStatus = udeskTapdRelMap.get(statusEn);
tabUdeskTicket.setStatusEn(statusEn);
tabUdeskTicket.setStatusTapd(tapdStatus);
}
tabUdeskTicket.setSubject(ticket.getSubject());
this.setPriority(ticket, tabUdeskTicket, new TapdBugBaseDTO());
Integer organizationId = ticket.getOrganization_id();
if(organizationId != null && !organizationId.equals(tabUdeskTicket.getOrganizationId())){
this.setOrganizationIdAndName(tabUdeskTicket, organizationId);
}
Map<String, String> customFields = ticket.getCustom_fields();
if(customFields != null){
this.setUdeskCostomFields(tabUdeskTicket, new TapdBugBaseDTO(), customFields);
}
tabUdeskTicket.setUserName(ticket.getUser_name());
udeskTicketService.update(tabUdeskTicket);
//同步到gic工单状态
logger.info("同步gic工单状态,ID:{}, 状态:{}", Integer.parseInt(id), statusEn);
updateGicTicketStatus(Integer.parseInt(id), statusEn);
} else {
String exceptionRecord = "工单id为" + id + "更新工单请求udesk工单详情异常,返回为" + detailStr;
logger.info(exceptionRecord);
......
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